

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

# コードパイプラインの概要
<a name="cfct-codepipeline-overview"></a>

設定パッケージには、Amazon Simple Storage Service (Amazon S3) と が必要です AWS CodePipeline。設定パッケージには、次の項目が含まれています。
+ マニフェストファイル
+ 付随するテンプレートのセット
+ AWS Control Tower 環境のカスタマイズを記述および実装するためのその他の JSON ファイル

デフォルトでは、`_custom-control-tower-configuration.zip` 設定パッケージは、次の命名規則に従って Simple Storage Service (Amazon S3) バケットにロードされます。

`custom-control-tower-configuration-{{accountID}}-{{region}}`.

**注記**  
 デフォルトでは、CfCT はパイプラインソースを格納するために Amazon S3 バケットを作成します。ほとんどのお客様は、このデフォルトのままで構いません。既存の AWS CodeCommit リポジトリがある場合は、ソースの場所を AWS CodeCommit リポジトリに変更できます。詳細については、「AWS CodePipeline ユーザーガイド**」の「[CodePipeline でパイプラインを編集する](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-edit.html)」を参照してください。

マニフェストファイル**は、ランディングゾーンをカスタマイズするためにデプロイできる AWS リソースについて記述するテキストファイルです。CodePipeline は次のタスクを実行します。
+ マニフェストファイル、それに付随するテンプレートのセット、およびその他の JSON ファイルを抽出する
+ マニフェストとテンプレートの検証を実行する
+ CfCT マニフェストファイル内のセクションを呼び出して特定の[パイプラインステージ](#code-pipeline-stages)を実行する。

マニフェストファイルをカスタマイズし、設定パッケージのファイル名からアンダースコア (\_) を削除して設定パッケージを更新すると、 AWS CodePipelineが自動的に開始されます。

**アンダースコアを覚えておく**  
設定パッケージのサンプルファイル名はアンダースコア (\_) で始まるため、 AWS CodePipeline は自動的に開始されません。設定パッケージのカスタマイズが完了したら、 AWS CodePipelineでデプロイをトリガーするため、アンダースコア (\_) を付けずにファイル `custom-control-tower-configuration.zip` をアップロードします。

## AWS CodePipeline ステージ
<a name="code-pipeline-stages"></a>

CfCT パイプラインでは、AWS Control Tower 環境を実装および更新するためにいくつかの AWS CodePipeline ステージが必要です。

1. **ソースステージ**

   ソースステージは最初のステージです。カスタマイズされた設定パッケージによって、このパイプラインステージが開始されます。のソースは、設定パッケージをホストできる Amazon S3 バケットまたは AWS CodeCommit リポジトリのいずれか AWS CodePipeline です。

1. **ビルドステージ**

   ビルドステージでは AWS CodeBuild 、設定パッケージの内容を検証する必要があります。これらのチェックには、 および を使用して、`manifest.yaml`ファイルの構文とスキーマ、パッケージに含まれるすべての CloudFormation テンプレート、またはリモートでホストされているすべてのテンプレートのテスト CloudFormation `validate-template`が含まれます`cfn_nag`。マニフェストファイルと CloudFormation テンプレートがテストに合格すると、パイプラインは次のステージに進みます。テストに不合格だった場合は、CodeBuild ログを確認して問題を特定し、必要に応じて設定ソースファイルを編集できます。

1. **手動承認ステージ (オプション)**

   手動承認ステージはオプションです。このステージを有効にすると、設定パイプラインをさらに制御できます。承認が得られるまで、デプロイ中のパイプラインは一時停止します。手動承認をオプトインするには、スタックを起動したときに、**[Pipeline Approval Stage]** (パイプライン承認ステージ) パラメータを **[Yes]** (はい) に変更します。

1. **ポリシーステージ**

   ポリシーステージは、サービスコントロールポリシー (SCP) またはリソースコントロールポリシー (RCP) ステートマシンを呼び出して、SCPsまたは RCP を作成する AWS Organizations APIs を呼び出します。 RCPs

1. **CloudFormation リソースステージ**

    CloudFormation リソースステージは、スタックセットステートマシンを呼び出して、マニフェストファイルで指定したアカウントまたは組織単位 (OUs) のリストで指定されたリソースをデプロイします。ステートマシンは、マニフェストファイルで指定された順序で CloudFormation リソースを作成します。リソースの依存関係を指定するには、マニフェストファイルでリソースが指定されている順序を調整します。マニフェストファイル内のリソースの順序は、依存関係を指定する唯一の方法です。