如何通过 AWS 查询输出多个元素?

How to output multiple elements via AWS query?

我试图以列格式输出来自 'rds' 的三个键。如果我从这个声明开始:

aws rds describe-db-instances --region us-east-1 --query 'DBInstances[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]' --output text

...我得到:

DBId true none

但是,如果我包含另一个元素来拉动安全组:

aws rds describe-db-instances --region us-east-1 --query 'DBInstances[*].VpcSecurityGroups[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]' --output text

...我得到:

none none sg-id

我不太清楚为什么我的前两列现在变成 none 并且显示 sg-id

区别是VpcSecurityGroups[*]:

'DBInstances[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]'
vs
'DBInstances[*].VpcSecurityGroups[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]'

在第二个中,您收到 none 因为 DBInstanceIdentifierPubliclyAccessible 不是 VpcSecurityGroups 的属性。

这是显示层次结构的输出的一部分:

{
    "DBInstances": [
        {
            "PubliclyAccessible": false,
            "VpcSecurityGroups": [
                {
                    "Status": "active",
                    "VpcSecurityGroupId": "sg-1203dc23"
                }
            ],
            "DBInstanceIdentifier": "mydbinstance-1"
        }
    ]
}

试试这个:

'DBInstances[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroups[*].VpcSecurityGroupId]'

如果有多个安全组就不好看了,因为是一对多的关系