使用CloudFormation创建堆栈时,我收到此错误:
Stack update error: Requires capabilities : [CAPABILITY_IAM]
我找不到用于将CAPABILITIES_IAM
添加到CloudFormation配置的模板。
解决CAPABILITIES_IAM错误的选项有哪些
答案 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