【发布时间】:2020-06-24 14:40:32
【问题描述】:
我正在尝试创建一个适用于 CodePipeline 的 Lambda 函数。问题是它无法将作业成功信息发送到 CodePipeline。 我正在使用 javascript aws-sdk 和来自 AWS.CodePipeline 对象的函数 putJobSuccessResult 在生产中无法正常执行。
const AWS = require('aws-sdk');
const codepipeline = new AWS.CodePipeline();
exports.config = (event, context) => {
// Retrieve the Job ID from the Lambda action
const jobId = event['CodePipeline.job'].id;
return codepipeline.putJobSuccessResult({ jobId }).promise();
};
当我放置管道的 jobId 时,此代码在本地运行良好,但当我将代码上传到 AWS 控制台并运行管道时,它不再运行。
这是特定于 CodePipeline 部分的 Lambda 的 IAM 配置:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"codepipeline:PutJobSuccessResult",
"codepipeline:PutJobFailureResult"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
您对为什么它不能在云上运行有任何想法吗?
【问题讨论】:
-
您的管道是否拥有
lambda:InvokeFunction和lambda:ListFunctions的权限? -
@Marcin 是的。 lambda 执行良好,但在尝试执行
putJobSuccessResult函数时超时。 -
是否在 VPC 中?
-
@Marcin 是的
标签: amazon-web-services aws-lambda aws-sdk aws-codepipeline