【发布时间】:2018-08-21 05:26:27
【问题描述】:
我一直在徒劳地尝试查看我的 lambda 函数的日志。不管我看到什么:
需要明确的是,lambda 函数运行正常。我根本看不到日志。
我已多次重新创建该函数,以确保不是我不小心使用了禁用日志记录的设置。
我的步骤:
- 从 AWS Lambda 函数页面,创建一个新函数。我使用的是nodejs 8.10,但即使我使用的是6.x版本,它似乎也失败了。
- 使用我的函数(包括 node_modules 目录、package.json 和 package-lock.json)将 zip 文件上传到 S3 到
testbucket,文件名为thumbnails.zip。 - 使用此命令从 S3 发布我的 lambda 函数:
aws lambda update-function-code --function-name transcode-v2 --s3-bucket mytestbucket --s3-key thumbnails.zip。 - 我可以使用示例数据和测试按钮来测试我的功能。
- 我也可以从 CLI 调用它,它似乎“工作”(因为它运行)
当我访问云日志时,我总是看到这条消息:There was an error loading Log Streams. Please try again by refreshing this page. 我已经尝试了两次重新创建该函数,但这并没有解决它。
有人知道这里有什么问题吗?该函数似乎在测试中工作(意思是,我在测试日志对话框中看到日志),当我从命令行调用时。但是,除了该错误之外,没有任何内容进入云日志记录页面。
我可以看到正在从 AWS 触发调用。
【问题讨论】:
-
嗯,您检查过权限问题吗?即确保您的角色有权写入 CWL
-
嗯,好的。我会假设 lambda 函数已经得到了它,但它不会得到它是有道理的。我会检查的。
-
因此,如果我向用户附加权限,我看不到任何 CWL。此权限是否命名为其他名称?我在用户的“角色”部分。那是正确的地方吗?
-
这对我来说(作为 AWS 的新手,虽然...)看起来不像是权限问题。看起来 AWS 在某处存在配置错误,因为 AWS 控制台无法加载日志,而不是说“进程无法写入日志......”(我想无论如何都不会报告)。我尝试创建“日志流”并收到此错误:
There was an error creating your Log Stream. Please try again.。我不知道我需要创建什么日志流名称。 -
您的 Lambda 函数需要 AWSLambdaBasicExecutionRole 策略或等效策略,您可以在此处查看:gist.github.com/gene1wood/55b358748be3c314f956(搜索 AWSLambdaBasicExecutionRole)。
标签: amazon-web-services amazon-s3 aws-lambda aws-cli