
AWS CLI aws appconfig untag-resource删除 AppConfig 资源标签的用法与请求模型详解【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文围绕 AWS CLI 仓库中untag-resource官方示例文档讲解如何用aws appconfig untag-resource从 AWS AppConfig 资源如 application上移除指定标签并结合 botocore 服务模型service-2.json剖析该命令背后的 HTTP 请求形态、参数约束、取值范围与错误类型帮助你不仅能正确执行命令还能理解“为什么该命令不产生任何输出”这一行为细节。1. 命令用法从一个官方示例开始仓库中的示例文档 untag-resource.rst 给出了一个“从 application 上移除 group1 标签”的完整操作aws appconfig untag-resource \ --resource-arn arn:aws:appconfig:us-east-1:111122223333:application/339ohji \ --tag-keys [group1]文档同时明确指出该命令不产生任何输出This command produces no output。这与多数 AWS CLI 命令打印 JSON 响应体的习惯不同理解其原因需要看服务模型详见第 3 节。该示例对应的参数含义如下参数示例值说明--resource-arnarn:aws:appconfig:us-east-1:111122223333:application/339ohji要移除标签的 AppConfig 资源的 ARN必填--tag-keys[group1]要删除的标签键列表JSON 数组字符串必填支持一次传入多个键示例中 ARN 的各段结构是arn:aws:appconfig:区域:12位账号ID:application/应用ID其中339ohji正是同目录下 create-application.rst 示例创建 application 后返回的Id字段值——这组示例是围绕同一个 application 资源组织的。2. 参数约束长度、数量与格式从服务定义文件 service-2.json 可以确认UntagResource请求的参数模型ResourceArn类型为Arn是一个字符串长度约束为最小 20、最大 2048 个字符且必须符合 ARN 正则模式arn:(aws[a-zA-Z-]*)?:[a-z]:...即支持标准 AWS 分区与 GovCloud/ISO 分区。在请求中它被放置在 URI 路径位置location: urilocationName: ResourceArn。TagKeys类型为TagKeyList即字符串列表列表上限为50 个键max: 50。列表中每个元素使用TagKey形状定义字符串最小 1、最大 128 个字符。该参数被放置在 querystring 位置location: querystringlocationName: tagKeys。两个成员均在required列表中缺省任一参数都会导致请求不合法。结合同模型中TagResource请求的字段文档还可以看到标签体系的通用规则标签采用键值字符串映射TagMap每个资源最多 50 个标签标签键最长 128 字符且不能以aws:开头标签值最长 256 字符合法字符集为[a-zA-Z-._:/]。虽然untag-resource只涉及键但这些命名规则决定了你能删除哪些标签——如果某个键从一开始就不符合规范它也不可能存在于资源上。3. 底层请求为什么命令“不产生输出”UntagResource操作在服务模型中的 HTTP 定义为方法: DELETE 路径: /tags/{ResourceArn} 状态码: 204也就是说CLI 会把命令翻译成一个对DELETE https://endpoint/tags/资源ARN的请求成功时服务端返回204 No Content。204 响应按定义不携带响应体因此 AWS CLI 没有任何 JSON 可以打印——这就是示例文档中 “This command produces no output” 的根本原因而不是输出被过滤。同一路径/tags/{ResourceArn}上还挂载了另外两个标签操作三者构成完整的标签生命周期操作CLI 命令HTTP 方法成功状态码TagResourceaws appconfig tag-resourcePOST204ListTagsForResourceaws appconfig list-tags-for-resourceGET200UntagResourceaws appconfig untag-resourceDELETE204由于tag-resource同样返回 204它也不产生输出而list-tags-for-resource返回 200 并携带ResourceTags结构因此是唯一能看到结果的命令。这解释了仓库示例文档中 list-tags-for-resource.rst 之所以带有 Output 段落而 tag-resource.rst 与untag-resource都没有的原因。4. 错误处理三种可能的失败情形服务模型为UntagResource声明了三种错误形状ResourceNotFoundException--resource-arn指向的资源不存在或当前凭证不可见。执行删除前可以先用aws appconfig get-application确认资源存在。BadRequestException请求参数不合法例如 ARN 格式错误、--tag-keys不是合法的 JSON 数组。InternalServerException服务端内部错误。其中 ARN 格式问题在客户端层面就有防护由于模型中Arn形状带正则patternCLI 在发起请求前即可校验参数形态。对于列表中不存在的键模型本身未声明额外语义实际行为应以服务端响应为准。5. 实战工作流打标、验证、删除将仓库中同系列的三个示例命令串联就是一条可复制的标签管理工作流# 1. 为 application 打标签无输出204 即成功 aws appconfig tag-resource \ --resource-arn arn:aws:appconfig:us-east-1:111122223333:application/339ohji \ --tags {group1 : 1} # 2. 列出该资源的标签验证打标结果 aws appconfig list-tags-for-resource \ --resource-arn arn:aws:appconfig:us-east-1:111122223333:application/339ohji # 3. 移除 group1 标签无输出204 即成功 aws appconfig untag-resource \ --resource-arn arn:aws:appconfig:us-east-1:111122223333:application/339ohji \ --tag-keys [group1]第 2 步在 list-tags-for-resource.rst 中给出了真实输出形态{ Tags: { group1: 1 } }在自动化脚本中判断untag-resource是否成功时由于没有响应体可供解析可靠的做法是检查进程退出码成功为 0或再次调用list-tags-for-resource确认标签键已不在返回列表中。6. 补充示例的生成来源与参考untag-resource的这条示例并非手写维护在 rst 文件中——同目录下的服务模型文件 examples-1.json 中以结构化形式收录了同一示例id: to-remove-a-tag-from-an-application-...其input字段ResourceArnTagKeys与 rst 文档中的命令参数一一对应。AWS CLI 的文档体系由这些 JSON 示例生成 rst 示例页因此两者的内容保持一致。示例文档末尾提示可参阅AWS AppConfig User Guide中“Step 1: Creating an AWS AppConfig application”一节了解 application 资源的创建与标签在 AppConfig 工作流中的定位本文的命令形态、参数约束与错误类型均可在当前仓库的 appconfig 服务数据目录 中查证适用前提是使用 API 版本2019-10-09的 AppConfig 端点且凭证具备对该资源的操作权限。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考