AWS CloudFormation アーティファクト
CodePipeline では、CodePipeline パイプラインを実行しながらアーティファクトのタスクを実行します。AWS CloudFormation の場合、アーティファクトはスタックテンプレートファイル、テンプレート構成ファイル、または両方を含むことができます。CodePipeline はこれらのアーティファクトを使用して AWS CloudFormation スタックとチェンジセットと連動します。
ソースリポジトリとして Amazon Simple Storage Service (Amazon S3) を使用する場合、テンプレートおよびテンプレート構成ファイルを 1 つのファイルに zip 化してから S3 バケットにアップロードする必要があります。GitHub や AWS CodeCommit などその他のリポジトリの場合は、アーティファクトを圧縮しないでアップロードします。詳細については、「AWS CodePipeline ユーザーガイド」の「CodePipeline でパイプラインの作成」を参照してください。
リポジトリには、必要なだけファイルを追加できます。たとえば、同じテンプレートに、テスト構成と本稼働構成の 2 つの異なる構成を含めることもできます。
このトピックでは、各アーティファクトタイプを説明します。
スタックテンプレートファイル
スタックテンプレートファイルは、AWS CloudFormation がプロビジョンおよび設定するリソースを定義します。これらのファイルは、AWS CloudFormation を使用してスタックを作成または更新する際に使用するテンプレートファイルと同じです。YAML または JSON 形式のテンプレートを使用できます。テンプレートの詳細については、「CloudFormation テンプレートセクション」を参照してください。
テンプレート構成ファイル
テンプレート構成ファイルは、テンプレートのパラメータ値、スタックポリシー、タグを指定できる JSON 形式のテキストファイルです。これらの構成ファイルを使用して、スタックにパラメーター値またはスタックポリシーを指定します。指定するパラメーター値はすべて、関連するテンプレートで宣言する必要があります。
このファイルに機密情報 (パスワードなど) を含める場合は、このファイルへのアクセスを制限します。たとえば、アーティファクトを S3 バケットにアップロードする場合、S3 バケットポリシーまたはユーザーポリシーを使用してアクセスを制限します。
構成ファイルを作成するには、次の形式を使用します。
{ "Parameters" : { "
NameOfTemplateParameter
" : "ValueOfParameter
", ... }, "Tags" : { "TagKey
" : "TagValue
", ... }, "StackPolicy" : { "Statement" : [StackPolicyStatement
] } }
以下の例では、KeyName
パラメータに TestEC2Key
を指定し、Department
タグを追加して、その値を Marketing
に設定します。続いて、リソースを削除する更新を除くすべての更新アクションを許可するスタックポリシーを追加します。
{ "Parameters" : { "KeyName" : "TestEC2Key" }, "Tags" : { "Department" : "Marketing" }, "StackPolicy" : { "Statement" : [ { "Effect" : "Allow", "NotAction" : "Update:Delete", "Principal": "*", "Resource" : "*" } ] } }
以下も参照してください。
これらのパラメータを利用する際に役立つ関連リソースは以下の通りです。
-
CodePipeline の AWS CloudFormation アクションパラメータの詳細については、「AWS CodePipeline ユーザーガイド」の「AWS CloudFormation アクション構成リファレンス」を参照してください。
-
アクションプロバイダーごとのテンプレート値における例の場合 (
Owner
フィールドまたはconfiguration
フィールドなど)、「AWS CodePipeline ユーザーガイド」の「アクション構造のリファレンス」を参照してください。 -
YAML または JSON 形式のパイプラインスタックテンプレートの例をダウンロードするには、「AWS CodePipeline ユーザーガイド」の「AWS CloudFormation でパイプラインの作成」のチュートリアルを参照してください。