我已将CloudWatch规则配置为使用cron
在给定时间运行,但是Lambda有时仅被调用。我已经确保Lambda执行角色具有适当的权限,并且有时CloudWatch规则会正确运行,并调用我的Lambda函数。
例如,我已经以编程方式创建了一个规则,启用了该规则,并使用Python中的boto3客户端添加了一个目标,然后当该角色执行的时间到了,它就会在CloudWatch中显示并显示“调用错误”指标。我采用了同样的规则,将cron更改为2分钟后,效果很好。我也尝试过在控制台中手动创建规则,但偶尔也成功,但我不知道该如何复制。
我在网上找到的唯一资源就是为Lambda角色添加CloudWatch Events权限,但是正如我所说的,我已经做到了,而且我只能在哪里解决这个问题。
答案 0 :(得分:0)
您应该调查错误。
确保Lambda函数使用的IAM角色具有写入CloudWatch Logs的权限。最简单的方法是附加名为AWSLambdaBasicExecutionRole
的预定义策略。
然后,每当函数运行时,调试信息就会发送到CloudWatch Logs。然后,您可以查看CloudWatch Logs(在函数名称下)以调查错误原因。
答案 1 :(得分:0)
已解决:我向Lambda函数添加了CloudWatch Events权限,但没有为适当的别名添加权限。因此,我向lambdaFunction添加了权限,但没有向我要调用的版本lambdaFunction:DEV添加权限。即使规则的其余部分设置正确,我也不确定在管道设置的每个步骤中都使用了正确的别名。