У меня установлено расширение AWS-Toolkit в Azure. В конвейерах выпуска Azure я настроил задачу Выполнить команду диспетчера системы для выполнения сценария python в экземпляре ec2. Проблема в том, что как только запускается задача SSM - Run command, она дает статус «успешно» (через 1 секунду) и переходит к выполнению следующей задачи на этапе. Однако задание все еще выполняется в экземпляре ec2.
Я хочу знать, как сделать так, чтобы задача конвейера Azure ожидала, пока выполнение действительно не закончится, а затем предоставляла соответствующий статус выполненного сценария.
Для того же вызова на консоли AWS SSM он показывает, что задание (скрипт) выполняется. Это проблема с лазурным конвейером? мои остальные задачи AWS, похоже, отлично работают в лазурном конвейере.
Примечание. Задачи конвейера настроены правильно по мере необходимости (поскольку он выполняет то, что должен). Единственная проблема в том, что эта задача должна ждать завершения работы.
Изменить 1: добавление задачи, выполняемой в конвейере, для большей ясности:
- Развивайте EC2 с помощью Terraform
- Получите код из репо и опубликуйте его (используя задачи публикации артефакта)
- Заархивируйте (создайте zip), а затем загрузите его на S3
- Используйте сервис AWS CodeDeploy, чтобы получить код из S3 и «установить» его на запущенном EC2, а затем запустить несколько сценариев «после установки» с помощью CodeDeploy Hooks.
- Выполните другой скрипт через SSM (так как это может занять несколько часов, поэтому нельзя сделать это через CodeDeploy Hooks, максимальный тайм-аут которого равен 3600).
- После выполнения скрипта используйте terraform destroy для завершения экземпляра.