sam logs - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

sam logs

此页面提供了 Amazon Serverless Application Model 命令行界面(Amazon SAM CLI) sam logs 命令的参考信息。

有关 Amazon SAM CLI 的简介,请参阅 那是什么 Amazon SAMCLI?

sam logs 命令会获取 Amazon Lambda 函数生成的日志。

使用量

$ sam logs <options>

Options

--config-env TEXT

在配置文件中指定要使用的默认参数值的环境名称。默认值为“default”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件

--config-file PATH

包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为“samconfig.toml”。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件

--cw-log-group LIST

包括您指定的 CloudWatch 日志日志组中的日志。如果同时指定此选项和 name,则除了来自指定资源的日志外,Amazon SAM 还包括来自指定日志组的日志。

--debug

启用调试日志记录,以打印 Amazon SAM CLI 生成的调试消息并显示时间戳。

---end-time, e TEXT

获取到目前为止的日志。时间可以是相对值,例如“5 分钟前”、“明天”,也可以是格式化的时间戳,例如 “2018-01-01 10:10:10”。

--filter TEXT

允许您指定表达式以在日志事件中快速查找匹配字词、短语或值的日志。这可以是一个简单的关键词(例如,“错误”),也可以是 Amazon Logs 支持的 CloudWatch 模式。有关语法,请参阅 Amazon CloudWatch 日志文档

--help

显示此消息并退出。

--include-traces

在日志输出中包含 X-Ray 跟踪。

--name, -n TEXT

要获取日志的资源名称。如果此资源是 Amazon CloudFormation 堆栈的一部分,则这可以是 Amazon CloudFormation/Amazon SAM 模板中函数资源的逻辑 ID。再次重复该参数可以提供多个名称。如果资源位于嵌套堆栈中,则可以在名称前面加上嵌套堆栈名称以从该资源提取日志 (NestedStackLogicalId/ResourceLogicalId)。如果未给出资源名称,则将扫描给定的堆栈,并提取所有支持的资源的日志信息。如果不指定此选项,则 Amazon SAM 将获取您指定的堆栈中所有资源的日志。支持以下资源类型:

  • AWS::Serverless::Function

  • AWS::Lambda::Function

  • AWS::Serverless::Api

  • AWS::ApiGateway::RestApi

  • AWS::Serverless::HttpApi

  • AWS::ApiGatewayV2::Api

  • AWS::Serverless::StateMachine

  • AWS::StepFunctions::StateMachine

--output TEXT

指定日志的输出格式。要打印格式化的日志,请指定 text。要以 JSON 格式打印日志,请指定 json

--profile TEXT

凭证文件中用于获取 Amazon 凭证的特定配置文件。

--region TEXT

要部署到的 Amazon Region。例如,us-east-1。

--save-params

将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。

--stack-name TEXT

资源所属 Amazon CloudFormation 堆栈的名称。

--start-time, -s TEXT

从此时开始获取日志。时间可以是相对值,例如“5 分钟前”、“昨天”,也可以是格式化的时间戳,例如 “2018-01-01 10:10:10”。默认为“10 分钟前”。

--tail, -t

输出日志尾部内容。这会忽略结束时间参数,并在日志可用时持续获取。

示例

当您的函数是 Amazon CloudFormation 堆栈的一部分时,您可以在指定堆栈名称时使用该函数的逻辑 ID 来获取日志。

$ sam logs -n HelloWorldFunction --stack-name myStack

使用 -s (--start-time) 和 -e (--end-time) 选项查看特定时间范围的日志。

$ sam logs -n HelloWorldFunction --stack-name myStack -s '10min ago' -e '2min ago'

您还可以添加 --tail 选项以等待新日志并在它们到达时查看。

$ sam logs -n HelloWorldFunction --stack-name myStack --tail

使用 --filter 选项在日志事件中快速查找匹配字词、短语或值的日志:

$ sam logs -n HelloWorldFunction --stack-name myStack --filter "error"

查看子堆栈中资源的日志。

$ sam logs --stack-name myStack -n childStack/HelloWorldFunction

输出应用程序中所有受支持资源的日志尾部内容。

$ sam logs --stack-name sam-app --tail

在应用程序中获取特定 Lambda 函数和 API Gateway API 的日志。

$ sam logs --stack-name sam-app --name HelloWorldFunction --name HelloWorldRestApi

获取应用程序中所有受支持资源的日志,此外还从指定的日志组中获取日志。

$ sam logs --cw-log-group /aws/lambda/myfunction-123 --cw-log-group /aws/lambda/myfunction-456