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

Nevermind :-). Это не возможно.

32
задан 11 December 2013 в 01:22
3 ответа

Если вы используете соглашение о помещении имени экземпляра в тег с ключом «Имя» (это то, что делает Консоль 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, но ее стоит приобрести.

55
ответ дан 28 November 2019 в 19:56

Вы можете дополнительно отфильтровать имя, идентификатор экземпляра и частный 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
3
ответ дан 28 November 2019 в 19:56

Если вы используете jq, вы можете добиться этого с помощью:

aws ec2 describe-instances | 
jq -r '.Reservations[].Instances[] | 
select(.Tags[].Value | startswith("dev-server-"))'

Вы можете добавить дополнительные фильтры к jq для получения более конкретных результатов, например:

... startswith("dev-server-")) | .PublicDnsName'
0
ответ дан 13 February 2020 в 21:49

Теги

Похожие вопросы