AWS CloudFormation Stack update error: Requires capabilities : [CAPABILITY_IAM]
AWS CloudFormation Stack update error: Requires capabilities : [CAPABILITY_IAM]
使用 CloudFormation 创建堆栈时,出现此错误:
Stack update error: Requires capabilities : [CAPABILITY_IAM]
我找不到用于将 CAPABILITIES_IAM
添加到 CloudFormation 配置的模板。
解决 CAPABILITIES_IAM
错误的选项是什么?
原来您需要在堆栈创建的最后一个屏幕上选中一个框。如果您使用的是控制台,在 'create stack' 按钮上方会有一个框,要求您确认是否允许 Cloudformation 修改 IAM 内容。当然,您可以在没有确认的情况下创建堆栈,这将导致堆栈失败并出现 CAPABILITY_IAM
错误(或其他错误,如果需要不同的功能)。
在 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,因为它实际上并未创建资源。
如果您使用的是 AWS CLI,则可以向 aws cloudformation create-stack
命令添加一个额外参数,明确声明您希望提供这些功能。
(这是 CLI 等同于在此处勾选其他答案中的复选框)。
参数是--capabilities CAPABILITY_IAM
,所以你的命令看起来像:
aws cloudformation create-stack --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
希望对您有所帮助
在创建堆栈按钮上方,打开控制台中的确认。
使用 CloudFormation 创建堆栈时,出现此错误:
Stack update error: Requires capabilities : [CAPABILITY_IAM]
我找不到用于将 CAPABILITIES_IAM
添加到 CloudFormation 配置的模板。
解决 CAPABILITIES_IAM
错误的选项是什么?
原来您需要在堆栈创建的最后一个屏幕上选中一个框。如果您使用的是控制台,在 'create stack' 按钮上方会有一个框,要求您确认是否允许 Cloudformation 修改 IAM 内容。当然,您可以在没有确认的情况下创建堆栈,这将导致堆栈失败并出现 CAPABILITY_IAM
错误(或其他错误,如果需要不同的功能)。
在 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,因为它实际上并未创建资源。
如果您使用的是 AWS CLI,则可以向 aws cloudformation create-stack
命令添加一个额外参数,明确声明您希望提供这些功能。
(这是 CLI 等同于在此处勾选其他答案中的复选框)。
参数是--capabilities CAPABILITY_IAM
,所以你的命令看起来像:
aws cloudformation create-stack --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
希望对您有所帮助
在创建堆栈按钮上方,打开控制台中的确认。