скрипт user_data не выполняется во время загрузки, но он работает при выполнении вручную

#amazon-web-services #amazon-ec2 #amazon-ecs

Вопрос:

У меня есть простой сценарий powershell, который я хотел бы выполнить во время загрузки, чтобы экземпляр EC2 регистрировался в кластере ECS:

user_data.ps1

 Import-Module ECSTools [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster "my-dev-cluster" -EnableTaskIAMRole -EnableTaskENI  

После загрузки экземпляра я не вижу, чтобы он был зарегистрирован в моем кластере ECS. Однако, если я выполню сценарий вручную, следуя этим шагам, он сработает:

  • перейдите в EC2, а затем выберите экземпляр, а затем Действия -gt; Настройки экземпляра -gt;gt; Редактирование пользовательских данных
  • затем скопируйте сценарий пользовательских данных
  • подключитесь к экземпляру с помощью диспетчера сеансов
  • вставьте и выполните сценарий пользовательских данных

Я вижу, что EC2 зарегистрирован в кластере ECS.

Может кто-нибудь, пожалуйста, объяснить, чего мне не хватает?

Ответ №1:

Оказывается, мне нужно инкапсулировать свой сценарий powershell lt;/powershellgt; с помощью тегов, таких как:

 lt;powershellgt; Import-Module ECSTools [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster "my-dev-cluster" -EnableTaskIAMRole -EnableTaskENI lt;/powershellgt;  

После этого мой скрипт powershell user_data успешно выполнялся, и мой экземпляр ECS был зарегистрирован в кластере нормально