

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

# CodePipeline でパイプラインを編集する
<a name="pipelines-edit"></a>

パイプラインは、実行する必要があるステージやアクションなど、AWS CodePipeline が従うリリースプロセスを記述します。パイプラインを編集して、要素を追加または削除することができます。ただし、パイプラインを編集するときには、パイプライン名またはパイプラインメタデータなどの値を変更することはできません。

パイプライン編集ページを使用して、パイプラインタイプ、変数、およびトリガーを編集できます。パイプラインのステージとアクションを追加または変更することもできます。

パイプラインを作成する場合とは異なり、パイプラインを編集しても、パイプラインを通して最新のリビジョンが実行されることはありません。編集後のパイプラインを通して、最新のリビジョンを実行する場合は、手動で再実行する必要があります。それ以外の場合、編集後のパイプラインはソースステージで設定されているソースの場所の次回変更時に実行されます。詳細については、「[パイプラインを手動で開始する](pipelines-rerun-manually.md)」を参照してください。

パイプラインとは異なる AWS リージョン内にあるアクションをパイプラインに追加できます。AWS のサービス がアクションプロバイダーであり、このアクションタイプ/プロバイダータイプがパイプラインとは異なる AWS リージョンにある場合、これはクロスリージョンアクションです。クロスリージョンアクションの詳細については、「[CodePipeline にクロスリージョンアクションを追加する](actions-create-cross-region.md)」を参照してください。

CodePipeline は、ソースコードの変更がプッシュされたときに変更検出方法を使用してパイプラインを開始します。この検出方法はソースタイプに基づいています。
+ CodePipeline は、Amazon CloudWatch Events を利用して、CodeCommit ソースリポジトリや Amazon S3 ソースバケットの変更を検出します。

**注記**  
変更検出リソースは、コンソールを使用するときに自動的に作成されます。コンソールを使用してパイプラインを作成または編集すると、追加のリソースが作成されます。AWS CLI を使用してパイプラインを作成するときは、追加のリソースを各自で作成する必要があります。CodeCommit パイプラインの作成または更新の詳細については、「[CodeCommit ソースに対する EventBridge ルールを作成する (CLI)](pipelines-trigger-source-repo-changes-cli.md)」を参照してください。CLI を使用した Amazon S3 パイプラインの作成または更新の詳細については、「[Amazon S3 ソースに対する EventBridge ルールを作成する (CLI)](create-cloudtrail-S3-source-cli.md)」を参照してください。

**Topics**
+ [パイプラインを編集する (コンソール)](#pipelines-edit-console)
+ [パイプラインを編集する (AWS CLI)](#pipelines-edit-cli)

## パイプラインを編集する (コンソール)
<a name="pipelines-edit-console"></a>

CodePipeline コンソールを使用して、パイプラインのステージやステージ内のアクションを追加、編集、または削除できます。

パイプラインを更新すると、CodePipeline はすべての実行中のアクションを正常に完了し、実行中のアクションが完了したステージとパイプラインの実行に失敗します。パイプラインが更新されたら、パイプラインを再実行する必要があります。パイプラインの実行に関する詳細については、「[パイプラインを手動で開始する](pipelines-rerun-manually.md)」を参照してください。

**パイプラインを編集するには**

1. AWS マネジメントコンソール にサインインして、CodePipeline コンソール [(https://console.aws.amazon.com/codesuite/codebuild/home)](https://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

   AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。

1. **[名前]** で、編集するパイプラインの名前を選択します。これにより、パイプラインの詳細ビューが開いて、パイプラインの各ステージの各アクションの状態などがわかります。

1. パイプライン詳細ページで、[**編集**] を選択します。

1. パイプラインタイプを編集するには、**[編集: パイプラインのプロパティ]** カードで **[編集:** を選択します。次のいずれかのオプションを選択し、**[完了]** を選択します。
   + **V1** タイプのパイプラインは、標準のパイプライン、ステージ、アクションレベルのパラメータを含む JSON 構造になっています。
   + **V2** タイプのパイプラインは、V1 タイプと同じ構造ですが、トリガーとパイプラインレベルの変数など、追加のパラメータがサポートされています。

   パイプラインのタイプによって特徴および価格が異なります。詳細については、「[パイプラインのタイプ](pipeline-types.md)」を参照してください。

1. パイプライン変数を編集するには、**[編集: 変数]** カードの**[変数の編集]** を選択します。パイプラインレベルの変数を追加または変更し、**[完了]** を選択します。

   パイプラインレベルの変数の詳細については、「[変数リファレンス](reference-variables.md)」を参照してください。パイプラインの実行時に渡されるパイプラインレベルの変数のチュートリアルについては、「[チュートリアル: パイプラインレベルの変数を使用する](tutorials-pipeline-variables.md)」を参照してください。
**注記**  
パイプラインレベルの変数の追加はオプションですが、パイプラインレベルの変数に値が設定されていない場合、パイプラインの実行は失敗します。

1. パイプライントリガーを編集するには、**[編集: トリガー]** カードで **[トリガーの編集]** を選択します。トリガーを追加または変更し、**[完了]** を選択します。

   トリガーの追加の詳細については、Bitbucket Cloud、GitHub (GitHub アプリ経由)、GitHub Enterprise Server、GitLab.com、または GitLab セルフマネージド、[GitHub コネクション](connections-github.md) などへの接続を作成する手順を参照してください。

1. **[編集]** ページでステージとアクションを編集するには、次のいずれかの操作を行います。
   + ステージを編集するには、[**ステージを編集**] を選択します。アクションは既存のアクションに対して直列にも並列にも追加できます。

     これらのアクションの編集アイコンを選択して、このビューでアクションを編集することもできます。アクションを削除するには、そのアクションの削除アイコンを選択します。
   + アクションを編集するには、そのアクションの編集アイコンを選択し、[**アクションの編集**] で値を変更します。アスタリスク (**\$1**) の付いた項目は必須です。
     + CodeCommit リポジトリ名およびブランチでは、このパイプラインに対して作成される Amazon CloudWatch Events ルールを示すメッセージが表示されます。CodeCommit ソースを削除すると、Amazon CloudWatch Events ルールが削除されることを示すメッセージが表示されます。
     + Amazon S3 ソースバケットに対して、Amazon CloudWatch Events ルールおよび AWS CloudTrail 証跡がこのパイプラインに作成されることを示すメッセージが表示されます。Amazon S3 ソースを削除すると、Amazon CloudWatch Events ルールおよび AWS CloudTrail 証跡が削除されることを示すメッセージが表示されます。AWS CloudTrail 証跡が他のパイプラインで使用されている場合には、この証跡は削除されませんが、データイベントは削除されます。
   + ステージを追加するには、ステージを追加するパイプラインのポイントで [**\$1 Add stage (\$1 ステージを追加)**] を選択します。ステージの名前を入力し、少なくとも 1 つのアクションをそのステージに追加します。アスタリスク (**\$1**) の付いた項目は必須です。
   + ステージを削除するには、そのステージの削除アイコンを選択します。ステージとそのすべてのアクションが削除されます。
   + 障害時に自動的にロールバックするようにステージを設定するには、**[ステージを編集]** を選択し、**[ステージ障害時の自動ロールバックを設定]** チェックボックスをオンにします。

   たとえば、パイプラインのステージにシリアルアクションを追加する場合は、以下のようにします。

   1. アクションを追加するステージで、[**Edit stage (ステージを編集)**] を選択し、[**\$1 Add action group (\$1 アクショングループの追加)**] を選択します。

   1. 

      [**アクションを編集**] の、[**アクション名**] でアクションの名前を入力します。[**Action provider (アクションプロバイダー)**] リストには、プロバイダーのオプションがカテゴリ別に表示されます。[**デプロイ**] などのカテゴリを探します。カテゴリで、プロバイダー (**AWS CodeDeploy** など) を選択します。[**リージョン**] で、リソースの作成先または作成予定先の AWS リージョンを選択します。**Region** フィールドは、このアクションタイプとプロバイダータイプに対して作成済みの AWS のリソースの場所を示します。このフィールドには、アクションプロバイダーが AWS のサービス であるアクションのみが表示されます。**Region** フィールドは、デフォルトでパイプラインと同じ AWS のリージョンになります。

      アクションプロバイダーの追加例と各プロバイダーのデフォルトフィールドの使用例については、「[カスタムパイプラインを作成する (コンソール)](pipelines-create.md#pipelines-create-console)」を参照してください。

      CodeBuild をビルドアクションまたはテストアクションとしてステージに追加するには、*CodeBuild ユーザーガイド* の [CodeBuild で CodePipeline を使用して、コードをテストしビルドを実行する](https://docs.aws.amazon.com/codebuild/latest/userguide/how-to-create-pipeline.html) を参照してください。
**注記**  
GitHub などの一部のアクションプロバイダーでは、アクションの設定を完了するために、プロバイダーのウェブサイトに接続する必要があります。プロバイダーのウェブサイトに接続するときは、そのウェブサイトの認証情報を使用していることを確認します。AWS の認証情報を使用しないでください。

   1. アクションの設定が完了したら、[**保存**] を選択します。
**注記**  
コンソールビューでステージの名前を変更することはできません。新しいステージを変更後の名前で追加し、その後に古いステージを削除できます。古いステージを削除する前に、必要なすべてのアクションを新しいステージに追加したことを確認してください。

1. パイプラインの編集が終わったら、[**保存**] を選択して概要ページに戻ります。
**重要**  
 変更を保存したら、元に戻すことはできません。パイプラインを再度編集する必要があります。変更を保存するときにパイプラインによりリビジョンが実行されている場合、その実行は完了しません。編集したパイプラインにより特定のコミットまたは変更を実行する場合は、パイプラインから手動で実行する必要があります。それ以外の場合、次のコミットまたは変更はパイプラインにより自動的に実行されます。

1. アクションをテストするには、[**Release change**] を選択して、パイプラインによりそのコミットを処理し、パイプラインのソースステージで指定したソースに変更をコミットします。または [パイプラインを手動で開始する](pipelines-rerun-manually.md) を使用して手動で変更をリリースする場合、AWS CLI で次の手順に従います。

## パイプラインを編集する (AWS CLI)
<a name="pipelines-edit-cli"></a>

パイプラインを編集するには、**update-pipeline** コマンドを使用します。

パイプラインを更新すると、CodePipeline はすべての実行中のアクションを正常に完了し、実行中のアクションが完了したステージとパイプラインの実行に失敗します。パイプラインが更新されたら、パイプラインを再実行する必要があります。パイプラインの実行に関する詳細については、「[パイプラインを手動で開始する](pipelines-rerun-manually.md)」を参照してください。

**重要**  
パートナーアクションを含むパイプラインの編集に AWS CLI を使用することはできますが、パートナーアクションの JSON を手動で編集することはできません。これを行った場合、パートナーアクションはパイプライン更新後に失敗します。

**パイプラインを編集するには**

1. ターミナルセッション (Linux、macOS または Unix) またはコマンドプロンプト (Windows) を開き、**get-pipeline** コマンドを実行して、パイプライン構造を JSON ファイルにコピーします。たとえば、**MyFirstPipeline** という名前のパイプラインに対して、以下のコマンドを入力します。

   ```
   aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
   ```

   このコマンドは何も返しませんが、作成したファイルは、コマンドを実行したディレクトリにあります。

1. 任意のプレーンテキストエディタで JSON ファイルを開き、パイプラインに加える変更を反映するようにファイルの構造を変更します。たとえば、ステージを追加または削除すること、または、既存のステージに別のアクションを追加することができます。

   以下の例では、pipeline.json ファイルに別のデプロイステージを追加する方法を示しています。このステージは、*Staging* という名前の最初のデプロイステージの後に実行されます。
**注記**  
ここで示しているのは、そのファイルの一部であり、構造全体ではありません。詳細については、「[CodePipeline パイプライン構造リファレンス](reference-pipeline-structure.md)」を参照してください。

   ```
   ,      
           {
               "name": "Staging",
               "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "MyApp"
                               }
                           ],
                           "name": "Deploy-CodeDeploy-Application",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "CodePipelineDemoApplication",
                               "DeploymentGroupName": "CodePipelineDemoFleet"
                           },
                           "runOrder": 1
                       }
                   ]
                },      
           {
               "name": "Production",
               "actions":  [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "MyApp"
                               }
                           ],
                           "name": "Deploy-Second-Deployment",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                           "ApplicationName": "CodePipelineDemoApplication",
                           "DeploymentGroupName": "CodePipelineProductionFleet"
                           },
                           "runOrder": 1
                       }
                   ]
           }
       ]
   }
   ```

   CLI を使用して承認アクションをパイプラインに追加する方法については、「[CodePipeline でパイプラインにマニュアルの承認アクションを追加する](approvals-action-add.md)」を参照してください。

   JSON ファイルの `PollForSourceChanges` パラメータが次のように設定されていることを確認します。

   ```
                   "PollForSourceChanges": "false",
   ```

   CodePipeline は、Amazon CloudWatch Events を利用して、CodeCommit ソースリポジトリやブランチ、または Amazon S3 ソースバケットの変更を検出します。次のステップには、手動でこれらのリソースを作成する手順が含まれています。フラグを `false` に設定すると、定期的なチェックが無効になります。これは、推奨される変更検出メソッドを使用する場合には必須ではありません。

1. パイプラインとは異なるリージョンにビルド、テスト、またはデプロイアクションを追加するには、パイプライン構造に以下を追加する必要があります。詳細な手順については、「[CodePipeline にクロスリージョンアクションを追加する](actions-create-cross-region.md)」を参照してください。
   + `Region` パラメータをアクションのパイプライン構造に追加します。
   + アクションの作成先のリージョンごとにアーティファクトバケットを指定するには、`artifactStores` パラメータを使用します。

1. **get-pipeline** コマンドを使用して取得したパイプライン構造を使用している場合、JSON ファイルの構造を変更する必要があります。`metadata` コマンドが使用できるように、ファイルから **update-pipeline** 行を削除する必要があります。JSON ファイルのパイプライン構造からセクションを削除します (`"metadata": { }` 行と、`"created"`、`"pipelineARN"`、および`"updated"`フィールド)。

   例えば、構造から以下の行を削除します。

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name",
     "created": "date",
     "updated": "date"
     }
   ```

   ファイルを保存します。

1. パイプラインの編集に CLI を使用する場合には、推奨される変更検出リソースを手動でパイプライン用に管理する必要があります。
   + CodeCommit リポジトリでは、 CloudWatch Events ルールを作成する必要があります。詳細については、「[CodeCommit ソースに対する EventBridge ルールを作成する (CLI)](pipelines-trigger-source-repo-changes-cli.md)」を参照してください。
   + Amazon S3 ソースは、CloudWatch Events ルールおよび AWS CloudTrail 証跡を作成する必要があります。詳細については、「[EventBridge と を使用する Amazon S3 ソースアクションへの接続 AWS CloudTrail](create-cloudtrail-S3-source.md)」を参照してください。

1. 変更を適用するには、パイプライン JSON ファイルを指定して、**update-pipeline** コマンドを実行します。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws codepipeline update-pipeline --cli-input-json file://pipeline.json
   ```

   このコマンドは、編集したパイプラインの構造全体を返します。
**注記**  
**update-pipeline** コマンドは、パイプラインを停止します。**update-pipeline** コマンドを実行したときにパイプラインによりリビジョンが実行されている場合、その実行は停止します。更新されたパイプラインによりそのリビジョンを実行するには、パイプラインを手動で開始する必要があります。

1. CodePipeline コンソールを開き、編集したパイプラインを選択します。

   そのパイプラインには、行った変更が示されます。ソース場所を次に変更すると、修正した構造のパイプラインによりそのリビジョンが実行されます。

1. 修正した構造のパイプラインによりその最新のリビジョンを手動で実行するには、**start-pipeline-execution** コマンドを実行します。詳細については、「[パイプラインを手動で開始する](pipelines-rerun-manually.md)」を参照してください。

パイプラインの構造および想定値の詳細については、「[CodePipeline パイプライン構造リファレンス](reference-pipeline-structure.md)」および [AWS CodePipeline API リファレンス](https://docs.aws.amazon.com/codepipeline/latest/APIReference) を参照してください。