ARTICLE DETAIL

资讯详情

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

AWS CLI 实战:使用 update-usage-plan 命令管理 API Gateway Usage Plan 配额与限流

AWS CLI 实战:使用 update-usage-plan 命令管理 API Gateway Usage Plan 配额与限流 AWS CLI 实战使用 update-usage-plan 命令管理 API Gateway Usage Plan 配额与限流【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文聚焦 AWS CLI 的aws apigateway update-usage-plan命令讲解如何通过 PATCH 语义动态调整 API Gateway Usage Plan 中的配额quota周期、配额上限、限流速率rate limit与突发上限burst limit。文中所有示例均源自当前仓库 awscli/examples/apigateway/update-usage-plan.rst并结合作者定义的源码模型展开底层原理说明。读完本文你将能够熟练使用--patch-operations参数在线修改用量计划、理解op/path/value三要素的 JSON Pointer 寻址规则并能用get-usage-plan验证修改结果。一、Usage Plan 与 update-usage-plan 命令概述在 Amazon API Gateway 中Usage Plan用量计划用于为 API 消费者设置可选的请求速率throttle与配额quota限制其核心结构在服务模型 service-2.json 的UsagePlanshape 中定义主要包含字段含义idUsage Plan 的唯一标识name用量计划名称description用量计划描述apiStages关联的 API 阶段stage列表throttle目标请求速率限制ThrottleSettingsquota每单位时间允许的最大请求数QuotaSettingsproductCode关联的 AWS Marketplace 产品标识tags资源标签集合UpdateUsagePlan操作通过 HTTPPATCH /usageplans/{usageplanId}实现见 service-2.json 中该操作的http定义它不要求你重新提交整个计划对象而是只提交一组增量补丁操作非常适合在运行时精细化调整某个字段。二、核心参数--patch-operations 的 PATCH 语义update-usage-plan命令有两个入参--usage-plan-id必填待更新的用量计划 ID映射到 URI 中的usageplanId--patch-operations一组补丁操作按列表顺序依次应用。每个补丁操作对应模型中的PatchOperationshape包含四个字段字段说明op操作类型枚举值为add、remove、replace、move、copy、test并非所有操作对每个资源都受支持具体取决于操作上下文path操作目标使用 JSON Pointer 语法定位资源内部位置例如/quota/period路径中的/字符须转义为~1value新目标值适用于add或replace操作当值是 JSON 对象时在 Linux shell 中建议用单引号包裹整个 JSON如{a: ...}fromcopy操作的源位置JSON Pointer例如将 canary 部署 ID 复制到部署 ID 时使用from: /canarySettings/deploymentId, path: /deploymentId需要注意的是value字段在模型中被定义为String类型但 CLI 会按 JSON 语法解析你传入的值因此数字可以直接书写如value500会被解析为整数无需加引号。三、官方示例修改配额与限流四类场景以下命令均来自 update-usage-plan.rst可直接复制运行将a1b2c3替换为你自己的计划 ID。3.1 修改配额周期quota period要修改 Usage Plan 中定义的配额周期aws apigateway update-usage-plan --usage-plan-id a1b2c3 \ --patch-operations opreplace,path/quota/period,valueMONTH/quota/period的合法值由QuotaPeriodType枚举约束仅支持DAY、WEEK、MONTH三种即配额按天、按周或按月统计。3.2 修改配额上限quota limit要修改 Usage Plan 中定义的配额上限aws apigateway update-usage-plan --usage-plan-id a1b2c3 \ --patch-operations opreplace,path/quota/limit,value500/quota/limit对应QuotaSettings.limit表示给定时间周期内允许的最大请求数。配额对象中还包含offset字段表示初始周期内从限额中减去的请求数可用于错开各客户的统计起点。3.3 修改限流速率throttle rate limit要修改 Usage Plan 中定义的限流速率aws apigateway update-usage-plan --usage-plan-id a1b2c3 \ --patch-operations opreplace,path/throttle/rateLimit,value10/throttle/rateLimit对应ThrottleSettings.rateLimit是模型中的Double类型表示每秒允许的目标请求速率。例如设为10即每秒最多 10 个请求。3.4 修改突发上限throttle burst limit要修改 Usage Plan 中定义的突发上限aws apigateway update-usage-plan --usage-plan-id a1b2c3 \ --patch-operations opreplace,path/throttle/burstLimit,value20/throttle/burstLimit对应ThrottleSettings.burstLimit表示在短时间窗口内允许超过目标速率的突发请求数通常与rateLimit配合使用让突发流量在令牌桶机制下被平滑处理。四、多操作批量更新与完整工作流由于--patch-operations接受列表且按序应用你可以在一次调用中同时修改多个字段例如将配额周期改为按月、限额改为 1000、速率改为 5、突发改为 10aws apigateway update-usage-plan \ --usage-plan-id a1b2c3 \ --patch-operations \ opreplace,path/quota/period,valueMONTH \ opreplace,path/quota/limit,value1000 \ opreplace,path/throttle/rateLimit,value5 \ opreplace,path/throttle/burstLimit,value10一个完整的查询—修改—验证工作流如下查看指定计划当前配置aws apigateway get-usage-plan --usage-plan-id a1b2c3示例见 get-usage-plan.rst列出所有计划确认 IDaws apigateway get-usage-plans示例见 get-usage-plans.rst执行上述update-usage-plan修改再次执行get-usage-plan验证quota与throttle是否已更新。此外整个用量计划生命周期还涉及 create-usage-plan.rst创建时直接指定--throttle burstLimit10,rateLimit5 --quota limit500,offset0,periodMONTH与 delete-usage-plan.rst按 ID 删除可见创建与更新阶段使用了两种不同的参数风格创建时用结构化参数更新时统一走 PATCH 补丁语法。五、底层实现与错误处理从源码模型看UpdateUsagePlan操作声明了以下错误类型见 service-2.json 中UpdateUsagePlan.errors错误触发场景BadRequestException请求参数非法如path不存在或value类型不匹配ConflictException更新与当前资源状态冲突LimitExceededException超出账户级资源限制NotFoundExceptionusage-plan-id对应的用量计划不存在UnauthorizedException缺少调用权限TooManyRequestsException请求过于频繁触发限流另外值得注意的是模型文档中的一条重要提醒由于 API Gateway 的限流与配额只是目标值某些情况下客户端仍可能超过你设置的限制因此不应单纯依赖 Usage Plan 控制成本建议配合 AWS Budgets 监控成本、使用 WAF 管理 API 请求。六、小结aws apigateway update-usage-plan通过--patch-operations提供了细粒度的在线修改能力覆盖配额周期DAY/WEEK/MONTH、配额上限、限流速率与突发上限四类最常用的调整场景。结合 service-2.json 中PatchOperation、QuotaSettings、ThrottleSettings等模型定义你可以准确推断每个path的合法取值并通过get-usage-plan快速验证修改结果实现安全、可审计的用量计划运维。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表