aws-cli 实战使用aws ce get-tags检索成本分配标签键与值【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文围绕 aws-cli 仓库中 get-tags.rst 这一官方示例文档系统讲解 AWS Cost Explorer 服务中aws ce get-tags命令的完整用法如何在指定时间周期内检索成本分配标签cost allocation tag的可用键与值、如何通过搜索串与标签键精确过滤、如何解读返回结果。读完本文你将掌握该命令的全部核心参数、输出字段语义、分页与排序等进阶用法并能从 service-2.json 的服务模型中理解其底层请求/响应结构与约束。一、命令背景为什么需要检索成本分配标签在 AWS 成本管理AWS Cost Management体系中成本分配标签是组织账单、按项目或部门归集费用的核心手段。当一个账号下存在大量标签时团队经常需要回答这类问题当前账单周期内哪些标签键Tag Key实际存在某个标签键下用户实际用了哪些标签值Tag Value能否按模糊关键字筛选出关心的那部分标签aws ce get-tags正是为此设计它在服务模型中的定位是 Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.见 service-2.json即查询指定周期内可用的标签键与标签值并支持对标签值做任意字符串搜索。二、命令格式与参数详解get-tags在服务模型中对应POST /请求见 service-2.jsonCLI 层面的调用格式为aws ce get-tags [options]2.1 参数总览来自 GetTagsRequest根据 GetTagsRequest 定义请求参数如下参数类型必填说明--time-periodDateIntervalStart/End是检索维度值的时间范围。开始日期包含结束日期排他--search-stringstring0~1024 字符否要对标签值进行匹配的任意搜索串可视为“包含匹配”过滤--tag-keystring0~1024 字符否指定标签键返回该键下的标签值--filterExpression否复合条件过滤可基于维度/标签组合条件--sort-bySortDefinitions否按成本/用量指标排序如BlendedCost、UnblendedCost等--max-resultsinteger否仅在与--sort-by联用时生效上限 1000缺省返回 1000 条--next-page-tokenstring否分页令牌用于获取下一页结果--billing-view-arnstring否指定 Billing View 的 ARN通过 ListBillingViews 获取其中TimePeriod的起止日期语义非常关键Start是包含的End是排他的。例如Start2017-01-01, End2017-05-18表示检索从 2017-01-01 起、至 2017-05-17含为止的数据见 DateInterval 定义。2.2 参数类型约束来自服务模型从服务模型可以看到两个重要约束SearchString与TagKey均为 string 类型max: 1024, min: 0见 SearchString 与 TagKey即最长不超过 1024 字符MaxResults对GetTags有 1000 条的上限配额若未指定SortBy则该字段不生效。三、官方示例检索 Project 键下包含 secretProject 的标签值原示例文档 get-tags.rst 给出了最典型的使用场景检索键为 Project、且值中包含 secretProject 的所有成本分配标签。3.1 完整命令aws ce get-tags \ --search-string secretProject \ --time-period Start2017-01-01,End2017-05-18 \ --tag-key Project各参数在这一场景中的含义--tag-key Project锁定标签键为Project此时返回的是该键下的标签值--search-string secretProject对标签值做包含匹配只返回值中包含子串secretProject的条目--time-period Start2017-01-01,End2017-05-18限定统计窗口为 2017-01-01 至 2017-05-17含。3.2 官方返回结果{ ReturnSize: 2, Tags: [ secretProject1, secretProject2 ], TotalSize: 2 }返回结果三个字段的含义见 GetTagsResponse 定义字段类型含义TagsTagList字符串列表与请求匹配的标签键或标签值列表ReturnSizeinteger本次请求实际返回的结果条数TotalSizeinteger符合条件的结果总条数在本例中Project键下恰好有两个值secretProject1、secretProject2包含secretProject因此ReturnSize与TotalSize均为 2。当结果被分页截断时ReturnSize会小于TotalSize此时需要借助分页令牌继续拉取。四、进阶用法与实战扩展4.1 不指定标签键枚举全部标签键省略--tag-key时get-tags返回的是账单周期内出现的所有标签键。这一用法非常适合先盘点“账上到底有哪些成本分配标签”再据此决定后续按哪个键聚合aws ce get-tags \ --time-period Start2024-01-01,End2024-02-014.2 排序按成本指标排列标签通过--sort-by可以让结果按成本或用量指标排序服务模型支持以下指标见 GetTagsRequest 文档BlendedCost混合成本UnblendedCost未混合成本AmortizedCost摊销成本NetAmortizedCost净摊销成本NetUnblendedCost净未混合成本UsageQuantity用量NormalizedUsageAmount标准化用量排序方向由SortOrder指定取值为ASCENDING或DESCENDING。CLI 中的典型写法aws ce get-tags \ --time-period Start2024-01-01,End2024-02-01 \ --sort-by KeyBlendedCost,SortOrderDESCENDING \ --max-results 20需要特别注意的是源码文档明确说明一旦使用SortByNextPageToken与SearchString将不再被支持。因此排序与字符串搜索是互斥的两种查询路径应根据实际需求二选一。4.3 分页拉取全部结果当TotalSize大于单页返回量时响应中会带有NextPageToken将其作为下一轮请求的--next-page-token即可持续翻页aws ce get-tags \ --time-period Start2024-01-01,End2024-02-01 \ --next-page-token ABCEXAMPLE1234.4 使用 Billing View 限定数据范围如果账号配置了 Billing View账单视图可先通过 ListBillingViews 获取视图 ARN再用--billing-view-arn限定查询范围使结果只反映该视图对应的账单口径。五、与get-dimension-values的边界对照仓库中 get-dimension-values.rst 展示了同族的另一个命令aws ce get-dimension-values两者常被混淆其差异在于get-dimension-values按任意维度如SERVICE、AZ、INSTANCE_TYPE等检索取值返回结构为DimensionValues对象列表每个对象含Value与Attributesget-tags专门面向标签维度返回结构为扁平字符串列表Tags。例如 get-dimension-values 文档中按SERVICE维度搜索 Elastic会返回Amazon ElastiCache、EC2 - Other、Amazon Elastic Compute Cloud - Compute等服务名称列表而get-tags只会返回标签键/值本身。若目标是标签筛选与成本归集应优先使用get-tags。六、从源码理解其底层实现在 aws-cli 仓库中该命令的参数定义与序列化完全由 service-2.json 驱动CLI 通过服务模型自动生成命令与参数解析器因此--search-string、--tag-key等参数会按下划线命名自动映射为SearchString、TagKey等 API 字段并通过POST /发送到 Cost Explorer 端点。这一机制意味着所有参数类型、长度限制如 1024 字符、必填项TimePeriod均由模型声明CLI 层无需额外硬编码服务端可能返回的错误如LimitExceededException、DataUnavailableException、InvalidNextTokenException、RequestChangedException、ResourceNotFoundException等见 GetTags 错误列表也会由 CLI 统一处理并给出可读错误信息。从仓库结构看ce服务数据位于 awscli/botocore/data/ce/2017-10-25/其中service-2.json定义 API 模型paginators-1.json定义分页行为endpoint-rule-set-1.json定义端点解析规则共同构成该命令在 CLI 中的完整行为契约。七、使用注意事项时间周期必须提供TimePeriod为必填参数且Start必须不晚于当前日期否则会触发校验错误理解“包含/排他”边界End日期本身的数据不会被包含规划月报如查 2024-01 整月时应写Start2024-01-01,End2024-02-01而非 01-31搜索串是包含匹配SearchString在服务模型中是 0~1024 字符的任意串语义为“值中包含该串”即命中注意不要误以为是精确匹配或正则匹配排序与搜索互斥SortBy模式下不支持SearchString与NextPageToken需要权衡使用关注配额MaxResults对GetTags上限为 1000超出部分依赖翻页获取。结语aws ce get-tags是成本管理与账单归集中高频使用的查询命令。通过本文对官方示例 get-tags.rst 的完整展开结合 service-2.json 的模型级证据你可以准确掌握其参数语义、输出结构、排序分页与边界约束直接将其落地到标签盘点、账单归集与成本分析的实际工作中。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考