首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AWS中为某个Lambda函数打印最新的Cloudwatch日志?

如何从AWS中为某个Lambda函数打印最新的Cloudwatch日志?
EN

Stack Overflow用户
提问于 2019-06-24 19:04:58
回答 4查看 6K关注 0票数 6

我试图使用AWS CLI并要求CLI编写Alexa技能,我希望能够使用Alexa模拟器并从命令行直接查看控制台日志,但我不知道如何从命令行查看最后一个日志。

我已经安装了AWS并询问了CLI,并且能够查看Cloudwatch日志,但是没有一种快速查看最后一个日志的方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-06-24 20:39:00

您可以使用aws日志描述-日志流获取最新的流名称,然后使用aws日志获取日志事件获取日志记录本身。

代码语言:javascript
复制
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

使用最新的AWS,您也可以使用尾。

代码语言:javascript
复制
aws logs tail $LOG_GROUP --follow
票数 9
EN

Stack Overflow用户

发布于 2020-08-25 21:44:15

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
aws logs describe-log-streams --log-group-name '/aws/lambda/[YOUR_LAMBDA_FUNCTION_NAME_GOES_HERE]' --query 'logStreams[*].logStreamName'
票数 5
EN

Stack Overflow用户

发布于 2019-06-29 02:52:06

使用日志类型标志,您将能够从执行过程中获得cloudwatch日志。例如:

代码语言:javascript
复制
LOG_RESULT=$(aws lambda invoke --function-name arn:aws:lambda:REGION:111122223333:function:YOUR_LAMBDA_NAME --log-type Tail outfile --query LogResult --output text)

echo $LOG_RESULT | base64 -D

输出

代码语言:javascript
复制
START RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59 Version: $LATEST
END RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59
REPORT RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59  Duration: 71.48 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 74 MB

这假设该函数是在eventType RequestResponse中同步执行的。

如果仍然需要实际的CloudWatch日志,可以根据请求id进行查询。

代码语言:javascript
复制
REQUEST_ID=$(echo $LOG_RESULT | base64 -D | grep START | cut -d " " -f 3)
aws logs filter-log-events --log-group-name /aws/lambda/YOUR_LAMBDA_NAME --filter-pattern \"$REQUEST_ID\" 

输出

代码语言:javascript
复制
{
    "events": [
        {
            "logStreamName": "2019/06/29/[$LATEST]f94a9c338ec445cda688c015b460621d",
            "timestamp": 1561775888037,
            "message": "START RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59 Version: $LATEST\n",
            "ingestionTime": 1561775888119,
            "eventId": "34828766136322027826299000340819150179641895561445048320"
        },
        {
            "logStreamName": "2019/06/29/[$LATEST]f94a9c338ec445cda688c015b460621d",
            "timestamp": 1561775888113,
            "message": "END RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59\n",
            "ingestionTime": 1561775903178,
            "eventId": "34828766138016884461387327717780753707358087734557278208"
        },
        {
            "logStreamName": "2019/06/29/[$LATEST]f94a9c338ec445cda688c015b460621d",
            "timestamp": 1561775888113,
            "message": "REPORT RequestId: 3ab54034-ed40-4fd7-b660-17db96a25f59\tDuration: 71.48 ms\tBilled Duration: 100 ms \tMemory Size: 128 MB\tMax Memory Used: 74 MB\t\n",
            "ingestionTime": 1561775903178,
            "eventId": "34828766138016884461387327717780753707358087734557278209"
        }
    ],
    "searchedLogStreams": [
        {
            "logStreamName": "2019/06/29/[$LATEST]f94a9c338ec445cda688c015b460621d",
            "searchedCompletely": true
        }
    ]
}

但是,此输出不符合要求,并包含有关日志流本身的信息以及搜索了哪些日志组。

您可以使用以下命令对其进行筛选:

aws logs filter-log-events --log-group-name /aws/lambda/YOUR_LAMBDA_NAME --filter-pattern \"$REQUEST_ID\" --query 'sort_by(events, &timestamp)[*].[message]' | jq .[][0]

输出

代码语言:javascript
复制
"START RequestId: 610dcebf-bb7b-4c39-895b-8989b46386a8 Version: $LATEST\n"
"END RequestId: 610dcebf-bb7b-4c39-895b-8989b46386a8\n"
"REPORT RequestId: 610dcebf-bb7b-4c39-895b-8989b46386a8\tDuration: 154.04 ms\tBilled Duration: 200 ms \tMemory Size: 128 MB\tMax Memory Used: 73 MB\t\n"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56742529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档