политика aws codedeploy для lambda

#amazon-web-services #amazon-ecs #aws-code-deploy

#amazon-web-services #amazon-ecs #aws-code-deploy

Вопрос:

Я использую AWS ECS и для развертывания с синим / зеленым цветом, также используя Codedeploy.

Я запускаю lambda перед установкой в codedeploy для конкретного задания.

Но Codedeploy застрял перед установкой.

Итак, я проверяю журналы lambda в cloudwatch, и он выполнен отлично.

Я думаю, что codedeploy не знает, что lambda была завершена.

Есть ли необходимость в какой-либо политике для выполнения lambda при codedeploy?

Любые комментарии, очень ценю.

Спасибо.

Ответ №1:

Возможными причинами могут быть следующие :

  1. Для выполнения событий жизненного цикла все зависит от агента развертывания кода в первую очередь, который должен быть установлен либо на экземплярах EC2, либо даже если это контейнерный сервис, такой как ECS. Возможно, вы пропустили установку агента развертывания кода на компьютере / контейнере. Ниже приведен набор команд, которые могут помочь вам установить то же самое в вашем контейнере, также вы можете передать этот набор команд в качестве сценария начальной загрузки в вашем контейнере.

обновление sudo yum

sudo yum устанавливает aws-cli

cd / home / ec2-пользователь

aws s3 cp s3://aws-codedeploy-us-east-1/ последняя версия / установить . —регион США-восток-1

chmod x ./install

sudo ./install auto

  1. В вашем appspec.yml может быть ошибка, если это так, то вы сможете увидеть эту ошибку, в каком событии жизненного цикла присутствует ошибка. Чтобы определить это, перейдите к развертываниям => выберите одно из неудачных развертываний => перейдите к событиям => здесь вы увидите ошибку => при нажатии на эту ошибку отобразится причина. Если вы хотите подробно понять, как это работает, пожалуйста, просмотрите мой блог здесь, хотя он предназначен для EC2.

Я надеюсь, что это может вам помочь.

Комментарии:

1. Возможно, это не проблема с агентом codedeploy. Потому что, если я не подключаю lambda, он успешно развернут.

2. И у меня нет appspec.yml . Просто запустите перед подключением через обновление службы ECS.