AWS CloudWatch Event 有时仅调用 Lambda

AWS CloudWatch Event invoking Lambda only sometimes

我已经使用 cron 在给定时间将 CloudWatch 规则配置为 运行,但 Lambda 仅有时被调用。我已确保 Lambda 执行角色具有适当的权限,有时 CloudWatch 规则会正确 运行,调用我的 Lambda 函数。

例如,我以编程方式创建了一个规则,启用了它,并在 Python 中使用 boto3 客户端添加了一个目标,然后当角色执行的时候到了,它会执行并显示 "invocation error" 在 CloudWatch 指标中。我采用了完全相同的规则并将 cron 更改为 2 分钟后,它工作得很好。我也尝试过在控制台中手动创建规则,但偶尔会成功,但我不知道如何重现。

我在网上找到的唯一资源是将 CloudWatch Events 权限添加到 Lambda 角色,但正如我所说,我已经这样做了,但我不知道该在哪里解决这个问题。

您应该调查错误。

确保 Lambda 函数使用的 IAM 角色具有写入 CloudWatch Logs 的权限。最简单的方法是附加名为 AWSLambdaBasicExecutionRole.

的预定义策略

然后,每当函数运行时,调试信息都会发送到 CloudWatch Logs。然后您可以查看 CloudWatch Logs(在函数名称下)以调查错误原因。

已解决:我将 CloudWatch Events 权限添加到 Lambda 函数,但没有添加到正确的别名。所以我添加了对 lambdaFunction 的权限,但没有添加到 lambdaFunction:DEV,我想调用的版本。即使规则的其余部分设置正确,我也不确定我在管道设置的每一步都使用了正确的别名。