Лямбда-функция никогда не преуспевает в коде - PullRequest
0 голосов
/ 28 августа 2018

Когда я запускаю свою функцию Lambda в Codepipeline, она заканчивается правильно и делает то, что я хочу, как я вижу в журналах , но никогда не преуспевает в конвейере . Он просто показывает In Progress , когда моя функция Lambda выполняет свою работу в журналах.

Чего мне не хватает? Может быть, мне нужно отправить 'putJobSuccessResult' , как показано здесь , на CodePipeline? Но если так, то почему, если это не пользовательское действие?

А что такое пользовательские действия вообще? В чем разница между ними и нестандартными действиями?

1 Ответ

0 голосов
/ 28 августа 2018

Может быть, мне нужно отправить 'putJobSuccessResult', как показано здесь, в CodePipeline?

Да, вам нужно вызвать putJobSuccessResult из вашей лямбда-функции.

Но если так, то почему, если это не пользовательское действие?

Это сообщает CodePipeline, что ваша лямбда-функция завершена и что делать дальше.

CodePipeline имеет функцию, при которой, если вы передадите «токен продолжения», CodePipeline повторно вызовет вашу функцию и передаст состояние в маркере продолжения следующему вызову. Это позволяет вам выполнять действия дольше, чем время ожидания Lambda. Вы можете передать эту информацию при вызове putJobSuccessResult.

Кроме того, он отделяет «сбой действия» от «сбоя функции». Это позволяет вам провалить действие, не прерывая лямбда-функцию. Это желательно, потому что Lambda имеет повторное поведение в случае сбоя функции.

А что это за пользовательские действия вообще?

С пользовательским действием вам нужен собственный код для вызова PollForJobs, который обычно выполняется, например. долго работающий экземпляр EC2. Действие вызова Lambda вызовет функцию Lambda без необходимости запуска собственного экземпляра / хоста.

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