#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:
Возможными причинами могут быть следующие :
- Для выполнения событий жизненного цикла все зависит от агента развертывания кода в первую очередь, который должен быть установлен либо на экземплярах 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
- В вашем appspec.yml может быть ошибка, если это так, то вы сможете увидеть эту ошибку, в каком событии жизненного цикла присутствует ошибка. Чтобы определить это, перейдите к развертываниям => выберите одно из неудачных развертываний => перейдите к событиям => здесь вы увидите ошибку => при нажатии на эту ошибку отобразится причина. Если вы хотите подробно понять, как это работает, пожалуйста, просмотрите мой блог здесь, хотя он предназначен для EC2.
Я надеюсь, что это может вам помочь.
Комментарии:
1. Возможно, это не проблема с агентом codedeploy. Потому что, если я не подключаю lambda, он успешно развернут.
2. И у меня нет
appspec.yml
. Просто запустите перед подключением через обновление службы ECS.