资讯详情

AWS CLI `budgets delete-budget` 实战指南:用 AWS CLI 删除成本与用量预算

📅 2026/9/15 19:00:37 | 华诺云谱 👁 阅读
AWS CLI `budgets delete-budget` 实战指南:用 AWS CLI 删除成本与用量预算
AWS CLIbudgets delete-budget实战指南用 AWS CLI 删除成本与用量预算【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读本文围绕 AWS CLIaws-cli 仓库中budgets delete-budget命令的官方示例展开讲解如何安全、正确地删除账户中的 Cost and Usage 预算。你将掌握delete-budget的完整参数含义、删除时对关联通知Notification与订阅者Subscriber的级联影响、底层 API 请求结构以及结合create-budget/describe-budget形成创建—查询—删除完整预算生命周期闭环的实战方法。命令示例删除指定预算官方示例文件 delete-budget.rst 给出了删除 Cost and Usage 预算的最直接用法aws budgets delete-budget --account-id 111122223333 --budget-name Example Budget该命令完成以下动作在账户111122223333中定位名为Example Budget的预算调用 AWS Budgets 服务的DeleteBudget操作删除该预算及其所有关联资源详见下文级联删除一节。delete-budget命令本身不返回任何输出成功时静默返回你可以通过describe-budget验证删除结果——若预算已不存在命令会报错并提示找不到该预算。参数详解account-id 与 budget-name从本仓库的 AWS Budgets API 模型文件 service-2.json 可以看到DeleteBudgetRequest结构体只有两个必填参数参数类型约束来自 API 模型说明--account-idstring恰好 12 位数字正则\d{12}见 AccountId 定义与待删除预算关联的账户 ID--budget-namestring长度 1–100 字符不允许包含:和\字符也不允许包含/action/子串见 BudgetName 定义待删除预算的名称参数要点account-id 是 12 位数字示例中的111122223333是 AWS 官方文档常用的演示账户 ID实际使用时请替换为你自己的 AWS 账户 ID可在 AWS 控制台或通过aws sts get-caller-identity查看。budget-name 区分大小写预算名称必须与创建时完全一致建议先用describe-budget确认准确的名称。名称字符限制API 模型中的正则^(?![^:\\\\]*/action/|(?i).*script.*/script.*)[^:\\\\]$表明预算名称不能包含冒号、反斜杠以及/action/子串创建与删除时都遵循同一套校验规则。底层原理DeleteBudget 请求与响应从 service-2.json 的DeleteBudget操作定义可以确认其底层机制协议JSON 1.1 协议服务端点为budgets服务API 版本为2016-10-20HTTP 方法POST /签名使用 AWS Signature Version 4sigv4进行请求签名响应结构DeleteBudgetResponse为空结构体见 service-2.json因此命令成功执行时不输出任何内容。可能返回的错误DeleteBudget操作声明了以下错误类型见 service-2.json错误含义InternalErrorException服务端内部错误InvalidParameterException参数不合法如账户 ID 位数不对、预算名称含非法字符NotFoundException指定的预算不存在AccessDeniedException当前凭证无权删除该预算ThrottlingException请求过于频繁被限流删除一个不存在的预算会返回NotFoundException这也是验证预算是否已删除的判据之一。级联删除Notifications 与 Subscribers 会一并被删除这是delete-budget最重要、也最容易忽略的行为。API 模型文档明确强调见 service-2.jsonDeleting a budget also deletes the notifications and subscribers that are associated with that budget.即删除预算会同时删除与该预算关联的所有通知Notification和订阅者Subscriber。这意味着为预算配置的阈值告警例如实际花费超过 80% 时发邮件将随预算一起消失订阅告警的邮箱地址、SNS 主题等订阅关系也会被清除该操作不可恢复——删除后如需重新告警必须重建预算、重新配置通知与订阅者。因此在生产环境中执行删除前建议先通过以下命令导出或记录预算现状# 查看预算详情含阈值、时间周期、成本类型等 aws budgets describe-budget --account-id 111122223333 --budget-name Example Budget # 查看该预算下配置的所有通知 aws budgets describe-notifications-for-budget --account-id 111122223333 --budget-name Example Budget如需了解某个通知下订阅了哪些接收者还可补充执行aws budgets describe-subscribers-for-notification \ --account-id 111122223333 \ --budget-name Example Budget \ --notification file://notification.json其中notification.json需包含NotificationType、ComparisonOperator、Threshold、ThresholdType等字段。实战闭环从创建到删除的完整预算生命周期将delete-budget放入完整流程中可以帮助你更清楚地理解它的作用位置。仓库中配套的 create-budget.rst 展示了创建预算的完整姿势第一步创建预算携带 JSON 配置文件aws budgets create-budget \ --account-id 111122223333 \ --budget file://budget.json \ --notifications-with-subscribers file://notifications-with-subscribers.json其中budget.json定义预算本体以官方示例为例{ BudgetLimit: { Amount: 100, Unit: USD }, BudgetName: Example Tag Budget, BudgetType: COST, CostFilters: { TagKeyValue: [ user:Key$value1, user:Key$value2 ] }, CostTypes: { IncludeCredit: true, IncludeDiscount: true, IncludeOtherSubscription: true, IncludeRecurring: true, IncludeRefund: true, IncludeSubscription: true, IncludeSupport: true, IncludeTax: true, IncludeUpfront: true, UseBlended: false }, TimePeriod: { Start: 1477958399, End: 3706473600 }, TimeUnit: MONTHLY }notifications-with-subscribers.json定义告警与订阅者达到阈值 80% 时向邮箱发送 ACTUAL 通知[ { Notification: { ComparisonOperator: GREATER_THAN, NotificationType: ACTUAL, Threshold: 80, ThresholdType: PERCENTAGE }, Subscribers: [ { Address: exampleexample.com, SubscriptionType: EMAIL } ] } ]第二步查询预算确认状态aws budgets describe-budget --account-id 111122223333 --budget-name Example Budget输出中包含CalculatedSpend实际/预测支出、BudgetLimit、BudgetType、TimeUnit、CostTypes、CostFilters等字段完整输出样例见 describe-budget.rst可用于在删除前确认预算的当前花费情况与配置。第三步删除预算aws budgets delete-budget --account-id 111122223333 --budget-name Example Budget第四步验证删除结果aws budgets describe-budget --account-id 111122223333 --budget-name Example Budget预算已删除时该命令会报出NotFoundException错误即确认删除成功同时也可用describe-notifications-for-budget确认关联通知已一并清理。权限要求调用delete-budget需要具备对 AWS Budgets 的删除权限。IAM 策略中需要授予budgets:DeleteBudget操作对应 API 模型中的DeleteBudget操作服务前缀为budgets。权限不足时命令会返回AccessDeniedException。建议遵循最小权限原则仅对需要管理的账户和预算范围授予该权限。使用建议与注意事项确认目标再执行删除操作不可逆且会级联删除通知与订阅者务必先describe-budgetdescribe-notifications-for-budget确认对象与影响范围替换占位参数示例中的111122223333与Example Budget均为演示值实际使用需替换为你的 12 位账户 ID 与真实预算名预算名区分大小写脚本化时注意幂等在自动化脚本中重复删除已不存在的预算会触发NotFoundException可将其作为幂等判断依据名称合法性预算名称不能包含:、\与/action/子串删除时传入的名称必须与创建时一致了解底层行为该命令基于 AWS Budgets API2016-10-20版本、JSON 1.1 协议与 SigV4 签名模型定义见 service-2.json理解这些有助于排查参数校验与权限类报错。参考资源官方示例delete-budget.rst配套示例create-budget.rst、describe-budget.rstAPI 模型定义service-2.jsonDeleteBudget操作见第 97–113 行DeleteBudgetRequest见第 1190–1207 行其余预算管理命令示例位于 awscli/examples/budgets/覆盖update-budget、delete-notification、delete-subscriber、describe-budgets等操作可组合成完整的预算管理工具链。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。