资讯动态

AWS CLI:application-autoscaling delete-scaling-policy 实战指南——彻底理解并删除 Application Auto Scaling 扩缩容策略

发布时间:2026/9/14 17:16:37 来源:尧图企业网站定制
AWS CLIapplication-autoscaling delete-scaling-policy 实战指南——彻底理解并删除 Application Auto Scaling 扩缩容策略【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文基于 aws-cli 仓库中的官方示例文档 delete-scaling-policy.rst 展开讲解如何删除 Amazon ECS 服务上挂接的 Application Auto Scaling 扩缩容策略完整参数说明全部为必填项、各服务 Resource ID 与 Scalable Dimension 的合法格式、删除后的实际效果底层告警动作与 CloudWatch 告警的区别、可能的错误类型以及如何用describe-scaling-policies验证删除结果。读完后你可以独立完成定位策略 → 删除策略 → 验证删除的完整运维闭环。命令示例删除 ECS 服务上的扩缩容策略delete-scaling-policy.rst 给出的核心示例是删除运行在default集群中、名为web-app的 Amazon ECS 服务上的扩缩容策略aws application-autoscaling delete-scaling-policy \ --policy-name web-app-cpu-lt-25 \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --service-namespace ecs该命令对应 AWS SDK 模型中的DeleteScalingPolicy操作。从 服务模型定义 看该操作以 HTTPPOST请求发送至根路径/请求与响应结构分别由DeleteScalingPolicyRequest和DeleteScalingPolicyResponse两个 shape 定义。值得注意的是响应结构体的 members 为空members: {}即删除成功时不返回任何字段——这是该 API 的典型写操作无返回体设计判断成功与否主要依据命令退出码与是否抛出异常。四个必填参数逐项解析DeleteScalingPolicyRequest在模型中声明了required: [PolicyName, ServiceNamespace, ResourceId, ScalableDimension]四个参数缺一不可。定位一个扩缩容策略需要服务命名空间 资源 ID 可伸缩维度 策略名这组四元组缺一项就无法唯一确定策略参数说明示例中的取值--policy-name要删除的扩缩容策略名称。模型中其类型为ResourceIdMaxLen1600最大长度 1600web-app-cpu-lt-25--service-namespace提供该资源的 AWS 服务命名空间若资源由你自己的应用或服务提供使用custom-resourceecs--resource-id可伸缩目标的资源标识符由资源类型 唯一标识两部分组成service/default/web-app--scalable-dimension可伸缩维度由服务命名空间:资源类型:伸缩属性三段式组成ecs:service:DesiredCountResource ID 的格式因服务而异ResourceId的官方文档给出了各服务的标准格式这是实际使用中最容易出错的地方。以下为模型文档中列举的典型取值服务资源类型唯一标识示例ECS 服务service集群名/服务名service/my-cluster/my-serviceSpot Fleetspot-fleet-requestSpot Fleet 请求 IDspot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLEEMR 集群instancegroup集群 ID/实例组 IDinstancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0AppStream 2.0 fleetfleetfleet 名称fleet/sample-fleetDynamoDB 表table表名table/my-tableDynamoDB 全局二级索引index表名/索引名table/my-table/index/my-table-indexAurora DB 集群cluster集群名cluster:my-db-clusterSageMaker 端点变体variant资源 IDendpoint/my-end-point/variant/KMeansClusteringLambda 预置并发function函数名:版本或别名非$LATESTfunction:my-function:prod、function:my-function:1Amazon Keyspaces 表table表名keyspace/mykeyspace/table/mytableAmazon ElastiCache 复制组replication-group复制组名replication-group/myclusterNeptune 集群cluster集群名cluster:myclusterWorkSpaces 池workspacespool池 IDworkspacespool/wspool-123456另有两类特殊形式Comprehend / MSK 等服务的资源直接以 ARN 作为ResourceId例如arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-...自定义资源custom resource不带资源类型前缀需使用 CloudFormation 模板栈中访问该资源的OutputValue通常是你 API Gateway 端点的路径。Scalable Dimension 的常用取值ScalableDimension的三段式字符串在模型文档中同样有完整清单常用的有ecs:service:DesiredCount—— ECS 服务的任务数本文示例所用dynamodb:table:ReadCapacityUnits/dynamodb:table:WriteCapacityUnits—— DynamoDB 表的预置读写容量dynamodb:index:ReadCapacityUnits/dynamodb:index:WriteCapacityUnits—— DynamoDB 全局二级索引的预置读写容量ec2:spot-fleet-request:TargetCapacity—— Spot Fleet 目标容量elasticmapreduce:instancegroup:InstanceCount—— EMR 实例组实例数appstream:fleet:DesiredCapacity—— AppStream 2.0 fleet 容量rds:cluster:ReadReplicaCount—— Aurora DB 集群中 Aurora 副本数lambda:function:ProvisionedConcurrency—— Lambda 函数预置并发cassandra:table:ReadCapacityUnits/cassandra:table:WriteCapacityUnits—— Amazon Keyspaces 表预置容量sagemaker:variant:DesiredInstanceCount—— SageMaker 端点变体的 EC2 实例数custom-resource:ResourceType:Property—— 自定义资源的可伸缩维度删除的实际效果告警动作被删CloudWatch 告警不删服务模型中对DeleteScalingPolicy的官方说明包含一条关键语义直接关系到删除后的清理工作Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action.也就是说删除一条Step Scaling 策略时底层与 CloudWatch 告警绑定的告警动作alarm action会被移除但 CloudWatch 告警本身不会被删除——即使它已不再有任何关联动作。因此如果你的告警是自行创建的而非由put-scaling-policy代你创建删除策略后告警会残留但不再触发扩缩容若希望告警彻底消失需要另行到 CloudWatch 侧处理。这一点在做容量治理和清理废弃策略时要特别注意。验证删除结果describe-scaling-policies删除是无返回体的操作标准做法是用describe-scaling-policies复核策略列表。仓库中 describe-scaling-policies.rst 给出了同一web-app服务下查询策略的完整示例与返回结构aws application-autoscaling describe-scaling-policies --service-namespace ecs返回的 JSON 中每个策略包含PolicyName、ScalableDimension、ResourceId、CreationTime、策略配置如StepScalingPolicyConfiguration含Cooldown、StepAdjustments、AdjustmentType、PolicyARN、PolicyType如StepScaling、关联的Alarms以及ServiceNamespace。以该示例输出为例web-app服务上此前存在两条 StepScaling 策略web-app-cpu-gt-75CPU 超过 75% 时按PercentChangeInCapacity增加 200%Cooldown 60 秒web-app-cpu-lt-25CPU 低于 25% 时缩减 50%Cooldown 1 秒即本文删除命令的目标策略。执行删除命令后重新运行describe-scaling-policiesScalingPolicies数组中应不再出现web-app-cpu-lt-25即确认删除成功。可能的错误类型根据 service-2.json 中DeleteScalingPolicy操作声明的errors列表该操作可能抛出以下四类异常异常含义与处理建议ValidationException请求参数校验失败。检查四个必填参数是否齐全、取值格式是否符合各服务规范ObjectNotFoundException指定对象不存在。模型文档说明任何依赖可伸缩目标存在的操作中若给定服务命名空间 资源 ID 可伸缩维度的目标不存在即抛出删除/注销类操作找不到资源时同样抛出此异常。常见于策略名拼写错误或策略已被删除ConcurrentUpdateException并发更新冲突例如对已有待处理更新的应用发起再次更新。等待前一次更新完成可通过describe-scaling-activities观察后重试InternalServiceException服务端内部错误稍后重试排查ObjectNotFoundException时的一个技巧先用describe-scaling-policies --service-namespace ecs确认策略真实存在及其ResourceId、ScalableDimension的精确写法再原样复制用于删除命令避免四元组中任何一项与注册时不一致。与相关命令的协同完整的策略生命周期delete-scaling-policy并非孤立操作仓库的 application-autoscaling 示例目录 覆盖了该服务的完整命令族理解协同关系有助于把删除放在正确的流程位置注册可伸缩目标——register-scalable-target将 ECS 服务纳入 Application Auto Scaling 管理创建策略—— put-scaling-policy.rst 演示了如何创建目标追踪Target Tracking策略支持预定义指标、自定义指标与仅扩容DisableScaleIn三种配置且支持file://config.json方式从本地 JSON 文件传入策略配置查询策略——describe-scaling-policies查看当前策略及其关联告警删除策略—— 即本文的delete-scaling-policy注销目标—— deregister-scalable-target.rst 演示注销可伸缩目标。对于自定义资源其 Resource ID 通常存放于文件中可通过file://语法传入例如aws application-autoscaling deregister-scalable-target \ --service-namespace custom-resource \ --scalable-dimension custom-resource:ResourceType:Property \ --resource-id file://~/custom-resource-id.txt其中custom-resource-id.txt的内容为标识该自定义资源的 API Gateway 端点路径示例https://example.execute-api.us-west-2.amazonaws.com/prod/scalableTargetDimensions/1-23456789。一般而言先删除目标上的所有扩缩容策略delete-scaling-policy再注销可伸缩目标deregister-scalable-target是比较稳妥的清理顺序。适用前提与限制本文基于当前仓库中 API 版本2016-02-06的 Application Auto Scaling 服务模型见 service-2.json命令参数与该版本一致执行删除命令前需确保 AWS 凭证aws configure或环境变量具有application-autoscaling:DeleteScalingPolicy权限且凭证所在账户与策略 ARN 所属账户一致示例中web-app-cpu-lt-25策略是 Step Scaling 类型删除策略只删告警动作、不删告警的语义主要针对 Step Scaling 策略Target Tracking 策略删除后的告警行为以服务实际行为为准四个必填参数任一不匹配尤其是ResourceId与ScalableDimension的组合都会导致ObjectNotFoundException删除前务必先通过describe-scaling-policies核对精确值。小结delete-scaling-policy是 Application Auto Scaling 策略生命周期管理中的收尾操作。掌握它的要点在于用服务命名空间 资源 ID 可伸缩维度 策略名四元组精确定位策略、理解各服务 Resource ID 与 Scalable Dimension 的格式规范、牢记 Step Scaling 策略删除后 CloudWatch 告警残留的特性并在删除后用describe-scaling-policies完成闭环验证。仓库中 examples/application-autoscaling 目录下的其余示例put-scaling-policy、register-scalable-target、describe-scaling-activities等可作为扩展阅读帮助你覆盖从注册到注销的完整运维流程。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价