Nic*_*orr 3 amazon-web-services aws-lambda aws-codepipeline
我已将管道设置为调用AWS Lamba函数。运行10分钟后,这是我得到的错误:
操作执行失败AWS Lambda函数addAMIToAutoScalingLC无法返回结果。检查该函数以验证其具有调用PutJobSuccessResult操作的权限,并且已对PutJobSuccessResult进行了调用。
日志本身不包含相关信息。
我认为我的IAM权限设置正确:
AWSLambdaFullAccess,AWSCodePipelineFullAccess。AWS-CodePipeline-Service:AWSLambdaFullAccess我认为我的脚本可以调用该命令,PutJobSuccessResult因为在测试该脚本时会收到一个Execution result: succeeded。
我的脚本不需要任何参数,因此我没有在CodePipeline中提供任何用户参数。
我应该怎么做才能进一步调查?
找到了答案。问题不是出自许可,而是出自对以下对象的调用PutJobSuccessResult:管道不知道lambda函数已完成,因此一直等到超时。
此代码块解决了该问题(Python):
import boto3
pipeline = boto3.client('codepipeline')
def lambda_handler(event, context):
# stuff
response = pipeline.put_job_success_result(
jobId=event['CodePipeline.job']['id']
)
return response
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |