AWS Функция Lamda для AWS Codepipeline - PullRequest
0 голосов
/ 15 января 2020

Поскольку windows docker не предоставляет команды DIND или docker внутри моего docker, я пытаюсь настроить свою среду CI немного по-другому.

Мне нужно вызвать лямбду функция в конвейере. Для этого я создал лямбду и установил ее в конвейере кода. Но вместо моего успеха, конвейер показывается как тайм-аут.

Я не нашел ни одной подходящей статьи или поста в блоге, чтобы использовать Lamda в ядре dot net в качестве образца. Вот мой код 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);
    }
}

Пожалуйста, помогите мне или поделитесь некоторыми блогами / статьями, связанными с этим

1 Ответ

0 голосов
/ 16 января 2020

Проверьте две вещи:

  1. Роль для выполнения лямбда-функции должна иметь разрешения «codepipeline: PutJobSuccessResult» и «codepipeline: PutJobFailureResult», как описано в нашей документации [1].
  2. Лямбда-функция должна иметь код, который возвращает результат задания в CodePipeline. Пожалуйста, найдите описание метода PutJobSuccessResultRequest здесь [2] и пример кода для C# здесь [3].

Ref:

[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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...