#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 был зарегистрирован в кластере нормально