web-dev-qa-db-ja.com

AWSスタック更新エラー:機能が必要:[CAPABILITY_IAM]

CloudFormationでスタックを作成すると、次のエラーが表示されます。

Stack update error: Requires capabilities : [CAPABILITY_IAM]

CloudFormation構成にCAPABILITIES_IAMを追加するためのテンプレートが見つかりません。

CAPABILITIES_IAMエラーを解決するためのオプションは何ですか

35
Eric Nord

スタック作成の最後の画面でボックスをチェックする必要があることがわかりました。

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には適用されません。

66
Eric Nord

AWS CLIを使用している場合、これらの機能を提供することを明示的に示すaws cloudformation create-stackコマンドに追加のパラメーターを追加できます。

(これは、他の回答のチェックボックスにチェックを入れるのと同等のCLIです)。

パラメーターは--capabilities CAPABILITY_IAMであるため、コマンドは次のようになります。

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

役立つことを願っています

9
gsaslis