AWS CloudFormation - AWS CodePipeline

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

AWS CloudFormation

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

アクションの種類

  • カテゴリ: 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については、UpdateStack()AWS CloudFormationAPI リファレンス

ChangeSetName

必須 条件付き

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

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

RoleArn

必須 条件付き

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

注記

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

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

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • DELETE_ONLY

  • CHANGE_SET_REPLACE

注記

AWS CloudFormationはテンプレートに S3 署名付き URL を与えられます。したがって、この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を使用して、出力ファイル名を指定します。CreateStackOutput.jsonには、CodePipeline がこのアクションのパイプライン出力アーティファクトに追加します。JSON ファイルには、AWS CloudFormation スタックの Outputs セクションのコンテンツが含まれています。

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

ParameterOverrides

必須 いいえ

パラメータはスタックテンプレートで定義され、スタックの作成時または更新時にそれらの値を指定できます。JSON オブジェクトを使用して、テンプレートにパラメータ値を設定できます。(これらの値は、テンプレート設定ファイルに設定された値を上書きします。) パラメータオーバーライドの使用の詳細については、設定プロパティ(JSON オブジェクト)を参照してください。

パラメータ値のほとんどは、テンプレート設定ファイルを使用して指定することをお勧めします。パラメータの上書きは、パイプラインが実行されるまで不明な値にのみ使用します。詳細については、「」を参照してください。CodePipeline パイプラインでのパラメーターオーバーライド関数の使用()AWS CloudFormationユーザーガイド

注記

すべてのパラメータ名がスタックテンプレートに存在する必要があります。

TemplateConfiguration

必須 いいえ

TemplateConfiguration はテンプレート設定ファイルです。このアクションの入力アーティファクトにファイルを含めます。テンプレート設定ファイルには、テンプレートのパラメータ値およびスタックポリシーを含めることができます。テンプレート設定ファイル形式の詳細については、」AWSCloudFormation アーティファクト

テンプレート設定ファイル名は以下の形式に従います。

Artifactname::TemplateConfigurationFileName

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

"TemplateConfiguration": "SourceArtifact::test-configuration.json"

入力アーティファクト

  • アーティファクトの数: 0 to 10

  • 説明: 入力として、AWS CloudFormationアクションは、オプションでこれらの目的でアーティファクトを受け入れます。

    • 実行するスタックテンプレートファイルを提供するため。(TemplatePath パラメータを参照。)

    • 使用するテンプレート設定ファイルを提供するため。(TemplateConfiguration パラメータを参照。) テンプレート設定ファイル形式の詳細については、」AWSCloudFormation アーティファクト

    • 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

詳細については、「Variables」を参照してください。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" } ] },

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