メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS CloudFormation 設定プロパティのリファレンス

AWS CodePipeline パイプラインを構築する際、AWS CloudFormation をプロバイダーとする Deploy アクションをパイプラインに追加します。その後、パイプラインが起動する AWS CloudFormation アクションと、そのアクションの設定を指定する必要があります。このトピックでは、AWS CloudFormation 設定プロパティについて説明します。プロパティを指定するには、AWS CodePipeline コンソールを使用するか、JSON オブジェクトを作成して AWS CLI、AWS CodePipeline API、または AWS CloudFormation テンプレートを使用できます。

設定プロパティ (コンソール)

AWS CodePipeline コンソールに設定プロパティが表示され、選択した Action mode に基づいて必須プロパティが示されます。

注記

新しいパイプラインを作成するときは、[Create or update a stack] のみ、または [Create or replace a change set] のアクションモードを指定できます。また、[Advanced] セクションのプロパティは、既存のパイプラインを編集するときにのみ使用できます。

アクションモード

AWS CodePipeline が関連ステージを処理する際に呼び出す AWS CloudFormation アクションです。以下のいずれかのアクションモードを選択します。

  • [Create or replace a change set] は、変更セットが存在しない場合は指定されたスタック名とテンプレートに基づいて作成します。変更セットがある場合は、AWS CloudFormation それを削除して新しいものを作成します。

  • [Create or update a stack] は、指定されたスタックが存在しない場合はスタックを作成します。スタックが存在する場合、AWS CloudFormation はそのスタックを更新します。既存のスタックを更新するには、このアクションを使用します。AWS CodePipeline はスタックを置き換えません。

  • [Delete a stack] は、スタックを削除します。存在しないスタックを指定した場合は、アクションはタックを削除せずに正常に終了します。

  • [Execute a change set] は、変更セットを実行します。

  • [Replace a failed stack] は、指定されたスタックが存在しない場合はスタックを作成します。スタックが存在しており失敗状態の場合 (ROLLBACK_COMPLETEROLLBACK_FAILEDCREATE_FAILEDDELETE_FAILED または UPDATE_ROLLBACK_FAILED として報告されている場合)、AWS CloudFormation はそのスタックを削除して新しいスタックを作成します。スタックが失敗状態ではない場合は、AWS CloudFormation はそれを更新します。失敗したスタックをリカバリーまたはトラブルシューティングせずに自動的に置き換えるには、このアクションを使用します。通常、このモードはテスト用に選択されます。

スタックの名前

既存のスタックの名前、または作成するスタックの名前です。

変更セット名

既存の変更セットの名前、または指定されたスタック用に作成する新しい変更セットの名前です。

テンプレート

AWS CloudFormation テンプレートファイルの場所です。形式は ArtifactName::TemplateFileName です。

テンプレート設定

テンプレート設定ファイルの場所です。形式は ArtifactName::TemplateConfigurationFileName です。テンプレート設定ファイルには、テンプレートのパラメーター値およびスタックポリシーを含めることができます。機密情報 (パスワードなど) を含める場合は、このファイルへのアクセスを制限します。詳細については、「AWS CloudFormation アーティファクト」を参照してください。

機能

特定のリソースを含むスタックの場合、AWS CloudFormation がそれらのリソースを作成または更新する場合があることを明示的に承認します。たとえば、スタックテンプレートに AWS Identity and Access Management (IAM) リソースが含まれている場合は、CAPABILITY_IAM を指定する必要があります。詳細については、「AWS CloudFormation テンプレートでの IAM リソースの承認」を参照してください。

スタックテンプレートに IAM リソースがある場合は、このプロパティを指定する必要があります。

ロール名

AWS CloudFormation が指定されたスタックのリソースを操作する際に引き受ける IAM サービスロールの名前です。

出力ファイル名

[Advanced] セクションで、AWS CodePipeline が指定されたアクションを実行した後に出力アーティファクトに追加する出力ファイル名 (CreateStackOutput.json など) を指定できます。

名前を指定しない場合、AWS CodePipeline は出力アーティファクトを生成しません。

パラメーターの上書き

[Advanced] セクションで、テンプレート設定ファイルのテンプレートパラメーター値をオーバーライドする JSON オブジェクトを指定できます。すべてのパラメーター名がスタックテンプレートに存在する必要があります。

注記

ParameterOverrides プロパティに保存することができる JSON オブジェクトのサイズは、最大 1 キロバイトに制限されています。

パラメーター値のほとんどは、テンプレート設定ファイルを使用して指定することをお勧めします。パラメーターオーバーライドは、動的パラメーター値 (パイプラインを実行するまで不明な値) の指定にのみ使用します。

次の例では、パラメーターオーバーライド関数を使用して ParameterName パラメーターの値を定義します。この関数は、AWS CodePipeline 入力アーティファクトから値を取得します。パラメーターオーバーライド関数の詳細については、「AWS CodePipeline パイプラインでのパラメーターオーバーライド関数の使用」を参照してください。

Copy
{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

設定プロパティ (JSON オブジェクト)

ステージのアクションで CloudFormation をプロバイダーとして指定する場合は、Configuration プロパティ内で次のプロパティを定義します。AWS CLI、AWS CodePipeline API、または AWS CloudFormation テンプレートの場合は、JSON オブジェクトを使用します。例については、「ウォークスルー: テストおよび本稼働スタック用のパイプラインを構築する」を参照してください。

ActionMode

AWS CodePipeline が関連ステージを処理する際に呼び出す AWS CloudFormation アクションです。次のアクションモードのいずれか 1 つのみを指定します。

  • CHANGE_SET_EXECUTE は変更セットを実行します。

  • CHANGE_SET_REPLACE は、変更セットが存在しない場合は指定されたスタック名とテンプレートに基づいて作成します。変更セットがある場合は、AWS CloudFormation それを削除して新しいものを作成します。

  • CREATE_UPDATE は、指定されたスタックが存在しない場合、そのスタックを作成します。スタックが存在する場合、AWS CloudFormation はそのスタックを更新します。既存のスタックを更新するには、このアクションを使用します。AWS CodePipeline はスタックを置き換えません。

  • DELETE_ONLY は、スタックを削除します。存在しないスタックを指定した場合は、アクションはタックを削除せずに正常に終了します。

  • REPLACE_ON_FAILURE は、指定されたスタックが存在しない場合、スタックを作成します。スタックが存在しており失敗状態の場合 (ROLLBACK_COMPLETEROLLBACK_FAILEDCREATE_FAILEDDELETE_FAILED または UPDATE_ROLLBACK_FAILED として報告されている場合)、AWS CloudFormation はそのスタックを削除して新しいスタックを作成します。スタックが失敗状態ではない場合は、AWS CloudFormation はそれを更新します。失敗したスタックをリカバリーまたはトラブルシューティングせずに自動的に置き換えるには、このアクションを使用します。通常、このモードはテスト用に選択されます。

このプロパティは必須です。

Capabilities

特定のリソースを含むスタックの場合、AWS CloudFormation がそれらのリソースを作成または更新する場合があることを明示的に承認します。たとえば、スタックテンプレートに AWS Identity and Access Management (IAM) リソースが含まれている場合は、CAPABILITY_IAM を指定する必要があります。詳細については、「AWS CloudFormation テンプレートでの IAM リソースの承認」を参照してください。

このプロパティは条件付きです。スタックテンプレートに IAM リソースがある場合は、このプロパティを指定する必要があります。

ChangeSetName

既存の変更セットの名前、または指定されたスタック用に作成する新しい変更セットの名前です。

このプロパティは CHANGE_SET_REPLACE および CHANGE_SET_EXECUTE アクションモードでは必須です。他のすべてのアクションモードでは、このプロパティは無視されます。

OutputFileName

出力ファイルの名前 (CreateStackOutput.json など)。AWS CodePipeline は指定されたアクションを実行した後、 出力アーティファクトにファイルを追加します。

このプロパティはオプションです。名前を指定しない場合、AWS CodePipeline は出力アーティファクトを生成しません。

ParameterOverrides

テンプレートパラメーターの値を指定する JSON オブジェクト。テンプレート設定ファイルにも指定されているパラメーターを指定すると、その値はオーバーライドされます。すべてのパラメーター名がスタックテンプレートに存在する必要があります。

注記

ParameterOverrides プロパティに保存することができる JSON オブジェクトのサイズは、最大 1 キロバイトに制限されています。

パラメーター値のほとんどは、テンプレート設定ファイルを使用して指定することをお勧めします。パラメーターオーバーライドは、動的パラメーター値 (パイプラインを実行するまで不明な値) の指定にのみ使用します。

次の例では、パラメーターオーバーライド関数を使用して ParameterName パラメーターの値を定義します。この関数は、AWS CodePipeline 入力アーティファクトから値を取得します。パラメーターオーバーライド関数の詳細については、「AWS CodePipeline パイプラインでのパラメーターオーバーライド関数の使用」を参照してください。

Copy
{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

このプロパティはオプションです。

RoleArn

AWS CloudFormation がスタックのリソースを操作する際に引き受ける IAM サービスロールの Amazon リソースネーム (ARN) です。

このプロパティは CREATE_UPDATEREPLACE_ON_FAILUREDELETE_ONLY および CHANGE_SET_REPLACE アクションモードでは必須です。注意: RoleArn は変更セットの実行時には適用されません。変更セットの作成に CodePipeline を使用しない場合、変更セットまたはスタックに関連付けられたロールがあることを確認してください。

StackName

既存のスタックの名前、または作成するスタックの名前です。

このプロパティはすべてのアクションモードで必須です。

TemplateConfiguration

テンプレート設定ファイルの場所です。形式は ArtifactName::TemplateConfigurationFileName です。テンプレート設定ファイルには、テンプレートのパラメーター値およびスタックポリシーを含めることができます。機密情報 (パスワードなど) を含める場合は、忘れずにこのファイルへのアクセスを制限してください。詳細については、「AWS CloudFormation アーティファクト」を参照してください。

このプロパティはオプションです。

TemplatePath

AWS CloudFormation テンプレートファイルの場所です。形式は ArtifactName::TemplateFileName です。

このプロパティは CREATE_UPDATEREPLACE_ON_FAILURE および CHANGE_SET_REPLACE アクションモードでは必須です。他のすべてのアクションモードでは、このプロパティは無視されます。