groovy 用于从AWS删除所有负载平衡器资源的AWS CLI

9ceoxa92  于 2023-02-03  发布在  其他
关注(0)|答案(1)|浏览(113)

我想删除从下面的查询返回的所有负载平衡器。问题是创建一个数组,然后循环通过每个项目,以从我的Groovy管道脚本中删除Jenkins。

def load_balancer_names = sh(returnStdout: true,  script: """ aws elbv2 describe-load-balancers | jq '[.LoadBalancers[] | select(.LoadBalancerName | startswith("loadbalancer-alb-")) | { LoadBalancerARN: .LoadBalancerARN } ]' """)
                                    
echo "Load balancer list: ${load_balancer_names}"

JSON输出:

Load balancer list: [
  {
    "LoadBalancerName": "arn:aws:elasticloadbalancing:us-east-1:...-123"
  },
  {
    "LoadBalancerName": "arn:aws:elasticloadbalancing:us-east-1:...-657"
  }
]

用于删除负载平衡器的AWS CLI delete命令:

aws elbv2 delete-load-balancer \
    --load-balancer-arn [load balancer ARN]
jpfvwuh4

jpfvwuh41#

这应该对你有用:

aws elbv2 describe-load-balancers --query "LoadBalancers[?starts_with(LoadBalancerName,'loadbalancer-alb-')].LoadBalancerArn" --output text | tr "\t" "\n" | xargs -I{} aws elbv2 delete-load-balancer --load-balancer-arn {}

此命令不需要jq,只使用AWS CLI,它提取负载平衡器ARN,然后将它们提供给xargs进行删除

相关问题