У меня есть экземпляр с именем dev-server-03
. Теперь как мне искать все dev-server-*
экземпляры из командной строки?
Я использую инструмент aws cli.
Предполагая, что вы используете соглашение о помещении имени экземпляра в тег с ключом «Name» (это то, что делает консоль AWS, когда вы вводите имя), тогда вы можете использовать --filters
возможность перечислить эти экземпляры с помощью aws-cli:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'
Если вам просто нужны идентификаторы экземпляров этих экземпляров, вы можете использовать:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
--output text --query 'Reservations[*].Instances[*].InstanceId'
Примечание: --query
может потребоваться последняя версия aws-cli, но ее стоит приобрести.
Вы можете дополнительно отфильтровать имя, идентификатор экземпляра и частный IP-адрес ниже,
aws ec2 describe-instances --filters "Name=tag:Name,Values=*myinstance*" --output json --query 'Reservations[*].Instances[*].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value]' --region us-east-1
Если вы используете jq
, вы можете добиться этого с помощью:
aws ec2 describe-instances |
jq -r '.Reservations[].Instances[] |
select(.Tags[].Value | startswith("dev-server-"))'
Вы можете добавить дополнительные фильтры к jq
для получения более конкретных результатов, например:
... startswith("dev-server-")) | .PublicDnsName'