我有100多個Auto Scaling組。aws cli和jq - 返回屬性匹配模式的對象
我希望能夠基於AutoScalingGroupName的正則表達式搜索我的Auto Scaling組並返回AutoScalingGroupARN(s)(如果存在)。
到目前爲止,我有:
aws autoscaling describe-auto-scaling-groups | jq '.AutoScalingGroups[].AutoScalingGroupName | capture("(?<result>my-regex-pattern)")'
雖然這確實返回AutoScalingGroupNames,我想也返回AutoScalingGroupARN,而不是用做從以前的命令的輸出另一個命令。
因此,考慮從aws autoscaling describe-auto-scaling-groups
輸出如下:
{
"AutoScalingGroups": [
{
"AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:208e9fe9-3a9b-4f30-9b47-855f4a7ee671:autoScalingGroupName/abc-app-dev-as-1IZQABPFDAV2A",
"AutoScalingGroupName": "abc-app-dev-as-1IZQABPFDAV2A",
"...": "more output"
},
{
"AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:c6463f9a-7fa1-41de-a39b-7996d2b8cbb1:autoScalingGroupName/foo-app-dev-as-1IZQABPFDAV2A",
"AutoScalingGroupName": "foo-app-dev-as-1IZQABPFDAV2A",
"...": "more output"
}
{
"AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:6a659b27-1ea7-4d39-8a8b-790153033b39:autoScalingGroupName/abc-app-prod-as-1IZQABPFDAV2A",
"AutoScalingGroupName": "abc-app-prod-as-1IZQABPFDAV2A",
"...": "more output"
},
{
"Lots more": "Like the above"
}
]
}
而且我只關心AutoScalingGroupName
匹配/abc-app.+/
,我會想的輸出:
{
"results": [
{
"AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:208e9fe9-3a9b-4f30-9b47-855f4a7ee671:autoScalingGroupName/abc-app-dev-as-1IZQABPFDAV2A",
"AutoScalingGroupName": "abc-app-dev-as-1IZQABPFDAV2A"
},
{
"AutoScalingGroupARN": "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:6a659b27-1ea7-4d39-8a8b-790153033b39:autoScalingGroupName/abc-app-prod-as-1IZQABPFDAV2A",
"AutoScalingGroupName": "abc-app-prod-as-1IZQABPFDAV2A"
}
]
}
有沒有辦法做到這一點?
JSON的一個簡單例子會很有幫助。請參閱http://stackoverflow.com/help/mcve上的指導原則 – peak
對缺乏上下文感到抱歉。感謝您檢查AWS文檔以查看該命令的標準輸出 – tkwargs