

# CloudFormation アーティファクト
<a name="continuous-delivery-codepipeline-cfn-artifacts"></a>

CodePipeline では、CodePipeline パイプラインを実行しながらアーティファクトのタスクを実行します。CloudFormation の場合、アーティファクトはスタックテンプレートファイル、テンプレート構成ファイル、または両方を含むことができます。CodePipeline はこれらのアーティファクトを使用して CloudFormation スタックとチェンジセットと連動します。

ソースリポジトリとして Amazon Simple Storage Service (Amazon S3) を使用する場合、テンプレートおよびテンプレート構成ファイルを 1 つのファイルに zip 化してから S3 バケットにアップロードする必要があります。GitHub や AWS CodeCommit などその他のリポジトリの場合は、アーティファクトを圧縮しないでアップロードします。詳細については、「*AWS CodePipeline ユーザーガイド*」の「[Create a pipeline, stages, and actions](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html)」を参照してください。

リポジトリには、必要なだけファイルを追加できます。たとえば、同じテンプレートに、テスト構成と本稼働構成の 2 つの異なる構成を含めることもできます。

このトピックでは、各アーティファクトタイプを説明します。

**Topics**
+ [スタックテンプレートファイル](#w2aac21c15c13)
+ [テンプレート構成ファイル](#w2aac21c15c15)
+ [関連情報](#w2aac21c15c17)

## スタックテンプレートファイル
<a name="w2aac21c15c13"></a>

スタックテンプレートファイルは、CloudFormation がプロビジョンおよび設定するリソースを定義します。これらのファイルは、CloudFormation を使用してスタックを作成または更新する際に使用するテンプレートファイルと同じです。YAML または JSON 形式のテンプレートを使用できます。テンプレートの詳細については、「」を参照してください[CloudFormation テンプレートセクション](template-anatomy.md)

## テンプレート構成ファイル
<a name="w2aac21c15c15"></a>

テンプレート構成ファイルは、テンプレートのパラメータ値、[スタックポリシー](protect-stack-resources.md)、タグを指定できる JSON 形式のテキストファイルです。これらの構成ファイルを使用して、スタックにパラメーター値またはスタックポリシーを指定します。指定するパラメーター値はすべて、関連するテンプレートで宣言する必要があります。

このファイルに機密情報 (パスワードなど) を含める場合は、このファイルへのアクセスを制限します。たとえば、アーティファクトを S3 バケットにアップロードする場合、[S3 バケットポリシーまたはユーザーポリシー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)を使用してアクセスを制限します。

構成ファイルを作成するには、次の形式を使用します。

```
{
  "Parameters" : {
    "{{NameOfTemplateParameter}}" : "{{ValueOfParameter}}",
    ...
  },
  "Tags" : {
    "{{TagKey}}" : "{{TagValue}}",
    ...
  }, 
  "StackPolicy" : {
    "Statement" : [
      {{StackPolicyStatement}}
    ]
  }
}
```

以下の例では、`TestEC2Key` パラメータに `KeyName` を指定し、`Department` タグを追加して、その値を `Marketing` に設定します。続いて、リソースを削除する更新を除くすべての更新アクションを許可するスタックポリシーを追加します。

```
{
  "Parameters" : {
    "KeyName" : "TestEC2Key"
  },
  "Tags" : {
    "Department" : "Marketing"
  },
  "StackPolicy" : {
    "Statement" : [
      {
        "Effect" : "Allow",
        "NotAction" : "Update:Delete",
        "Principal": "*",
        "Resource" : "*"
      }
    ]
  }
}
```

## 関連情報
<a name="w2aac21c15c17"></a>

これらのパラメータを利用する際に役立つ関連リソースは以下の通りです。
+ CodePipeline の CloudFormation アクションパラメータの詳細については、「*AWS CodePipeline ユーザーガイド*」の「[アクション設定リファレンスの CloudFormation デプロイ](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html)」を参照してください。
+ アクションプロバイダーごとのテンプレート値における例の場合 (`Owner` フィールドまたは `configuration` フィールドなど)、「*AWS CodePipeline ユーザーガイド*」の「[アクション構造リファレンス](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html)」を参照してください。
+ サンプルのパイプラインスタックテンプレートを YAML または JSON 形式でダウンロードするには、「*AWS CodePipeline ユーザーガイド*」の「[Tutorial: Create a pipeline with CloudFormation](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudformation.html)」を参照してください。