通过AWS命令行工具按名称搜索ec2实例


Answers:


55

假设您使用的惯例是将实例名称放在带有“名称”键的标签中(这是当您输入名称时AWS控制台执行的操作),那么您可以使用该--filters选项列出带有aws-cli:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'

如果只需要这些实例的实例ID,则可以使用:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
  --output text --query 'Reservations[*].Instances[*].InstanceId'

注意:--query可能需要最新版本的aws-cli,但值得获得。


1
天哪,我花了将近半个小时才弄清楚了……这是多么奇怪:Name=tag:Name
lisak 2015年

1
谢谢Eric-使用您的查询,--query 'Reservations[].Instances[].[InstanceId]我在同一行上获得了多个实例ID,但是github.com/aws/aws-cli/issues/914#issuecomment-56210312建议使用哪种对我
有用

3
FWIW,该jq工具可用于获得类似如下的结果aws --query:- aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'注意前面的.点。
MarkHu

能否使describe-instances过滤器不区分大小写?
red888 '18

3

您可以在下面进一步过滤名称,实例ID和私有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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.