资讯动态

aws-cli 中 apigatewayv2 get-tags 命令详解:查询 API Gateway 资源标签的完整实践

发布时间:2026/9/14 18:43:49 来源:尧图企业网站定制
aws-cli 中 apigatewayv2 get-tags 命令详解查询 API Gateway 资源标签的完整实践【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本篇技术文章围绕 AWS CLI 官方示例文档 get-tags.rst 展开讲解aws apigatewayv2 get-tags命令如何查询 Amazon API Gateway HTTP APIAPI Gateway v2指定资源的标签集合。读完本文你将掌握该命令的完整用法与输出结构、它在服务模型中的请求/响应定义、常见错误的含义以及它与tag-resource、untag-resource共同构成的标签管理闭环并能理解 CLI 帮助文档中“Examples”一节的生成机制。命令作用与适用场景API Gateway v2 对应 HTTP API 与 WebSocket API与 v1REST API共用一套资源标签体系。get-tags是其中的“查询”操作给定一个资源的 ARN返回该资源当前关联的全部标签key-value 映射。典型场景包括成本/账务分摊按owner、environment等标签核对资源归属合规审计确认生产 API 是否带有环境标识标签变更前检查在执行tag-resource/untag-resource前先确认现状。从服务模型看get-tags属于只读操作不修改任何资源它与tag-resource打标签、untag-resource删标签共享同一个 HTTP 端点/v2/tags/{resource-arn}仅 HTTP 方法不同详见下文“HTTP 映射”一节。官方示例查询一个 API 的全部标签原文档给出的核心示例如下该示例位于 get-tags.rstTo retrieve a list of tags for a resource列出某个 API 的全部标签aws apigatewayv2 get-tags \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4命令输出{ Tags: { owner: dev-team, environment: prod } }对示例的逐项说明--resource-arn唯一且必填的参数指定要查询标签的资源 ARN。示例中的arn:aws:apigateway:us-west-2::/apis/a1b2c3d4是一个占位形式a1b2c3d4为 API ID实际使用时替换为真实 API 的 ARN例如arn:aws:apigateway:us-west-2:::apis/{ApiId}。标签体系还可用于阶段、路由、域名等资源ARN 中的路径部分/apis/...、/stages/...等决定资源类型。输出的Tags是一个 JSON 对象键值对而非数组示例中该 API 带有ownerdev-team和environmentprod两个标签。若资源没有配置任何标签响应中仍会返回Tags字段其值为空对象{}。原文档同时提醒使用示例前需已安装并配置好 AWS CLI凭据、区域等并且示例采用 Unix 风格引号规则在其他终端中需按所在 shell 调整。原文档末尾的延伸阅读指向Amazon API Gateway Developer Guide中的 “Tagging your API Gateway resources” 章节API Gateway 官方开发者指南中的标签章节此处不重复外链。服务模型中的定义参数、输出与取值约束该命令的行为由仓库内内嵌的 API 模型文件 service-2.json 决定服务版本2018-11-29服务 uid 为apigatewayv2-2018-11-29。其中GetTags操作的定义要点如下输入形状GetTagsRequest只有一个成员ResourceArn且列入required必填它被标注为location: uri、locationName: resource-arn即该参数会被直接拼接进请求 URI 的路径段而不是放在请求体里。模型文档描述为 “The resource ARN for the tag.”输出形状GetTagsResponse只有一个成员TagslocationName 为tags形状Tags被定义为map键key字符串值value形状StringWithLengthBetween1And1600即标签值长度限制在 11600 字符之间API Gateway 标签体系的标准约束。模型文档将GetTags描述为 “Gets a collection of Tag resources.”Tags形状的描述为 “Represents a collection of tags associated with the resource.”这些定义解释了输出为什么是对象而不是列表标签在 API 层面就是一个字符串键到字符串值的映射CLI 按模型把 map 原样序列化为 JSON 对象。HTTP 映射、签名方式与错误模型从同一个模型文件可以确认GetTags的 HTTP 语义方法与路径GET /v2/tags/{resource-arn}成功响应码200协议rest-json签名版本v4SigV4端点前缀为apigateway对比同端点的两个写操作TagResourcePOST /v2/tags/{resource-arn}成功码201响应体为空TagResourceResponse无成员UntagResourceDELETE /v2/tags/{resource-arn}成功码204无响应体。GetTags声明了 4 个可能的错误形状排障时可按此对照错误形状模型中的描述典型触发原因NotFoundExceptionThe resource specified in the request was not found.--resource-arn拼写错误、API 已删除、或在错误的区域/账户中查询BadRequestExceptionOne of the parameters in the request is invalid.ARN 格式非法等参数问题TooManyRequestsExceptionThe client is sending more than the allowed number of requests per unit of time.触发限流应降低请求频率ConflictExceptionThe resource already exists.在标签接口中较少见属模型通用错误声明另外从 paginators-1.json 可以确认GetTags没有注册分页器——标签集合一次返回完整 map无需也不支持--starting-token之类的分页参数。示例文件如何进入 CLI 帮助文档addexamples 定制机制一个容易忽略的问题是awscli/examples/apigatewayv2/get-tags.rst这类示例文件是如何出现在aws apigatewayv2 get-tags help输出里的答案在 addexamples.py。该定制模块的 docstring 明确了约定见该文件第 1328 行需要把add_examples函数注册到doc-examples.*.*事件上示例文件以 ReST 片段形式存放于examples/service_name/目录命名为op_name.rst例如examples/ec2/ec2-create-key-pair.rst的命名规则本仓库中该文件即为examples/apigatewayv2/get-tags.rst与GetTags操作名转小写短横线一一对应。add_examples函数的处理逻辑该文件第 3663 行大致是以help_command.event_class拼出示例文件路径examples目录 apigatewayv2/get-tags.rst若文件存在则在帮助文档中先写一个 “Examples” 二级标题并附一段说明性 note提醒示例需已安装配置 AWS CLI、以及 Unix 风格引号规则需按终端调整逐行读入示例文件的 ReST 内容并写入帮助输出。因此运行aws apigatewayv2 get-tags help时看到的 “Examples” 一节内容正是 get-tags.rst 的原文这也意味着示例文档与 CLI 帮助是同一来源二者不会漂移。标签管理闭环tag-resource 与 untag-resourceget-tags的价值在于“核对现状”而修改标签由同一目录下的另外两个示例文档覆盖三者在同一条/v2/tags/{resource-arn}端点上分工明确。打标签tag-resource.rstaws apigatewayv2 tag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tags DepartmentAccounting该命令无输出对应模型中 201 空响应体。--tags使用 CLI 的 shorthand 语法KeyValue可一次传入多个键值对。模型中TagResourceRequest的Tags成员描述为 “The collection of tags. Each tag element is associated with a given resource.”删标签untag-resource.rstaws apigatewayv2 untag-resource \ --resource-arn arn:aws:apigateway:us-west-2::/apis/a1b2c3d4 \ --tag-keys Project Owner同样无输出对应 204。--tag-keys按“键名列表”删除而非删除某个值。一个典型的运维顺序是get-tags查看现状 →tag-resource增补标签 → 再次get-tags验证 → 需要清理时用untag-resource指定键名移除。注意tag-resource对已存在的键是覆盖式写入而untag-resource只接受键名。使用注意事项与排障清单结合示例文档与模型定义实际使用时建议关注以下几点ARN 必须真实且带正确区域示例中的arn:aws:apigateway:us-west-2::/apis/a1b2c3d4仅演示格式ResourceArn位于 URI 路径中拼写错误会直接得到NotFoundException。凭据与区域前提与所有 AWS CLI 命令一样执行前需完成凭据与默认区域配置若 API 位于其他区域需通过--region显式指定。输出是 map脚本化处理时用--query Tags --output json提取标签对象或--output table做可视化无需分页逻辑。限流批量巡检大量 API 的标签时若触发TooManyRequestsException应引入重试与退避。文档定位示例 ReST 文件服务于 CLI 帮助文档经doc-examples.*.*事件注入修改本地仓库中的示例文件不会影响已安装的 CLI需通过发布流程更新。小结aws apigatewayv2 get-tags是一个参数极简仅必填--resource-arn、语义明确的只读命令它通过GET /v2/tags/{resource-arn}返回指定 API Gateway v2 资源的完整标签 map值长度上限 1600 字符。仓库内可从 get-tags.rst 获取官方示例与输出样例从 service-2.json 核对请求/响应形状与错误模型从 addexamples.py 理解示例如何被注入帮助文档并配合 tag-resource.rst 与 untag-resource.rst 完成标签的增删查全生命周期管理。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价