【问题标题】:AWS Lamda Function for AWS Codepipeline适用于 AWS Codepipeline 的 AWS Lambda 函数
【发布时间】:2020-01-16 18:48:13
【问题描述】:

由于 windows docker 在我的 docker 中不提供 DIND 或 docker 命令,我正在尝试设置我的 CI 环境有点不同。

我需要在管道中调用一个 lambda 函数。为此,我创建了一个 lambda 并将其设置在代码管道中。但不是我的成功,而是管道显示为超时。

我没有找到任何合适的文章或博客文章将点网核心中的 Lamda 用作示例。以下是我的 lamda 代码:

    public class Function
{
    public class CodePipelineInput
    {
        [JsonProperty("CodePipeline.job")]
        public Job job { get; set; }
    }
    public async Task FunctionHandler(CodePipelineInput source, ILambdaContext context)
    {
        var codepipeline = new AmazonCodePipelineClient();
            var putJobSuccessRequestResult = new PutJobSuccessResultRequest()
            {
                JobId = source.job.Id
            };
            await codepipeline.PutJobSuccessResultAsync(putJobSuccessRequestResult);
    }
}

请指导我或分享一些与此相关的博客/文章

【问题讨论】:

    标签: c# amazon-web-services .net-core aws-lambda aws-codepipeline


    【解决方案1】:

    请检查两件事:

    1. Lambda 函数执行角色应具有我们的文档 [1] 中所述的“codepipeline:PutJobSuccessResult”和“codepipeline:PutJobFailureResult”权限。
    2. Lambda 函数应具有将作业结果返回给 CodePipeline 的代码。请在此处 [2] 找到 PutJobSuccessResultRequest 方法的描述,并在此处 [3] 找到 C# 的一些代码示例。

    参考:

    [1]https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html#actions-invoke-lambda-function-create-function

    [2]https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=CodePipeline/MCodePipelinePutJobSuccessResultPutJobSuccessResultRequest.html

    [3]https://github.com/PaulDMendoza/aws-unzip-codepipeline-output-lambda/blob/master/Function.cs

    【讨论】:

    • 谢谢,伙计。不幸的是仍然无法正常工作。我已将完整的代码管道权限授予 lambda 函数执行角色以及代码管道角色。无论如何感谢上一篇文章。这暗示了前进……看起来
    • 找到根本原因:我给了 VPC、子网和安全组,这导致了问题。如果我删除了这些,Lamda 会成功执行。验证原因
    • 明显的原因可能是在提供 VPC 选项时 Lambda 无法到达 CodePipeline 端点(基于区域,例如 codepipeline.us-east-1.amazonaws.com)。检查您的子网是否通过 Internet 网关或 nat 网关路由到 0.0.0.0/0。
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2017-09-18
    • 2018-08-04
    • 1970-01-01
    • 2020-11-06
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多