查询elbv2的AWS cli时使用的通配符



我正在尝试获取某个LoadBalancer的ARN,我只知道DNS名称的前缀。

例如,aws elbv2 describe-load-balancers --query 'LoadBalancers[].DNSName[]'将打印我:

[
    "services-green-********.elb.eu-central-1.amazonaws.com",
    "services-blue-********.elb.eu-central-1.amazonaws.com"
]

类似的东西

aws elbv2 describe-load-balancers --query "LoadBalancers[?DNSName=='services-green-*']"

不起作用,因为不接受通配符,并且不可能使用at-ec2命令之类的筛选器。

如何在不重新使用jq的情况下获得ARN?

您可以试试这个;

aws elbv2 describe-load-balancers --query 'LoadBalancers[?contains(DNSName, `services-green-*`) == `true`][DNSName]'

如果需要完整响应,可以删除最后一个[DNSName]。或者用LoadBalancerArn替换为DNSName

aws elbv2 describe-load-balancers --query 'LoadBalancers[?contains(DNSName, `services-green-*`) == `true`][LoadBalancerArn]'

就像contains一样,如果你不想要完整的通配符,但知道它是如何开始的,你可以尝试starts_with

相关内容

  • 没有找到相关文章

最新更新