【发布时间】:2017-07-03 14:59:49
【问题描述】:
我有超过 100 个 Auto Scaling 组。
我希望能够根据 AutoScalingGroupName 的正则表达式搜索我的 Auto Scaling 组并返回 AutoScalingGroupARN(如果存在)。
到目前为止我有:
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"
}
]
}
我只对匹配/abc-app.+/ 的AutoScalingGroupName 感兴趣,我想要以下输出:
{
"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 的最小示例会有所帮助。请参阅stackoverflow.com/help/mcve 上的指南
-
抱歉缺少上下文。感谢您查看 AWS 文档以查看该命令的标准输出
标签: amazon-web-services aws-cli jq