AWS CloudFormation デプロイアクションリファレンス - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation デプロイアクションリファレンス

AWS CloudFormation スタックに対して オペレーションを実行します。スタックは、単一のユニットとして管理できる AWS リソースのコレクションです。スタック内のすべてのリソースは、スタックの AWS CloudFormation テンプレートで定義されます。変更セットにより、元のスタックを変更せずに表示できる比較が作成されます。スタックと変更セットで実行できる AWS CloudFormation アクションのタイプについては、 ActionModeパラメータを参照してください。

スタックオペレーションが失敗した AWS CloudFormation アクションのエラーメッセージを作成するには、 が を CodePipeline AWS CloudFormation DescribeStackEvents呼び出しますAPI。アクションIAMロールがその にアクセスするアクセス許可を持っている場合API、最初に失敗したリソースに関する詳細が CodePipeline エラーメッセージに含まれます。それ以外の場合、ロールポリシーに適切なアクセス許可がない場合、 CodePipeline は へのアクセスを無視APIし、代わりに一般的なエラーメッセージを表示します。これを行うには、アクセスcloudformation:DescribeStackEvents許可をサービスロールまたはパイプラインの他のIAMロールに追加する必要があります。

リソースの詳細をパイプラインのエラーメッセージに表示しない場合は、 アクセス許可を削除することで、アクションIAMロールのこのcloudformation:DescribeStackEventsアクセス許可を取り消すことができます。

アクションタイプ

  • カテゴリ: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 プロパティの両方を含むエントリアクションの宣言を示しています。

の詳細についてはCapabilitiesAWS CloudFormation APIリファレンスの UpdateStackプロパティを参照してください。

ChangeSetName

必須: 条件による

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

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

RoleArn

必須: 条件による

RoleArn は、指定されたスタックARN内のリソースで動作するときに が AWS CloudFormation 引き受けるIAMサービスロールの です。 RoleArn は、変更セットを実行するときに適用されません。 CodePipeline を使用して変更セットを作成しない場合は、変更セットまたはスタックに関連付けられたロールがあることを確認してください。

注記

このロールは、アクション宣言 RoleArn で設定された、実行中のアクションのロールと同じアカウントである必要があります。

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

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • DELETE_ONLY

  • CHANGE_SET_REPLACE

注記

AWS CloudFormation にはテンプレートURLへの S3-signedが付与されるため、アーティファクトバケットにアクセスするためのアクセス許可RoleArnは必要ありません。ただし、署名付き を生成するには、アクションがアーティファクトバケットにアクセスするためのアクセス許可RoleArnが必要ですURL。

TemplatePath

必須: 条件による

TemplatePath は AWS CloudFormation テンプレートファイルを表します。このアクションの入力アーティファクトにファイルを含めます。ファイル名の形式は次のとおりです:

Artifactname::TemplateFileName

Artifactname は、 に表示される入力アーティファクト名です CodePipeline。たとえば、アーティファクト名 SourceArtifacttemplate-export.json ファイル名を持つソースステージでは、次の例に示すような TemplatePath の名前が作成されます。

"TemplatePath": "SourceArtifact::template-export.json"

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

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • CHANGE_SET_REPLACE

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

注記

AWS CloudFormation テンプレート本文を含むテンプレートファイルの最小長は 1 バイト、最大長は 1 MB です。での AWS CloudFormation デプロイアクションの場合 CodePipeline、最大入力アーティファクトサイズは常に 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。たとえば、アーティファクト名 SourceArtifacttest-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 デプロイアクションの変数を使用するパイプラインを作成する

アクションの宣言

YAML
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
JSON
{ "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" } ] },

このアクションを利用する際に役立つ関連リソースは以下の通りです。