sam logs - AWS Serverless Application Model

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

sam logs

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) sam logs 命令的参考信息。

有关简介 AWS SAMCLI,请参阅那是什么 AWS SAMCLI?

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

使用量

$ sam logs <options>

Options

--config-env TEXT

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

--config-file PATH

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

--cw-log-group LIST

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

--debug

启用调试日志记录,以打印 AWS 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

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

您的凭证文件中用于获取 AWS 凭证的特定个人资料。

--region TEXT

要部署到的 AWS 区域。例如,us-east-1。

--save-params

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

--stack-name TEXT

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

--start-time, -s TEXT

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

--tail, -t

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

示例

当您的函数是 AWS 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