AWS Stack更新错误:需要功能:[CAPABILITY_IAM]

时间:2016-12-20 15:42:10

标签: amazon-web-services amazon-cloudformation

使用CloudFormation创建堆栈时,我收到此错误:

Stack update error: Requires capabilities : [CAPABILITY_IAM]

我找不到用于将CAPABILITIES_IAM添加到CloudFormation配置的模板。

解决CAPABILITIES_IAM错误的选项有哪些

3 个答案:

答案 0 :(得分:58)

原来你需要在堆栈创建的最后一个屏幕上选中一个框。

在CodePipeline CloudFormation中,您可以像这样添加它以允许在部署操作中执行创建的change_set:

Configuration:
        StackName: !Ref GitHubRepository
        ActionMode: CHANGE_SET_REPLACE
        Capabilities: CAPABILITY_NAMED_IAM
        RoleArn: arn:aws:iam::818272543125:role/events-list-codepiplinerole
        ChangeSetName: !Join ["",[!Ref GitHubRepository, "-changeset"]]
        TemplatePath: MyAppBuild::sam_post.yaml

在aws cli追加

--capabilities CAPABILITY_IAM

--capabilities CAPABILITY_NAMED_IAM

对你的命令如下:

aws cloudformation create-stack --stack-name message-store --template-body file://bucket_with_keys.yaml --parameters file://cfg_bucket_with_keys.json --capabilities CAPABILITY_NAMED_IAM

这不适用于cloudformation --validate-template,因为它实际上并没有创建资源。

答案 1 :(得分:8)

如果您使用的是AWS CLI,则可以向aws cloudformation create-stack命令添加一个额外参数,该命令明确指出您希望提供这些功能。

(这是CLI相当于勾选其他答案中的复选框)。

参数为--capabilities CAPABILITY_IAM,因此您的命令如下:

aws cloudformation create-stack --stack-name $STACK_NAME --capabilities CAPABILITY_IAM

希望有所帮助

答案 2 :(得分:2)

在创建堆栈按钮上方,在控制台中打开确认。 How to customize title bar and window of desktop application