Как получить список только запущенных экземпляров при использовании тегов ec2-description Как я могу получить список только запущенных экземпляров при использовании ec2-describe-tags. Я использую свою команду следующим образом: ec2-describe-tags --filter "resource-type=instance" --filter "value=somevalue" --filter "key=key" Ответ 1 Легко использовать aws-cli: aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters Name=instance-state-name,Values=running --output text Ответ 2 Развернувшись на ответ Джона Ротенштейна, вы можете определенно сделать это с помощью описаний-экземпляров. В этом списке будет указан тег имени и IP всех запущенных экземпляров, чей тег имени содержит определенное слово: name_tag=mongodb aws ec2 describe-instances --filter "Name=tag-key,Values=Name" "Name=tag-value,Values=*$name_tag*" "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*][Tags[?Key=='Name'].Value[],NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress]" --output text Вывод: 10.100.2.10 mongodb0 10.100.2.11 mongodb1 10.100.2.12 mongodb2 Бонус здесь заключается в том, что оставляя пустые списки name_tag all. Ответ 3 Вы не можете фильтровать, запуская экземпляры только с помощью ec2-describe-tags, но вы можете комбинировать его с ec2-describe-instances: ec2-describe-instances --filter "instance-state-name=running" --hide-tags | grep -o "i\-[0-9a-f]\+" | xargs -I {} ec2-describe-tags --filter "resource-id={}" Это очень медленное решение - поскольку он будет описывать теги для каждого экземпляра отдельно, и могут быть лучшие решения (к сожалению, я не мастер bash)
Ответ 1 Легко использовать aws-cli: aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters Name=instance-state-name,Values=running --output text
Ответ 2 Развернувшись на ответ Джона Ротенштейна, вы можете определенно сделать это с помощью описаний-экземпляров. В этом списке будет указан тег имени и IP всех запущенных экземпляров, чей тег имени содержит определенное слово: name_tag=mongodb aws ec2 describe-instances --filter "Name=tag-key,Values=Name" "Name=tag-value,Values=*$name_tag*" "Name=instance-state-name,Values=running" --query "Reservations[*].Instances[*][Tags[?Key=='Name'].Value[],NetworkInterfaces[0].PrivateIpAddresses[0].PrivateIpAddress]" --output text Вывод: 10.100.2.10 mongodb0 10.100.2.11 mongodb1 10.100.2.12 mongodb2 Бонус здесь заключается в том, что оставляя пустые списки name_tag all.
Ответ 3 Вы не можете фильтровать, запуская экземпляры только с помощью ec2-describe-tags, но вы можете комбинировать его с ec2-describe-instances: ec2-describe-instances --filter "instance-state-name=running" --hide-tags | grep -o "i\-[0-9a-f]\+" | xargs -I {} ec2-describe-tags --filter "resource-id={}" Это очень медленное решение - поскольку он будет описывать теги для каждого экземпляра отдельно, и могут быть лучшие решения (к сожалению, я не мастер bash)