当在AWS CodePipeline中使用CloudFormation部署时,如果遇到以下错误消息:“操作执行失败,需要的能力:[CAPABILITY_AUTO_EXPAND]”,表示CloudFormation模板中使用了“Transform”指令,但未将“CAPABILITY_AUTO_EXPAND”能力设置为真。
要解决此问题,您需要将“CAPABILITY_AUTO_EXPAND”添加到CodePipeline中的CloudFormation部署操作中。
以下是一个示例的CodePipeline部署阶段的CloudFormation操作部分的代码:
{
"name": "Deploy",
"actions": [
{
"name": "CreateChangeSet",
"actionTypeId": {
"category": "Deploy",
"owner": "AWS",
"provider": "CloudFormation",
"version": "1"
},
"runOrder": 1,
"configuration": {
"ActionMode": "CHANGE_SET_REPLACE",
"ChangeSetName": "MyChangeSet",
"RoleArn": "arn:aws:iam::123456789012:role/MyCodePipelineRole",
"StackName": "MyStack",
"Capabilities": "CAPABILITY_AUTO_EXPAND", // 添加此行
"TemplatePath": "BuildOutput::template.yml"
},
"outputArtifacts": [
{
"name": "BuildOutput"
}
],
"inputArtifacts": [
{
"name": "SourceOutput"
}
]
}
]
}
在上面的示例中,我们在CloudFormation操作的配置部分添加了“Capabilities”属性,并将其设置为“CAPABILITY_AUTO_EXPAND”。这将确保CodePipeline在部署期间启用此能力。
请根据您的具体情况将示例代码调整为适合您的CodePipeline配置的代码。