如何从 AWS CLI 打印特定 Lambda 函数的最新 Cloudwatch 日志?

Ani*_*gya 10 amazon-web-services aws-cli aws-lambda amazon-cloudwatchlogs

我正在尝试使用 AWS CLI 和 ASK CLI 来编写 Alexa 技能,并且我希望能够使用 Alexa 模拟器并直接从命令行查看控制台日志以使其变得简单,但我不确定如何实现从命令行查看最后一个。

我已经安装了 AWS 和 ASK CLI,并且能够查看 Cloudwatch 日志,但没有快速的方法来查看最后的日志。

kic*_*hik 18

您可以使用awslogsdescribe-log-streams获取最新的流名称,然后使用 awslogsget-log-events获取日志记录本身。

LOG_GROUP=/aws/lambda/[YOUR-LAMBDA-NAME]
LOG_STREAM=`aws logs describe-log-streams --log-group-name $LOG_GROUP --max-items 1 --order-by LastEventTime --descending --query logStreams[].logStreamName --output text | head -n 1`
aws logs get-log-events --log-group-name $LOG_GROUP --log-stream-name $LOG_STREAM --query events[].message --output text
Run Code Online (Sandbox Code Playgroud)

通过最新的 AWS CLI,您还可以使用 tail。

aws logs tail $LOG_GROUP --follow
Run Code Online (Sandbox Code Playgroud)


小智 5

如果有人仍在苦苦挣扎并希望使用 AWS CLI 提取最新的日志流

aws logs describe-log-streams --log-group-name '/aws/lambda/[YOUR_LAMBDA_FUNCTION_NAME_GOES_HERE]' --query 'logStreams[*].logStreamName' --max-items 1 --order-by LastEventTime --descending
Run Code Online (Sandbox Code Playgroud)

或者您想查询单个 lambda 的所有日志流,您可以使用

aws logs describe-log-streams --log-group-name '/aws/lambda/[YOUR_LAMBDA_FUNCTION_NAME_GOES_HERE]' --query 'logStreams[*].logStreamName'
Run Code Online (Sandbox Code Playgroud)