AWS CLI-AWS EC2 describe-instances检索每个EC2实例的密钥对mame

时间:2019-01-22 00:23:50

标签: amazon-web-services amazon-ec2 aws-cli

我正在尝试查询附加到每个EC2实例的密钥对名称,下面的ec2 describe-instances可以正常工作,它完全满足我的需要,但是{keypair.Name}下的列显示[NONE]不知道我是否使用正确的参数名称-我知道登录控制台时EC2实例上附加的keypairNames.epm很少,但是我在下面的命令运行的报告中没有看到该参数。非常感谢任何输入。

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value | [0],InstanceId,Platform,State.Name,PrivateIpAddress,PublicIpAddress,InstanceType,PublicDnsName,keypair.Name]' --output table --region us-west-2

3 个答案:

答案 0 :(得分:0)

keypair词典中没有名为Instances的字段。

最接近的是KeyName

{
    "Reservations": [
        {
            "Instances": [
                {
                    "InstanceId": "i-xxx", 
                    "KeyName": "foo", 
...

因此,您将使用:

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value | [0],InstanceId,Platform,State.Name,PrivateIpAddress,PublicIpAddress,InstanceType,PublicDnsName,KeyName]'

请参阅:describe-instances — AWS CLI Command Reference

答案 1 :(得分:0)

我确实找到了一种方法,可以使用管道对其进行分类。 exp:|排序-k5

请注意,在我使用{sort}之前,报告在PLATFORM列下的整个位置都有{windows}和{None}。请参阅附件,我上传了报告的示例结果。

新语句如下:

aws ec2 describe-instances --filters Name=instance-state-name,Values=running --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value | [0],InstanceId,Platform,State.Name,PrivateIpAddress,PublicIpAddress,InstanceType,KeyName]' --output table | sort -k5

Report shows that is sorted by PLATFORM IN Asc order

答案 2 :(得分:0)

出于某些原因,我执行以下操作

  • 可以很容易地通过管道传输到grep
  • 如果您想改善数据,则无需重复查询aws api
  • 我通常会遍历多个区域,因此可以轻松浏览所有区域(和帐户)
{{1}}