Задача Azure Release Pipeline в AWS System Manger успешно выполняется, даже если задание выполняется в фоновом режиме.

У меня установлено расширение AWS-Toolkit в Azure. В конвейерах выпуска Azure я настроил задачу Выполнить команду диспетчера системы для выполнения сценария python в экземпляре ec2. Проблема в том, что как только запускается задача SSM - Run command, она дает статус «успешно» (через 1 секунду) и переходит к выполнению следующей задачи на этапе. Однако задание все еще выполняется в экземпляре ec2.

Я хочу знать, как сделать так, чтобы задача конвейера Azure ожидала, пока выполнение действительно не закончится, а затем предоставляла соответствующий статус выполненного сценария.

Для того же вызова на консоли AWS SSM он показывает, что задание (скрипт) выполняется. Это проблема с лазурным конвейером? мои остальные задачи AWS, похоже, отлично работают в лазурном конвейере.

Примечание. Задачи конвейера настроены правильно по мере необходимости (поскольку он выполняет то, что должен). Единственная проблема в том, что эта задача должна ждать завершения работы.

Изменить 1: добавление задачи, выполняемой в конвейере, для большей ясности:

  1. Развивайте EC2 с помощью Terraform
  2. Получите код из репо и опубликуйте его (используя задачи публикации артефакта)
  3. Заархивируйте (создайте zip), а затем загрузите его на S3
  4. Используйте сервис AWS CodeDeploy, чтобы получить код из S3 и «установить» его на запущенном EC2, а затем запустить несколько сценариев «после установки» с помощью CodeDeploy Hooks.
  5. Выполните другой скрипт через SSM (так как это может занять несколько часов, поэтому нельзя сделать это через CodeDeploy Hooks, максимальный тайм-аут которого равен 3600).
  6. После выполнения скрипта используйте terraform destroy для завершения экземпляра.

person Akshay    schedule 17.06.2020    source источник


Ответы (1)


Задача Azure Release Pipeline в AWS System Manger выполняется успешно, даже если задание выполняется в фоновом режиме. Это проблема с лазурным конвейером?

Это не проблема с лазурным конвейером. Попробуйте использовать официальный Задача CMD для запуска вашего скрипта Python. Официальная задача CMD не будет отображать Success статус, если сценарий не будет выполнен успешно без ошибок. (Ваше ожидаемое поведение.)

Вместо этого я думаю, что проблема в самой сторонней задаче. Azure Devops поддерживает разработку собственных расширений. , если вы столкнулись с проблемой из самой задачи, вам следует попытаться связаться с автором стороннего расширения.

Вы можете попытаться связаться с ними через здесь. И вот одна открытая проблема, связанная с этой задачей: похоже на поведение, которое вы встретили. Я предлагаю вам отслеживать проблему там и запрашивать обновления для этого запроса функции.

person LoLance    schedule 18.06.2020
comment
Спасибо @Lance Li-MSFT за предложение. Однако задача CMD не сможет выполнить требование, поскольку мой код находится в экземпляре ec2, а задача CMD не найдет эти сценарии во время выполнения. Мне нужно что-то, что должно иметь возможность выполнять сценарии на ec2. Я пробовал использовать задачу SSH, но поскольку EC2 находится в частной подсети, рукопожатие не удается. Команда SSM Run идеально подходила для этого сценария, пока я не заметил такое поведение. - person Akshay; 18.06.2020
comment
Я добавил больше деталей в вопрос для большей ясности. - person Akshay; 18.06.2020
comment
@Akshay Хм, я понимаю твой сценарий. Я взял задачу CMD в качестве примера, потому что хочу уточнить, что эта проблема не возникает в официальной задаче. Это не проблема с лазурным конвейером, это проблема сторонней задачи. Итак, ответ на ваш вопрос заключается в том, что вам необходимо связаться с автором сторонней задачи для дальнейшей поддержки. Как и последняя ссылка, которой я поделился в ответе ... - person LoLance; 19.06.2020