从AWS CodePipeline调用AWS Lambda函数时,权限被拒绝

时间:2017-04-21 16:03:06

标签: amazon-web-services aws-lambda aws-codepipeline

我已将我的管道设置为调用AWS Lamba函数。运行10分钟后,这是我得到的错误:

  

操作执行失败AWS Lambda函数addAMIToAutoScalingLC   未能返回结果。检查功能以验证它有   允许调用PutJobSuccessResult操作并且它创建了一个   调用PutJobSuccessResult。

日志本身不包含相关信息。

我认为我的IAM权限设置正确:

  • 使用具有以下内容的角色运行Lambda函数:AWSLambdaFullAccessAWSCodePipelineFullAccess
  • 我认为CodePipeline运行的角色AWS-CodePipeline-Service包含:AWSLambdaFullAccess

我认为我的脚本会调用PutJobSuccessResult,因为当我测试脚本时,我会得到Execution result: succeeded

我的脚本不需要任何参数,因此我没有在CodePipeline中提供任何用户参数。

我应该怎么做才能进一步调查?

1 个答案:

答案 0 :(得分:4)

找到答案。问题不是来自许可,而是来自没有调用union: 管道不知道lambda函数已经完成,所以等到超时。

这段代码解决了问题(Python):

PutJobSuccessResult