资讯详情

资讯详情

aws-cli 中移除 API Gateway v2 资源标签:untag-resource 命令详解与底层实现

aws-cli 中移除 API Gateway v2 资源标签untag-resource 命令详解与底层实现【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文围绕 AWS CLI 的apigatewayv2 untag-resource示例展开讲解如何从 Amazon API Gateway v2HTTP API / WebSocket API等已打标签的资源上批量移除指定键名的标签并结合 aws-cli 仓库内的服务模型文件说明该命令在底层实际发出的 HTTP 请求形态、参数位置约束与可预期的错误类型帮助你理解“无输出即成功”背后的工作机制。示例场景从 API 上移除 Project 和 Owner 标签aws-cli 仓库为该命令提供的官方示例位于 untag-resource.rst其核心内容非常简洁以下untag-resource示例会从指定的 API 上移除键名为Project和Owner的两个标签。aws apigatewayv2 untag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tag-keys Project Owner示例有两个要点--resource-arn指向的是资源 ARN而不是 API ID。示例中使用arn:aws:apigateway:us-west-2::/apis/a1b2c3d4这种 API 级 ARN。apigatewayv2的标签 API 采用“标签挂在资源 ARN 上”的通用模式因此除 API 外域名、VPC link 等支持标签的资源 ARN 理论上也可以作为该参数的取值具体哪些资源类型支持打标签以 Amazon API Gateway 开发者指南中的 Tagging 章节为准。--tag-keys以空格分隔传入多个键名表示一次调用移除多个标签。移除是按“键名”进行的——不需要、也无法提供标签值只要键名存在对应标签即被删除。示例明确说明该命令不产生任何输出This command produces no output。这一点不是示例作者省略了说明而是由 API 的响应码决定的见下文底层分析。参数详解两个参数且都是必填项从服务模型 service-2.json 中UntagResourceRequest输入形状的定义可以确认参数约束约 L11361 起UntagResourceRequest: { type: structure, members: { ResourceArn: { shape: __string, location: uri, locationName: resource-arn, documentation: pThe resource ARN for the tag./p }, TagKeys: { shape: __listOf__string, location: querystring, locationName: tagKeys, documentation: pThe Tag keys to delete/p } }, required: [ ResourceArn, TagKeys ] }据此可以归纳出命令行参数的完整说明CLI 参数必填类型在请求中的位置说明--resource-arn是stringURI 路径变量{resource-arn}目标资源的 ARN决定对哪个资源移除标签--tag-keys是string 列表query stringtagKeys要移除的标签键名列表多个键名以空格分隔几个实操上容易踩的点--tag-keys不能为空。模型中required同时包含ResourceArn和TagKeys因此不存在“一次调用清空所有标签”的语法要移除多个标签就在一行里列出所有键名要移除全部标签则需要先用get-tags查出现有键名再显式列出。按键删除、幂等语义由服务端定义。传入的键名在模型层面只是字符串列表服务端找不到对应标签时的具体行为以 API 实际返回为准。由于服务使用 SigV4 签名signatureVersion: v4signingName: apigateway命令执行时需要配置好具有apigateway:UntagResource权限的凭证与区域。底层请求形态一条 DELETE 请求204 无响应体service-2.json中UntagResource操作约 L2538 起定义了该命令对应的 HTTP 语义UntagResource: { name: UntagResource, http: { method: DELETE, requestUri: /v2/tags/{resource-arn}, responseCode: 204 }, ... }把这三行与 CLI 行为对应起来就能完整解释示例中“命令不产生输出”的原因请求方法为DELETE请求 URI 为/v2/tags/{resource-arn}资源 ARN 作为路径变量被 URL 编码后拼入路径tagKeys键名以查询串参数形式附带在 URL 上成功响应码为204 No Content没有 JSON 响应体因此 CLI 在标准输出上什么都不打印仅以退出码 0 表示成功。这意味着验证删除结果的正确方式是再读一次而不是看删除命令的输出。可预期的错误类型同一操作定义中列出了四种错误形状约 L2548 起在 CLI 中会表现为对应的An error occurred (错误名) when calling the UntagResource operation提示错误模型中的说明常见触发场景NotFoundExceptionThe resource specified in the request was not found.--resource-arn指向的资源不存在拼写错误、区域不对、资源已删除TooManyRequestsExceptionThe client is sending more than the allowed number of requests per unit of time.触发服务端限流BadRequestExceptionOne of the parameters in the request is invalid.参数取值非法例如 ARN 格式错误、tagKeys未提供ConflictExceptionThe resource already exists.资源状态冲突其中NotFoundException与BadRequestException是最需要关注的两类前者提示“检查 ARN 与区域”后者提示“检查参数格式”可以显著缩短排查时间。与 tag-resource、get-tags 组成的标签管理闭环aws-cli 在 awscli/examples/apigatewayv2/ 目录下还配齐了标签管理的另外两个操作示例与untag-resource组合起来构成完整的“查—加—删”流程1. 打标签tag-resource见 tag-resource.rst向同一 API 添加一个DepartmentAccounting标签aws apigatewayv2 tag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tags DepartmentAccounting对应模型中TagResourceRequest约 L11256 起--tags是一个 key-value 映射Tags形状请求体以 JSON 形式发送同样不产生输出。2. 查标签get-tags见 get-tags.rst列出该 API 的全部标签aws apigatewayv2 get-tags \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4该命令有输出返回形如{ Tags: { owner: dev-team, environment: prod } }3. 删标签untag-resource即本文主体的命令。一个典型的运维/成本归属管理流程是先用get-tags拉取当前标签键名确定要清理的键如废弃的项目名Project、不再维护的Owner再执行untag-resource --tag-keys Project Owner批量移除最后再次get-tags确认键已消失——由于untag-resource本身 204 无响应体这最后一次“回读确认”是验证删除生效的唯一可靠手段。小结aws apigatewayv2 untag-resource用于按键名批量移除 API Gateway v2 资源上的标签--resource-arn与--tag-keys两个参数均为必填底层对应DELETE /v2/tags/{resource-arn}ARN 走 URI 路径变量、键名走 query string成功返回 204 No Content因此命令无任何标准输出排查问题时优先区分NotFoundException资源不存在与BadRequestException参数非法仓库内三份文件可对照查阅示例 untag-resource.rst、参数与错误定义 service-2.json、配套示例 tag-resource.rst 与 get-tags.rst。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →