AWS CloudFormation Git 同期の基本概念と用語 - AWS CloudFormation

AWS CloudFormation Git 同期の基本概念と用語

このセクションでは、Git 同期の基本的な概念と用語を紹介します。

Git 同期の概要

次の概要では、Git 同期が動作する仕組みと使用する方法について説明します。完全なチュートリアルについては、AWS CloudFormation Git 同期チュートリアル を参照してください。

  • CodeConnections を使用して、Git プロバイダーを CloudFormation に接続します。このガイドでは、接続は接続コンソールを通じて作成されます。または、AWS CLI を使用して接続を作成することもできます。Git 同期は GitHubGitHub EnterpriseGitLabBitbucket をサポートしています。

  • スタックを定義する CloudFormation テンプレートを指定し、リポジトリに追加します。このテンプレートファイルは監視されます。CloudFormation は、変更がコミットされると自動的にスタックを更新します。

  • CloudFormation コンソールで新しいスタックを作成し、[Git から同期] を選択して Git 同期サポートを持つスタックを設定します。CloudFormation に監視させるリポジトリとブランチを指定し、スタックを定義するリポジトリ内の CloudFormation テンプレートを指定します。

  • 設定時に、リポジトリから独自のスタックデプロイファイルを指定するか、Git 同期に生成させることができます。スタックデプロイファイルには、スタック内のリソースを設定するパラメータと値が含まれています。このスタックデプロイファイルは監視されます。CloudFormation は、変更がコミットされると自動的にスタックを更新します。

  • Git 同期は、スタックを CloudFormation テンプレートファイルおよびスタックデプロイファイルと同期するためのプルリクエストをリポジトリに作成します。Git 同期でスタックデプロイファイルを生成した場合、そのファイルは Git 同期によってリポジトリに送信されます。

  • プルリクエストをリポジトリにマージすることで、CloudFormation がスタックをプロビジョニングし、デプロイパラメータで設定し、リポジトリの変更のモニタリングを開始するようにします。

  • CloudFormation はリポジトリを監視しているため、テンプレートファイルとスタックデプロイファイルにコミットした変更が検出され、スタックが自動的に更新されます。

  • CloudFormation コンソールでは、スタックの Git 同期設定のステータスに関する情報と、スタックに適用されたコミットの履歴を確認できます。コンソールには、Git 同期の再設定や問題のトラブルシューティングを行うためのツールも用意されています。

スタックデプロイファイル

スタックデプロイファイルは、JavaScript Object Notation (JSON) または YAML の標準フォーマットファイルであり、CloudFormation スタックを管理するパラメータと値を含みます。このファイルの変更は監視されます。ファイルへの変更がリポジトリにコミットされると、関連するスタックが自動的に更新されます。

スタックデプロイファイルには、キーと値のペアと 2 つのディクショナリが含まれます。

  • template-file-path

    これは CloudFormation テンプレートファイルの完全なリポジトリパスです。テンプレートファイルは、このデプロイファイルに関連付けられた CloudFormation スタックのリソースを宣言します。

  • parameters

    パラメータディクショナリには、スタック内のリソースを構成するキーと値のペアが含まれます。スタックデプロイファイルには、最大 50 個のパラメータを含めることができます。

  • tags

    タグディクショナリには、スタックにあるリソースの特定、および分類に使用できる任意のキーと値のペアが含まれます。スタックデプロイファイルには、最大 50 個のタグを含めることができます。

独自のスタックデプロイファイルを指定することも、Git 同期で作成し、プルリクエストを自動的にリポジトリに送信することもできます。スタックのデプロイファイルを編集し、変更をリポジトリにコミットすることで、パラメータとタグを管理できます。

Git 同期スタックデプロイファイルの例を次に示します。

template-file-path: ./fargate-srvc/my-stack-template.yaml parameters: image: public.ecr.aws/lts/nginx:latest task_size: x-small max_capacity: 5 port: 8080 env: production tags: cost-center: '123456' org: 'AWS'

CloudFormation テンプレートファイル

テンプレートファイルには、CloudFormation スタックを構成する AWS リソースの宣言が含まれています。テンプレートは JavaScript Object Notation (JSON) または YAML 標準形式のファイルで保存されます。CloudFormation Template Designer または任意のテキストエディターでテンプレートを作成および編集できます。Git 同期では、テンプレートファイルは Git リポジトリに保存され、スタックデプロイファイルによって参照されます。テンプレートを編集し、変更をリポジトリにコミットすると、スタックを管理できます。

例や AWS CloudFormation Template Designer のチュートリアルなど、テンプレートの詳細については、「AWS CloudFormation テンプレートの使用」を参照してください。

テンプレート定義リポジトリ

テンプレート定義リポジトリは、Git 同期を通じて CloudFormation にリンクされている Git リポジトリです。リポジトリは、CloudFormation テンプレートとスタックデプロイファイルへの変更について監視されます。ファイルへの変更がコミットされると、関連するスタックが自動的に更新されます。

重要

Git 同期コンソールでテンプレート定義リポジトリを設定する際、Git 接続から正しいリポジトリとブランチを選択します。Git 同期は、設定したリポジトリとブランチのみを監視して、CloudFormation テンプレートとスタックデプロイファイルへの変更を確認します。

Git 同期は GitHubGitHub EnterpriseGitLab、および Bitbucket のリポジトリをサポートしています。