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

CloudFormation使用ToJsonString创建CloudWatch仪表盘遇权限不足错误

解决CloudFormation部署时的InsufficientCapabilitiesException错误

问题原因

你的模板中使用了AWS::LanguageExtensions Transform,该Transform属于CloudFormation宏扩展功能,部署时必须显式声明CAPABILITY_AUTO_EXPAND权限,否则会触发400错误。

解决方案

根据你使用的部署方式,添加对应的权限声明:

1. AWS CLI部署

在创建或更新栈的命令中加入--capabilities CAPABILITY_AUTO_EXPAND参数:

aws cloudformation create-stack \
  --stack-name your-stack-name \
  --template-body file://your-template.json \
  --parameters ParameterKey=Environment,ParameterValue=test \
  --capabilities CAPABILITY_AUTO_EXPAND

2. AWS控制台部署

提交栈创建/更新请求时,在"Capabilities"步骤中,找到并勾选对应CAPABILITY_AUTO_EXPAND的确认选项(控制台会针对宏扩展场景弹出明确的权限确认提示)。

3. Boto3 SDK部署

调用create_stack或update_stack方法时,指定Capabilities=['CAPABILITY_AUTO_EXPAND']参数:

import boto3

cfn_client = boto3.client('cloudformation')
response = cfn_client.create_stack(
    StackName='your-stack-name',
    TemplateBody=open('your-template.json').read(),
    Parameters=[
        {
            'ParameterKey': 'Environment',
            'ParameterValue': 'test'
        }
    ],
    Capabilities=['CAPABILITY_AUTO_EXPAND']
)

模板可行性确认

你的模板逻辑是可行的:通过Fn::ToJsonString生成CloudWatch仪表盘的JSON配置,结合Ref和Sub实现环境参数化,解决权限问题后即可正常部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:20:40