我尝试以列格式输出来自'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
。
答案 0 :(得分:2)
区别在于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]'
如果有多个安全组,它看起来会非常漂亮,因为它是一对多的关系。