翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CodePipeline にクロスリージョンアクションを追加する
AWS CodePipeline には、自動リリースプロセスのビルド、テスト、およびデプロイリソースの設定に役立つ複数のアクションが含まれています。パイプラインとは異なる AWS リージョン内にあるアクションをパイプラインに追加できます。AWS サービスがアクションプロバイダーであり、このアクションタイプ/プロバイダータイプがパイプラインとは異なる AWS リージョンにある場合、これはクロスリージョンアクションです。
クロスリージョンアクションはサポートされており、これらのアクションでのみ作成できます。AWSリージョン CodePipeline がサポートされています。サポートされているリストについてはAWSCodePipeline のリージョンについては、を参照してくださいAWS の CodePipeline 中のクォータ。
パイプラインにクロスリージョンアクションを追加するには、コンソール、AWS CLI、または AWS CloudFormation を使用できます。
の特定のアクションタイプ CodePipeline 特定の場合にのみ使用できない場合があります。AWS地域。また、あるアクションタイプが利用可能な AWS リージョンがある一方、そのアクションタイプに特定の AWS プロバイダーを利用できない場合もあることに注意してください。
パイプラインを作成または編集する場合は、パイプラインリージョンにアーティファクトバケットが必要であり、アクションを実行する予定のリージョンごとに 1 つのアーティファクトバケットが必要です。ArtifactStores
パラメータの詳細については、「CodePipeline パイプライン構造リファレンス」をご参照ください。
CodePipeline は、クロスリージョンアクションを実行する際に、ある AWS リージョンから他のリージョンへのアーティファクトのコピーを処理します。
コンソールを使用してパイプラインまたはクロスリージョンアクションを作成する場合は、デフォルトのアーティファクトバケットは、次のように設定されます。 CodePipeline アクションがあるリージョンで。AWS CLI、AWS CloudFormation、または SDK を使用してパイプラインまたはクロスリージョンアクションを作成する場合は、アクションの作成先のリージョンごとにアーティファクトバケットを指定します。
アーティファクトバケットと暗号化キーは、クロスリージョンアクションと同じ AWS リージョンで、パイプラインと同じアカウントに作成する必要があります。
以下のアクションタイプのクロスリージョンアクションは作成できません。
-
ソースアクション
-
サードパーティーアクション
-
カスタムアクション
パイプラインに含まれているクロスリージョンアクションがステージの一部である場合、 CodePipeline クロスリージョンアクションの入力アーティファクトのみを、アクションのリージョンにレプリケートします。
パイプラインリージョンとリージョン CloudWatch イベントの変更検出リソースは同じままです。パイプラインがホストされているリージョンは変わりません。
パイプラインのクロスリージョンアクションを管理する (コンソール)
♪ CodePipeline コンソールを使用して既存のパイプラインにクロスリージョンアクションを追加します。[パイプラインの作成] ウィザードを使用してクロスリージョンアクションを含む新しいパイプラインを作成するには、「パイプラインを作成する (コンソール)」を参照してください。
コンソールでパイプラインステージのクロスリージョンアクションを作成するには、アクションプロバイダーと、そのプロバイダーのリージョンで作成したリソースを一覧表示する [リージョン] フィールドを選択します。クロスリージョンアクションを追加すると、CodePipeline は、このアクションのリージョンで別のアーティファクトバケットを使用します。クロスリージョンのアーティファクトバケットの詳細については、「CodePipeline パイプライン構造リファレンス」を参照してください。
パイプラインステージにクロスリージョンアクションを追加する (コンソール)
コンソールを使用してパイプラインにクロスリージョンアクションを追加します。
変更を保存する際にパイプラインが実行中の場合、その実行は完了しません。
クロスリージョンアクションを追加するには
-
コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) にサインインします。 -
パイプラインを選択し、[編集] を選択します。
-
図の下部で、新しいステージを追加する場合は [+ Add stage (+ ステージの追加)] を選択します。既存のステージにアクションを追加する場合は、[Edit stage (ステージの編集)] を選択します。
-
On編集: <Stage>で、+ アクショングループの追加をクリックして、シリアルアクションを追加します。または、パラレルアクションを追加する場合は、[+Add action (+アクションの追加)] を追加します。
-
[アクションの編集] ページで、以下の操作を行います。
-
[アクション名] に、クロスリージョンアクションの名前を入力します。
-
[Action provider (アクションプロバイダー)] で、アクションプロバイダーを選択します。
-
[リージョン] で、アクションのリソースを作成した、または作成する予定の AWS リージョンを選択します。リージョンを選択すると、このリージョンで使用できるリソースが一覧表示されて選択できるようになります。[リージョン] フィールドは、このアクションタイプとプロバイダータイプに対して作成済みの AWS リソースの場所を示します。このフィールドには、アクションプロバイダが AWS サービスであるアクションのみが表示されます。-リージョンフィールドのデフォルトは同じですAWS リージョンパイプラインとして.
-
[入力アーティファクト] で、前のステージからの適切な入力を選択します。たとえば、前のステージがソースステージである場合は、[SourceArtifact] を選択します。
-
設定するアクションプロバイダーのすべての必須フィールドに入力します。
-
[出力アーティファクト] で、次のステージへの適切な出力を選択します。たとえば、次のステージがデプロイステージである場合は、[BuildArtifact] を選択します。
-
[Save] (保存) を選択します。
-
-
On編集: <Stage>で、Done。
-
[Save] (保存) を選択します。
パイプラインステージのクロスリージョンアクションを編集する (コンソール)
コンソールを使用してパイプラインの既存のクロスリージョンアクションを編集します。
変更を保存する際にパイプラインが実行中の場合、その実行は完了しません。
クロスリージョンアクションを編集するには
-
コンソール (https://console.aws.amazon.com/codesuite/codepipeline/home.
) にサインインします。 -
パイプラインを選択し、[編集] を選択します。
-
[Edit stage (ステージの編集)] を選択します。
-
On編集: <Stage>で、既存のアクションを編集するためのアイコンを選択します。
-
[アクションの編集] ページで、必要に応じてフィールドを変更します。
-
On編集: <Stage>で、Done。
-
[Save] (保存) を選択します。
パイプラインステージからクロスリージョンアクションを削除する (コンソール)
コンソールを使用してパイプラインから既存のクロスリージョンアクションを削除します。
変更を保存する際にパイプラインが実行中の場合、その実行は完了しません。
クロスリージョンアクションを削除するには
-
コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) にサインインします。 -
パイプラインを選択し、[編集] を選択します。
-
[Edit stage (ステージの編集)] を選択します。
-
On編集: <Stage>で、既存のアクションを削除するためのアイコンを選択します。
-
On編集: <Stage>で、Done。
-
[Save] (保存) を選択します。
パイプラインにクロスリージョンアクションを追加する (CLI)
AWS CLI を使用して既存のパイプラインにクロスリージョンアクションを追加できます。
AWS CLI を使用してパイプラインステージのクロスリージョンアクションを作成するには、設定アクションとオプションの region
フィールドを追加します。また、アクションのリージョンにアーティファクトバケットを作成しておく必要があります。単一リージョンパイプラインの artifactStore
パラメータを指定する代わりに、artifactStores
パラメータを使用して各リージョンのアーティファクトバケットのリストを含めます。
このチュートリアルおよびその例では、リージョン A
がパイプラインの作成先のリージョンです。このアカウントでは、CodePipeline で使用するパイプラインアーティファクトやサービスロールの保存先である リージョン A
Amazon S3 バケットにアクセスできます。RegionB
のリージョンは CodeDeploy で使用されるアプリケーション、デプロイグループ、およびサービスロール CodeDeploy が作成される。
前提条件
以下を作成しておく必要があります。
-
リージョン A
のパイプライン。 -
リージョン B
の Amazon S3 アーティファクトバケット -
アクションのためのリソース (たとえば、 CodeDeploy のクロスリージョンデプロイアクションのアプリケーションとデプロイグループ
RegionB
。
パイプラインにクロスリージョンアクションを追加する (CLI)
AWS CLI を使用してクロスリージョンアクションをパイプラインに追加します。
クロスリージョンアクションを追加するには
-
リージョン A
のパイプラインで、get-pipeline コマンドを実行し、パイプライン構造を JSON ファイルにコピーします。例えば、MyFirstPipeline
という名前のパイプラインに対して、以下のコマンドを実行します。aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
このコマンドは何も返しませんが、作成したファイルは、コマンドを実行したディレクトリにあります。
-
region
フィールドを追加して、アクションのリージョンとリソースを含むクロスリージョンアクションを関連付けた新しいステージを追加します。以下の JSON サンプルは、プロバイダーを CodeDeploy とするクロスリージョンデプロイアクションを関連付けたデプロイステージを、新しいリージョンus-east-1
に追加します。{ "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "
RegionB
", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name
", "DeploymentGroupName": "name
" }, "runOrder": 1 } -
パイプライン構造で、
artifactStore
フィールドを削除し、新しいクロスリージョンアクションのartifactStores
マップを追加します。マッピングには、アクションがある AWS リージョンごとにエントリを含める必要があります。マッピングのエントリごとに、リソースはそれぞれの AWS リージョンにある必要があります。以下の例で、ID-A
は、リージョン A
は暗号化キー ID、ID-B
は、リージョン B
の暗号化キー ID を表します。"artifactStores":{ "
RegionA
":{ "encryptionKey
":{ "id":"ID-A
", "type":"KMS" }, "location":"Location1
", "type":"S3" }, "RegionB
":{ "encryptionKey
":{ "id":"ID-B
", "type":"KMS" }, "location":"Location2
", "type":"S3" } }以下の JSON 例では、us-west-2 バケットは
my-storage-bucket
と表示されており、my-storage-bucket-us-east-1
という名前の新しい us-east-1 バケットを追加します。"artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } },
-
get-pipeline コマンドを使用して取得したパイプライン構造を使用している場合、JSON ファイルから
metadata
行を削除します。それ以外の場合は、update-pipeline コマンドで使用することはできません。"metadata": { }
行と、"created"
、"pipelineARN"
、"updated"
フィールドを削除します。例えば、構造から以下の行を削除します。
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" }ファイルを保存します。
-
変更を適用するには、パイプライン JSON ファイルを指定して、update-pipeline コマンドを実行します。
重要 ファイル名の前に必ず
file://
を含めてください。このコマンドでは必須です。aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
このコマンドは、編集したパイプラインの構造全体を返します。出力は以下のようになります。
{ "pipeline": { "version": 4, "roleArn": "
ARN
", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ { "name": "SourceArtifact" } ], "configuration": { "PollForSourceChanges": "false", "BranchName": "main", "RepositoryName": "MyTestRepo" }, "runOrder": 1 } ] }, { "name": "Deploy", "actions": [ { "inputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Deploy", "region": "us-east-1", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "name
", "DeploymentGroupName": "name
" }, "runOrder": 1 } ] } ], "name": "AnyCompanyPipeline", "artifactStores": { "us-west-2": { "type": "S3", "location": "my-storage-bucket" }, "us-east-1": { "type": "S3", "location": "my-storage-bucket-us-east-1" } } } }注記 update-pipeline コマンドは、パイプラインを停止します。update-pipeline コマンドを実行したときにパイプラインによりリビジョンが実行されている場合、その実行は停止します。更新されたパイプラインによりそのリビジョンを実行するには、パイプラインを手動で開始する必要があります。パイプラインを手動で開始するには
start-pipeline-execution
コマンドを使用します。 -
パイプラインを更新したら、クロスリージョンのアクションがコンソールに表示されます。
パイプラインにクロスリージョンアクションを追加する (AWS CloudFormation)
AWS CloudFormation を使用して既存のパイプラインにクロスリージョンアクションを追加します。
AWS CloudFormation を使用してクロスリージョンアクションを追加するには
-
この例に示すように、
Region
パラメータをテンプレートのActionDeclaration
リソースに追加します。ActionDeclaration: Type: Object Properties: ActionTypeId: Type: ActionTypeId Required: true Configuration: Type: Map InputArtifacts: Type: Array ItemType: Type: InputArtifact Name: Type: String Required: true OutputArtifacts: Type: Array ItemType: Type: OutputArtifact RoleArn: Type: String RunOrder: Type: Integer
Region:
Type: String
-
Mappings
で、この例で示しているように、キーSecondRegionMap
およびRegionA
の値をマップするRegionB
という名前のマッピング用のリージョンマップを追加します。Pipeline
リソースのartifactStore
フィールドで、新しいクロスリージョンアクションのartifactStores
マップを以下のように追加します。Mappings: SecondRegionMap:
RegionA
: SecondRegion: "RegionB
"RegionB
: SecondRegion: "RegionA
" ... Properties: ArtifactStores: - Region:RegionB
ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionB
- Region:RegionA
ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-RegionA
以下の YAML 例では、
リージョン A
バケットをus-west-2
、新しいリージョン B
バケットをeu-central-1
とします。Mappings: SecondRegionMap: us-west-2: SecondRegion: "eu-central-1" eu-central-1: SecondRegion: "us-west-2" ... Properties: ArtifactStores: - Region: eu-central-1 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-eu-central-1 - Region: us-west-2 ArtifactStore: Type: "S3" Location: test-cross-region-artifact-store-bucket-us-west-2
-
更新したテンプレートをローカルコンピュータに保存し、AWS CloudFormation コンソールを開きます。
-
スタックを選択し、[既存スタックの変更セットの作成] を選択します。
-
テンプレートをアップロードし、AWS CloudFormation に示された変更を表示します。これらがスタックに加えられる変更です。新しいリソースがリストに表示されています。
-
[Execute] (実行) を選択します。