You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署CloudFormation栈时Capabilities参数报错求助

解决Terraform部署CloudFormation栈时capabilities参数的错误

你遇到的错误根源是:Terraform将CAPABILITY_IAM和CAPABILITY_AUTO_EXPAND解析成了资源引用,但实际上这两个是CloudFormation要求的字符串常量,必须用双引号包裹才能被正确识别。

修正后的代码如下:

resource "aws_cloudformation_stack" "member_remediation" {
  name         = "smx-sharr-member-remediation"
  capabilities = ["CAPABILITY_IAM", "CAPABILITY_AUTO_EXPAND"]

  parameters = {
    SecHubAdminAccount                    = var.parameter_SecHubAdmin
    CreateS3BucketForRedshiftAuditLogging = var.parameter_CreateS3
    LogGroupName                          = var.parameter_LogGroupName
    LoadAFSBPMemberStack                  = var.parameter_LoadAFSBPStack
    LoadCIS120MemberStack                 = var.parameter_LoadCISStack
    LoadPCI321MemberStack                 = var.parameter_LoadPCIStack
  }

  template_body = file("${path.module}/cf-templates/aws-sharr-member.yml")
}

补充说明:

  • 控制台提示的所需权限正好对应这两个字符串,CloudFormation要求当栈包含IAM资源(对应CAPABILITY_IAM)或嵌套栈(对应CAPABILITY_AUTO_EXPAND)时,必须显式声明这些capabilities。
  • Terraform的aws_cloudformation_stack资源要求这些能力值以字符串形式传入,不能裸写标识符,否则会被误判为资源引用。

内容的提问来源于stack exchange,提问作者Justin Lawhorne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:20:29