我得到的最接近的是使用以下命令。
此命令设法列出所有实例名称。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Run Code Online (Sandbox Code Playgroud)
此命令设法列出所有我不需要的私有 IP 地址、实例 ID 和所有标签。我只需要名字。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我不能像这样执行命令:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Run Code Online (Sandbox Code Playgroud)
此命令有效,但它显示所有标签键名称。
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Run Code Online (Sandbox Code Playgroud)
DrS*_*ork 28
您需要转义反斜杠才能正确格式化答案。
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /'
Run Code Online (Sandbox Code Playgroud)
所以这是你想要的实际命令:
$ aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-ac973bc9 --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /'
10.101.255.10 i-91efd39b Server1
10.101.255.9 i-f1e8d4fb Server2
Run Code Online (Sandbox Code Playgroud)
而你不需要.Value[]
. 您可以只使用.Value
, 这将提供相同的输出。
这太棒了,顺便说一句。我将自己实施!
更正:如果值为.Value
“无” ,则上述方法无效。这效果更好:
$ aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-ac973bc9 --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value[]]' --output text | sed 's/None$/None\n/' | sed '$!N;s/\n/ /'
10.101.255.10 i-91efd39b Server1
10.101.255.9 i-f1e8d4fb Server2
10.101.255.8 i-f6c2450a None
10.101.255.7 i-34a6afce Server3
Run Code Online (Sandbox Code Playgroud)
小智 11
尝试这个
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value|[0],State.Name,PrivateIpAddress,PublicIpAddress]' --output text | column -t
Run Code Online (Sandbox Code Playgroud)
小智 8
上面的答案是可以的,但我最喜欢的是;
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType,PrivateIpAddress,PublicIpAddress,Tags[?Key==`Name`].Value[]]' --output json | tr -d '\n[] "' | perl -pe 's/i-/\ni-/g' | tr ',' '\t' | sed -e 's/null/None/g' | grep '^i-' | column -t
Run Code Online (Sandbox Code Playgroud)
其实可以把它放在一个BASH函数列表列表中;
awsls () { aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType,PrivateIpAddress,PublicIpAddress,Tags[?Key==`Name`].Value[]]' --output json | tr -d '\n[] "' | perl -pe 's/i-/\ni-/g' | tr ',' '\t' | sed -e 's/null/None/g' | grep '^i-' | column -t }
Run Code Online (Sandbox Code Playgroud)
然后只需从提示中调用 'awsls'
小智 2
像这样的东西吗?
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65477 次 |
最近记录: |