dim*_*mid 2 amazon-web-services aws-cli
我想得到一个特定区域中所有实例的简单列表,每个记录应包括id,ARN和实例名称.我试过用了
ec2 describe-instances --region us-east-1
Run Code Online (Sandbox Code Playgroud)
但是在输出中找不到ARN.
如果在您的用例中可以通过了解区域,帐户ID +实例ID来构建ARN:
arn:aws:ec2:region:account-id:instance/instance-id
arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0
Run Code Online (Sandbox Code Playgroud)
实际上 - 当我看到JSON响应时,OwnerId似乎包含了account-id从结果中构造它describe-instances应该相当简单.
编辑:jq用于构造您正在寻找的输出的示例:
aws ec2 describe-instances --region us-east-1 | jq -r '.Reservations[] | .OwnerId as $OwnerId | ( .Instances[] | { "ARN": "arn:aws:ec2:\(.Placement.AvailabilityZone[:-1]):\($OwnerId):instance/\(.InstanceId)", "AvailabilityZone": "\(.Placement.AvailabilityZone)", InstanceId, PublicDnsName, PrivateDnsName, Tags} )' | jq -s .
Run Code Online (Sandbox Code Playgroud)
这将产生如下输出:
[
{
"ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-0a9842b2da1xxxxxx",
"AvailabilityZone": "us-east-1a",
"InstanceId": "i-0a9842b2da1xxxxxx",
"PublicDnsName": "ec2-72-32-69-225.compute-1.amazonaws.com",
"PrivateDnsName": "ip-10-0-0-68.ec2.internal",
"Tags": [
{
"Value": "my-beanstalk",
"Key": "elasticbeanstalk:environment-name"
},
{
"Value": "awseb-e-emiwxxxxxx-stack",
"Key": "aws:cloudformation:stack-name"
}
]
},
{
"ARN": "arn:aws:ec2:us-east-1:123456789012:instance/i-0a9842b2ca1xxxxxx",
"AvailabilityZone": "us-east-1a",
"InstanceId": "i-0a9842b2ca1xxxxxx",
"PublicDnsName": "ec2-72-32-69-226.compute-1.amazonaws.com",
"PrivateDnsName": "ip-10-0-0-69.ec2.internal",
"Tags": [
{
"Value": "my-beanstalk-2",
"Key": "elasticbeanstalk:environment-name"
},
{
"Value": "awseb-e-emizxxxxxx-stack",
"Key": "aws:cloudformation:stack-name"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |