翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation スタックに対して オペレーションを実行します。スタックは、単一のユニットとして管理できる AWS リソースのコレクションです。スタック内のすべてのリソースは、スタックの AWS CloudFormation
テンプレートで定義されます。変更セットにより、元のスタックを変更せずに表示できる比較が作成されます。スタックおよび変更セットで実行できる AWS CloudFormation アクションのタイプについては、 ActionMode
パラメータを参照してください。
スタックオペレーションが失敗した AWS CloudFormation アクションのエラーメッセージを作成するには、CodePipeline は API を AWS CloudFormation DescribeStackEvents
呼び出します。アクション IAM ロールにその API にアクセスするアクセス許可がある場合、最初に失敗したリソースの詳細が CodePipeline エラーメッセージに含まれます。そうでなく、ロールポリシーに適切なアクセス許可がない場合、CodePipeline は API へのアクセスを無視し、代わりに一般的なエラーメッセージを表示します。そのためには、パイプラインのサービスロールまたは他の IAM ロールに cloudformation:DescribeStackEvents
アクセス許可を追加する必要があります。
リソースの詳細がパイプラインのエラーメッセージに表示されないようにするには、cloudformation:DescribeStackEvents
アクセス許可を削除することによって、アクション IAM ロールに対するこのアクセス許可を取り消すことができます。
アクションタイプ
-
カテゴリ:
Deploy
-
所有者:
AWS
-
プロバイダー:
CloudFormation
-
バージョン:
1
設定パラメータ
- ActionMode
-
必須: はい
ActionMode
は、スタックまたは変更セットで AWS CloudFormation 実行されるアクションの名前です。以下のアクティベーションモードを使用できます。-
CHANGE_SET_EXECUTE
は、指定された一連のリソース更新に基づくリソーススタックの変更セットを実行します。このアクションにより、 はスタックの変更 AWS CloudFormation を開始します。 -
CHANGE_SET_REPLACE
は、変更セットが存在しない場合、指定されたスタック名とテンプレートに基づいて変更セットを作成します。変更セットが存在する場合、 はそれ AWS CloudFormation を削除し、新しい変更セットを作成します。 -
スタックが存在しない場合は、
CREATE_UPDATE
がスタックを作成します スタックが存在する場合、 はスタック AWS CloudFormation を更新します。既存のスタックを更新するには、このアクションを使用します。REPLACE_ON_FAILURE
とは異なり、スタックが存在し、失敗した状態の場合、CodePipeline はスタックを削除して置き換えることはありません。 -
DELETE_ONLY
は、スタックを削除します。存在しないスタックを指定した場合は、アクションはスタックを削除せずに正常に終了します。 -
スタックが存在しない場合は、
REPLACE_ON_FAILURE
がスタックを作成します。スタックが存在し、障害状態にある場合、 はスタック AWS CloudFormation を削除し、新しいスタックを作成します。スタックが失敗状態でない場合、 はスタック AWS CloudFormation を更新します。AWS CloudFormationに次のいずれかのステータスタイプが表示されている場合、スタックは失敗状態になります。
-
ROLLBACK_FAILED
-
CREATE_FAILED
-
DELETE_FAILED
-
UPDATE_ROLLBACK_FAILED
失敗したスタックをリカバリーまたはトラブルシューティングせずに自動的に置き換えるには、このアクションを使用します。
重要
REPLACE_ON_FAILURE
は、スタックが削除される可能性があるため、テスト目的でのみ使用することをお勧めします。 -
-
- StackName
-
必須: はい
StackName
は、既存のスタックの名前、または作成するスタックの名前です。 - 機能
-
必須: 条件による
Capabilities
を使用すると、テンプレートに一部のリソースを単独で作成および更新する機能があり、これらの機能はテンプレート内のリソースのタイプに基づいて決定されることが確認されます。このプロパティは、スタックテンプレートに IAM リソースがある場合、またはマクロを含むテンプレートから直接スタックを作成する場合に必要です。この方法で AWS CloudFormation アクションを正常に動作させるには、次のいずれかの機能を使用してアクションが正常に動作するように明示的に承認する必要があります。
-
CAPABILITY_IAM
-
CAPABILITY_NAMED_IAM
-
CAPABILITY_AUTO_EXPAND
機能間にカンマ(スペースなし)を使用して、複数の機能を指定できます。アクションの宣言 の例は、CAPABILITY_IAM プロパティと CAPABILITY_AUTO_EXPAND プロパティの両方を持つエントリを示しています。
Capabilities
の詳細については、[AWS CloudFormation API リファレンス]の [UpdateStack] のプロパティを参照してください。 -
- ChangeSetName
-
必須: 条件による
ChangeSetName
は、既存の変更セットの名前、または指定されたスタック用に作成する新しい変更セットの名前です。このプロパティは、次のアクションモードに必要です。CHANGE_SET_REPLACE および CHANGE_SET_EXECUTE。他のすべてのアクションモードでは、このプロパティは無視されます。
- RoleArn
-
必須: 条件による
RoleArn
は、指定されたスタックのリソースを操作するときに AWS CloudFormation が引き受ける IAM サービスロールの ARNです。RoleArn
は、変更セットを実行するときには適用されません。変更セットの作成に CodePipeline を使用しない場合は、変更セットまたはスタックにロールが関連付けられていることを確認します。注記
このロールは、アクション宣言
RoleArn
で設定された、実行中のアクションのロールと同じアカウントである必要があります。このプロパティは、以下のアクションモードでは必須です。
-
CREATE_UPDATE
-
REPLACE_ON_FAILURE
-
DELETE_ONLY
-
CHANGE_SET_REPLACE
注記
AWS CloudFormation にはテンプレートへの S3-signed付き URL が付与されるため、アーティファクトバケットにアクセスするためのアクセス許可
RoleArn
は必要ありません。ただし、アクションRoleArn
は、署名付き URL を生成するために、アーティファクト バケットへアクセスする許可を必要と [します]。 -
- TemplatePath
-
必須: 条件による
TemplatePath
は AWS CloudFormation テンプレートファイルを表します。このアクションへの入力アーティファクトにファイルを含めます。ファイル名の形式は次のとおりです:Artifactname
::TemplateFileName
Artifactname
は、CodePipeline に表示される入力アーティファクト名です。たとえば、アーティファクト名SourceArtifact
とtemplate-export.json
ファイル名を持つソースステージでは、次の例に示すようなTemplatePath
の名前が作成されます。"TemplatePath": "SourceArtifact::template-export.json"
このプロパティは、以下のアクションモードでは必須です。
-
CREATE_UPDATE
-
REPLACE_ON_FAILURE
-
CHANGE_SET_REPLACE
他のすべてのアクションモードでは、このプロパティは無視されます。
注記
AWS CloudFormation テンプレート本文を含むテンプレートファイルの最小長は 1 バイト、最大長は 1 MB です。CodePipeline の AWS CloudFormation デプロイアクションの場合、入力アーティファクトの最大サイズは常に 256 MB です。詳細については、AWS CodePipeline のクォータ および [AWS CloudFormation の制限] を参照してください。
-
- OutputFileName
-
必須: いいえ
OutputFileName
を使用して、CodePipeline がこのアクションのパイプライン出力アーティファクトに追加するCreateStackOutput.json
などの出力ファイル名を指定します。JSON ファイルには、 AWS CloudFormation スタックのOutputs
セクションの内容が含まれています。名前を指定しない場合、CodePipeline は出力ファイルやアーティファクトを生成しません。
- ParameterOverrides
-
必須: いいえ
パラメータはスタックテンプレートで定義され、スタックの作成時または更新時にそれらの値を指定できます。JSON オブジェクトを使用して、テンプレートにパラメータ値を設定できます。(これらの値は、テンプレート設定ファイルに設定された値を上書きします。) パラメータオーバーライドの使用の詳細については、設定プロパティ(JSON オブジェクト)を参照してください。
パラメータ値のほとんどは、テンプレート設定ファイルを使用して指定することをお勧めします。パラメータの上書きは、パイプラインが実行されるまで不明な値にのみ使用します。詳細については、[AWS CloudFormation ユーザーガイド] の [CodePipeline パイプラインでのパラメータオーバーライド関数の使用] を参照してください。
注記
すべてのパラメータ名がスタックテンプレートに存在する必要があります。
- TemplateConfiguration
-
必須: いいえ
TemplateConfiguration
はテンプレート構成ファイルです。このアクションへの入力アーティファクトにファイルを含めます。テンプレート設定ファイルには、テンプレートのパラメータ値およびスタックポリシーを含めることができます。テンプレート設定ファイル形式の詳細については、「AWS CloudFormation アーティファクト」を参照してください。テンプレート構成ファイル名は以下の形式に従います。
Artifactname
::TemplateConfigurationFileName
Artifactname
は、CodePipeline に表示される入力アーティファクト名です。たとえば、アーティファクト名SourceArtifact
とtest-configuration.json
ファイル名を持つソースステージでは、次の例に示すようなTemplateConfiguration
の名前が作成されます。"TemplateConfiguration": "SourceArtifact::test-configuration.json"
入力アーティファクト
-
アーティファクトの数:
0 to 10
-
説明: 入力として、 AWS CloudFormation アクションはオプションで以下の目的でアーティファクトを受け入れます。
-
実行するスタックテンプレートファイルを提供するため。(
TemplatePath
パラメータを参照。) -
使用するテンプレート設定ファイルを提供するため。(
TemplateConfiguration
パラメータを参照。) テンプレート設定ファイル形式の詳細については、「AWS CloudFormation アーティファクト」を参照してください。 -
AWS CloudFormation スタックの一部としてデプロイする Lambda 関数のアーティファクトを提供します。
-
出力アーティファクト
-
アーティファクトの数:
0 to 1
-
[説明:]
OutputFileName
パラメータが指定された場合、このアクションによって生成される出力アーティファクトには、指定された名前の JSON ファイルが含まれます。JSON ファイルには、 AWS CloudFormation スタックの「出力」セクションの内容が含まれています。AWS CloudFormation アクション用に作成できる出力セクションの詳細については、出力を参照してください。
出力変数
このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。
AWS CloudFormation アクションの場合、変数はスタックテンプレートの Outputs
セクションで指定された値から生成されます。CloudFormation アクションモードのうち、出力を生成するのは、スタックの作成、スタックの更新、変更セットの実行など、スタックの作成や更新を伴うアクションモードのみです。変数を生成するアクションモードは次のとおりです。
-
CHANGE_SET_EXECUTE
-
CHANGE_SET_REPLACE
-
CREATE_UPDATE
-
REPLACE_ON_FAILURE
詳細については、「変数リファレンス」を参照してください。CloudFormation 出力変数を使用するパイプラインを CloudFormation デプロイアクションで作成するためのチュートリアルについては、「チュートリアル: AWS CloudFormation デプロイアクションの変数を使用するパイプラインを作成する」を参照してください。
サービスロールのアクセス許可: AWS CloudFormation アクション
CodePipeline がアクションを実行する場合、CodePipeline サービスロールポリシーには、最小限の特権でアクセスを維持するために、パイプラインリソース ARN に適切にスコープダウンされた次のアクセス許可が必要です。たとえば、ポリシーステートメントに以下を追加します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCFNStackAccess",
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack",
"cloudformation:UpdateStack",
"cloudformation:DeleteStack",
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackResources",
"cloudformation:DescribeStackEvents",
"cloudformation:GetTemplate",
"cloudformation:DescribeChangeSet",
"cloudformation:CreateChangeSet",
"cloudformation:DeleteChangeSet",
"cloudformation:ExecuteChangeSet"
],
"Resource": [
"arn:aws:cloudformation:*:{{customerAccountId}}:stack/[[cfnDeployStackNames]]/*"
]
},
{
"Sid": "ValidateTemplate",
"Effect": "Allow",
"Action": [
"cloudformation:ValidateTemplate"
],
"Resource": "*"
},
{
"Sid": "AllowIAMPassRole",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::{{customerAccountId}}:role/[[cfnExecutionRoles]]"
],
"Condition": {
"StringEqualsIfExists": {
"iam:PassedToService": [
"cloudformation.amazonaws.com"
]
}
}
}
]
}
cloudformation:DescribeStackEvents
アクセス許可はオプションであることに注意してください。これにより、 AWS CloudFormation アクションはより詳細なエラーメッセージを表示できます。パイプラインのエラーメッセージにリソースの詳細を表示したくない場合は、このアクセス許可を IAM ロールから取り消すことができます。
アクションの宣言
Name: ExecuteChangeSet
ActionTypeId:
Category: Deploy
Owner: AWS
Provider: CloudFormation
Version: '1'
RunOrder: 2
Configuration:
ActionMode: CHANGE_SET_EXECUTE
Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
ChangeSetName: pipeline-changeset
ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}'
RoleArn: CloudFormation_Role_ARN
StackName: my-project--lambda
TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json'
TemplatePath: 'my-project--BuildArtifact::template-export.yml'
OutputArtifacts: []
InputArtifacts:
- Name: my-project-BuildArtifact
関連情報
このアクションを利用する際に役立つ関連リソースは以下の通りです。
-
[設定プロパティ リファレンス] - [AWS CloudFormation ユーザーガイド] のリファレンスの章では、これらの CodePipeline パラメータの詳細な説明と例をご覧いただけます。
-
AWS CloudFormation API リファレンス – AWS CloudFormation API リファレンスの CreateStack パラメータは、 テンプレートのスタックパラメータを記述します AWS CloudFormation 。