Назад | Перейти на главную страницу

Поиск экземпляра ec2 по его имени из инструмента командной строки aws

У меня есть экземпляр с именем 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'