我尝试以列格式输出“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
我不太清楚为什么我的前两列现在变成了无并且出现了sg-id
。
最佳答案
区别在于VpcSecurityGroups[*]
:
'DBInstances[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]'
vs
'DBInstances[*].VpcSecurityGroups[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroupId]'
在第二个中,您不会收到 none
,因为 DBInstanceIdentifier
和 PubliclyAccessible
不是 VpcSecurityGroups
的属性。
这是显示层次结构的输出的一部分:
{
"DBInstances": [
{
"PubliclyAccessible": false,
"VpcSecurityGroups": [
{
"Status": "active",
"VpcSecurityGroupId": "sg-1203dc23"
}
],
"DBInstanceIdentifier": "mydbinstance-1"
}
]
}
试试这个:
'DBInstances[*].[DBInstanceIdentifier, PubliclyAccessible, VpcSecurityGroups[*].VpcSecurityGroupId]'
如果有多个安全组,它看起来不会很漂亮,因为它是一对多的关系。
关于amazon-web-services - 如何通过AWS查询输出多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48079599/