Recreating/reattaching AWS Lambda 控制台记录到 CloudWatch

Recreating/reattaching AWS Lambda console logging to CloudWatch

我想清除旧日志,但错误地删除了我在 CloudWatch 上的 Lambda 的“日志流”。

结果是,如果我醒着的话,我应该预料到的,现在 CloudWatch 根本没有获取 Lambda 的控制台日志。哎呀

日志仍然存在。 我可以看到如何创建新的日志流。

我在网上找不到的是让现有的 Lambda 输出到这个新流的明确说明...即修复我所做的。

有人可以提供说明或指向它们吗?我敢肯定我不是唯一犯此错误的人,所以我认为这是一个值得一试的答案。


更新: 决定尝试通过创建一个全新的 Lambda 来恢复,运行 使用相同的代码并以相同的方式配置,希望它能正常工作;我的理解是新的 Lambda 会自动绑定到 CloudWatch 组。

然后我 运行 我的测试,单击扭曲箭头以查看输出的结尾,然后单击“单击此处查看相应的 CloudWatch 日志组。”。它打开 Cloudwatch 查看预期的日志组名称——带有一个大红色警告,表明该组不存在。单击测试输出顶部的“(日志)”会产生相同的行为。

我尝试手动创建组,但现在我回到原来的位置 -- lambda 运行,我得到本地日志输出,但日志没有到达 CloudWatch。

所以看起来有更深层次的错误。 CloudWatch 仍在从 critical lambda(驱动我新发布的 Alexa 技能的那个)获取日志,而不太重要的(技能数据库的计划更新)是 运行 好的,所以我现在绝对 不需要 它的日志——但我需要弄清楚这一点,这样我就可以在后台任务中断时阅读它们。


由于这现在看起来像是真正的意外行为,而不是用户错误,我会把它带到 AWS 论坛和 post 这里,如果他们想出答案的话。在该系统上,问题现在位于 https://repost.aws/questions/QUDzF2c_m0TPCwl3Ufa527Wg/lambda-logging-to-cloud-watch-seems-to-be-broken

程序员的格言:“如果这很容易,他们就不需要 us...”

执行 Lambda 函数后,您可以转到 Monitoring 选项卡并单击 View logs in CloudWatch -- 它需要你到日志应该存在的位置。

如果您知道该函数已执行但未显示任何日志,请确认您的 Lambda 函数已将 AWSLambdaBasicExecutionRole 分配给 Lambda 函数所使用的 IAM 角色。这会授予 Lambda 函数写入 CloudWatch Logs 的权限。

参见:AWS Lambda execution role - AWS Lambda