Я запускаю следующую команду оболочки, чтобы слить мой экземпляр ECS перед перезагрузкой:
INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
aws ecs update-container-instances-state \
--region eu-central-1 \
--cluster mycluster \
--status DRAINING \
--container-instances $INSTANCE_ID
Это дает мне следующую ошибку:
Произошла ошибка (InvalidParameterException) при вызове операции UpdateContainerInstancesState: instanceId короче 36.
Очевидно, это потому, что он хочет ECS containerInstanceId, который отличается от ec2InstanceId. Каков наилучший способ узнать идентификатор контейнера локальной машины?
Насколько я понял, пока
- используйте
aws ecs list-container-instances
, чтобы получить все идентификаторы экземпляра контейнера в кластере
- используйте
aws ecs describe-container-instances
, чтобы получить соответствующие идентификаторы экземпляра EC2
- использовать метаданные экземпляра (
http://169.254.169.254/latest/meta-data/instance-id
), чтобы узнать локальный идентификатор экземпляра EC2
- Используйте
jq
в сочетании с grep
или другим инструментом для фильтрации
Это кажется немного сложным. Есть ли более простой способ?