ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AWS CLI autoscaling describe-load-balancer-target-groups 实战指南:查询 Auto Scaling 组关联的负载均衡目标组

AWS CLI autoscaling describe-load-balancer-target-groups 实战指南:查询 Auto Scaling 组关联的负载均衡目标组 AWS CLI autoscaling describe-load-balancer-target-groups 实战指南查询 Auto Scaling 组关联的负载均衡目标组【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cliaws autoscaling describe-load-balancer-target-groups是 AWS CLI 中用于查询指定 Auto Scaling 组当前关联的 Elastic Load BalancingELB目标组Target Group及其绑定状态的核心命令主要服务于 Application Load BalancerALB、Network Load BalancerNLB与 Gateway Load Balancer 场景。本文将围绕该命令的参数、输出结构与State状态机展开讲解并结合本仓库内的官方示例文档与 Botocore 服务模型源码带你理解命令背后的 API 语义与分页机制掌握查询、验证与排障的完整姿势。命令概览一条命令看清目标组绑定状态在 describe-load-balancer-target-groups.rst 中官方示例给出了最典型的用法——描述指定 Auto Scaling 组关联的负载均衡目标组aws autoscaling describe-load-balancer-target-groups \ --auto-scaling-group-name my-asg对应的输出如下{ LoadBalancerTargetGroups: [ { LoadBalancerTargetGroupARN: arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067, State: Added } ] }输出中的每个元素都代表一个已关联的目标组LoadBalancerTargetGroupARN是目标组的 ARNState则描述该目标组与 Auto Scaling 组之间的绑定进度。与 Classic Load Balancer 查询命令的区别Auto Scaling 同时提供了两条描述负载均衡命令容易混淆describe-load-balancers.rst仅查询 Classic Load Balancer传统型负载均衡器输出元素为LoadBalancerName与Statedescribe-load-balancer-target-groups本文主角查询目标组Target Group适用于 ALB、NLB 与 Gateway Load Balancer。在 service-2.json 的DescribeLoadBalancers操作文档中明确写道该操作只描述 Classic Load Balancers如果使用的是 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer应改用DescribeLoadBalancerTargetGroupsAPI。请求参数详解DescribeLoadBalancerTargetGroups操作的输入结构定义在 service-2.json包含三个成员参数是否必填类型说明--auto-scaling-group-name必填XmlStringMaxLen255最大 255 字符要查询的 Auto Scaling 组名称--next-token否XmlString上一次调用返回的令牌用于获取下一页结果--max-records否MaxRecords单次调用返回的最大条目数默认值为 100最大值也是 100其中--auto-scaling-group-name为唯一必填项其余两个参数服务于分页场景。由于单次最多返回 100 条记录当目标组数量较多时需要配合--next-token迭代拉取。分页机制的源码依据在 paginators-1.json 中该操作注册了官方的分页器配置DescribeLoadBalancerTargetGroups: { input_token: NextToken, limit_key: MaxRecords, output_token: NextToken, result_key: LoadBalancerTargetGroups }这意味着你可以直接用 AWS CLI 内置的分页能力一次性获取全部结果# 自动处理分页聚合所有页的 LoadBalancerTargetGroups aws autoscaling describe-load-balancer-target-groups \ --auto-scaling-group-name my-asg \ --max-records 100 \ --no-cli-pager也可以在--query中利用NextToken手动控制翻页或将--max-records调小以观察分页令牌行为。输出结构解读DescribeLoadBalancerTargetGroups的响应结构定义于 service-2.json包含两个字段LoadBalancerTargetGroups目标组信息列表每个元素是一个LoadBalancerTargetGroupState对象NextToken当响应包含更多条目时返回该令牌用于下次请求若无更多数据则为null。其中LoadBalancerTargetGroupState结构见 service-2.json包含字段类型说明LoadBalancerTargetGroupARNXmlStringMaxLen511最大 511 字符目标组的 Amazon Resource NameARNStateXmlStringMaxLen255目标组当前状态见下方状态机State 状态机从 Adding 到 RemovedState字段是判断目标组绑定是否成功的核心依据。根据 service-2.json 中DescribeLoadBalancerTargetGroups操作文档的权威描述状态取值与含义如下State 值含义AddingAuto Scaling 实例正在注册到目标组Added所有 Auto Scaling 实例均已注册到目标组InService至少有一个 Auto Scaling 实例通过了 ELB 健康检查RemovingAuto Scaling 实例正在从目标组注销若启用了连接排空connection drainingELB 会等待在途请求处理完毕后再注销实例Removed所有 Auto Scaling 实例均已从目标组注销状态流转规则挂载目标组后初始状态为Adding当所有 Auto Scaling 实例完成注册后状态变为Added如果 Auto Scaling 组启用了 ELB 健康检查则至少一个实例通过健康检查后状态变为InService只有在InService状态下Amazon EC2 Auto Scaling 才可以终止并替换被报告为不健康的实例如果没有任何已注册实例通过健康检查目标组不会进入InService状态通过CreateAutoScalingGroupAPI 创建组时一并指定的目标组也会以InService状态呈现。排障建议官方文档给出的排障路径是若目标组显示InService但实际工作不正常应调用 describe-scaling-activities.rst 对应的DescribeScalingActivities查看伸缩活动记录并针对健康检查失败采取纠正措施aws autoscaling describe-scaling-activities \ --auto-scaling-group-name my-asg与挂载/卸载命令配合使用查询命令通常与以下两条命令配套使用同目录下的官方示例文档挂载目标组attach-load-balancer-target-groups.rstaws autoscaling attach-load-balancer-target-groups \ --auto-scaling-group-name my-asg \ --target-group-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067卸载目标组detach-load-balancer-target-groups.rstaws autoscaling detach-load-balancer-target-groups \ --auto-scaling-group-name my-asg \ --target-group-arns arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067这两条命令执行成功时均无输出。一个典型的工作流是使用attach-load-balancer-target-groups挂载目标组轮询describe-load-balancer-target-groups观察State从Adding过渡到Added最终到达InService需要下线流量时使用detach-load-balancer-target-groups卸载再确认State变为Removed。实用变体格式化输出与筛选在实际运维中可以借助--query与--output精简输出例如只列出目标组 ARNaws autoscaling describe-load-balancer-target-groups \ --auto-scaling-group-name my-asg \ --query LoadBalancerTargetGroups[].LoadBalancerTargetGroupARN \ --output text按状态过滤未就绪的目标组aws autoscaling describe-load-balancer-target-groups \ --auto-scaling-group-name my-asg \ --query LoadBalancerTargetGroups[?State ! InService] \ --output json注意事项与演进趋势从 service-2.json 的操作文档可知DescribeLoadBalancerTargetGroups已被DescribeTrafficSources取代后者能够描述多种类型的流量源官方建议使用DescribeTrafficSources来简化流量源管理。但需要特别留意一个限制DescribeLoadBalancerTargetGroups只能描述通过AttachLoadBalancerTargetGroups挂载的目标组无法描述通过AttachTrafficSources挂载的目标组。因此老架构仅用目标组 经典挂载 API可以继续依赖本命令若已迁移到AttachTrafficSources/DescribeTrafficSources体系则查询目标组应改用新的describe-traffic-sources命令。小结aws autoscaling describe-load-balancer-target-groups是排查 Auto Scaling 与负载均衡集成状态的必备命令。掌握它的关键在于三点一是区分目标组ALB/NLB/Gateway LB与 Classic Load Balancer 两套查询命令二是理解Adding → Added → InService → Removing → Removed的状态机及各状态触发的条件三是善用分页参数与--query实现规模化、可脚本化的状态巡检。配合本仓库 awscli/examples/autoscaling/ 目录下的挂载、卸载与伸缩活动查询示例即可构建一套完整的负载均衡生命周期管理流程。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表