我正在尝试解析AWS CLI的JSON输出。我要找的是下面有特定标签的安全组名称。两个有效的命令是
$aws ec2 describe-security-groups | jq -r '.SecurityGroups[].GroupName'
default
mysqlsg
apachesg
default
然后我运行
$ aws ec2 describe-security-groups | jq -r '.SecurityGroups[].Tags[]|select(.Key == "Service")'
{
"Key": "Service",
"Value": "default"
}
{
"Key": "Service",
"Value": "MySQL"
}
{
"Key": "Service",
"Value": "Apache"
}
{
"Key": "Service",
"Value": "default"
}
我希望每个小组的下面都有服务标签,所以我尝试了一下,但没有成功。
$ aws ec2 describe-security-groups | jq -r '.SecurityGroups[].GroupName,.SecurityGroups[].Tags[]|select(.Key == "Service")'
jq: error (at <stdin>:225): Cannot index string with string "Key"
您可以使用aws-cli
查询参数来完成此操作,请尝试以下操作,它应该可以工作。
aws ec2 describe-security-groups --query 'SecurityGroups[].{Tags:Tags[?Key==`Name`].Value|[0],GroupName:GroupName}'
输出
{
"Tags": "demo",
"GroupName": "demo"
}