如何解决CloudFormation模板成本估算中的Resource Type映射错误
解决CloudFormation成本估算不支持Secrets Manager资源的问题
问题原因
aws cloudformation estimate-template-cost命令的资源成本映射中未包含AWS::SecretsManager::Secret和AWS::SecretsManager::SecretTargetAttachment这类资源,导致验证失败。
可行解决方案
方案1:临时移除Secrets Manager资源估算RDS成本,再手动计算Secrets Manager费用
- 修改模板,注释或删除
MyRDSSecret和SecretRDSInstanceAttachment资源,仅保留RDS实例部分。 - 执行原命令估算RDS成本:
aws cloudformation estimate-template-cost \ --template-body file://template.yaml \ --query Url \ --output text
- 手动计算Secrets Manager费用:
- 单个秘密存储费用:每月$0.40(按当前AWS公开定价)
- API调用费用:每10000次调用$0.05,包含秘密创建、读取、轮换等操作
- 若使用自定义轮换Lambda函数,需额外计算Lambda执行费用(默认轮换函数由AWS免费提供)
方案2:拆分估算,结合AWS Pricing CLI查询Secrets Manager定价
- 按方案1的方式先估算RDS成本
- 使用
aws pricing命令查询Secrets Manager定价(示例查询us-east-1区域的存储费用):
aws pricing get-products \ --service-code secretsmanager \ --filters Type=TERM_MATCH,Field=location,Value=US East (N. Virginia) \ --filters Type=TERM_MATCH,Field=productFamily,Value=Secret Storage \ --query 'PriceList[0]' | jq -r '.product.attributes'
- 将RDS估算费用与Secrets Manager计算费用相加得到总成本
方案3:使用AWS Pricing Calculator手动配置所有资源
直接在AWS Pricing Calculator中添加RDS实例和Secrets Manager资源,输入对应配置参数后获取总成本,该方式覆盖所有资源类型,操作更直观。
内容的提问来源于stack exchange,提问作者Wai Yan Hein
相关产品推荐
相关产品推荐

