當創建與CloudFormation堆棧,我得到這個錯誤:AWS堆棧更新錯誤:需要的功能:CAPABILITY_IAM]
Stack update error: Requires capabilities : [CAPABILITY_IAM]
我無法找到一個模板,添加CAPABILITIES_IAM
到CloudFormation配置。
當創建與CloudFormation堆棧,我得到這個錯誤:AWS堆棧更新錯誤:需要的功能:CAPABILITY_IAM]
Stack update error: Requires capabilities : [CAPABILITY_IAM]
我無法找到一個模板,添加CAPABILITIES_IAM
到CloudFormation配置。
原來你需要勾選堆棧創建的最後一個屏幕上的一個方框|更新:
在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模板,因爲它不是實際創建資源。
如果您使用的是AWS CLI,則可以向aws cloudformation create-stack
命令中添加一個額外參數,以明確聲明您希望提供這些功能。
(這裏的CLI相當於勾選了其他答案中的複選框)。
的參數是--capabilities CAPABILITY_IAM
,所以你的命令如下所示:
aws cloudformation create-stack --stack-name $STACK_NAME --capabilities CAPABILITY_IAM
希望幫助
感謝cli param的提醒。在上面添加了完整的代碼示例。 –
我錯了嗎,或者不能用'validate-template'?我的完整命令:'aws cloudformation validate-template --template-body file://sqs-template.yml --capabilities CAPABILITY_IAM' –
我來這裏想知道同樣的事情。如果您看到「錯誤」「CapabilitiesReason」:「以下資源需要功能:[AWS :: IAM :: Role]」'那麼這意味着您的模板是有效的,您必須指定返回創建堆棧時的能力。 [來源](http://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html) –
這是一個正確的答案,謝謝。 –