

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

# ステージロールバックの設定
<a name="stage-rollback"></a>

ステージは、そのステージで成功した実行にロールバックできます。失敗時にステージをロールバックするように事前設定することも、手動でステージをロールバックすることもできます。ロールバック操作により、新しい実行が開始されます。ロールバック用に選択したターゲットパイプライン実行は、ソースリビジョンと変数を取得するために使用します。

実行のタイプ (標準またはロールバックのいずれか) は、パイプラインの履歴、パイプラインの状態、パイプライン実行の詳細に表示されます。

**Topics**
+ [ロールバックに関する考慮事項](#stage-rollback-considerations)
+ [ステージを手動でロールバックする](stage-rollback-manual.md)
+ [ステージの自動ロールバックを設定する](stage-rollback-auto.md)
+ [実行リストでロールバックステータスを表示する](stage-rollback-view-listing.md)
+ [ロールバックステータスの詳細を表示する](stage-rollback-view-details.md)

## ロールバックに関する考慮事項
<a name="stage-rollback-considerations"></a>

ステージのロールバックに関する考慮事項は以下のとおりです。
+ ソースステージをロールバックすることはできません。
+ パイプラインは、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、以前の実行にロールバックできます。
+ ロールバック実行タイプであるターゲット実行 ID にロールバックすることはできません。
+ CodePipeline は、ロールバック先の実行の変数とアーティファクトを使用します。

# ステージを手動でロールバックする
<a name="stage-rollback-manual"></a>

コンソールまたは CLI を使用して、ステージを手動でロールバックできます。パイプラインは、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、以前の実行にロールバックできます。

「[ステージの自動ロールバックを設定する](stage-rollback-auto.md)」で説明しているように、失敗時に自動的にロールバックするようにステージを設定することもできます。

## ステージを手動でロールバックする (コンソール）
<a name="stage-rollback-console"></a>

コンソールを使用して、ステージをターゲットパイプライン実行に手動でロールバックできます。ステージをロールバックすると、**Rollback** ラベルがコンソールのパイプライン可視化に表示されます。

**ステージを手動でロールバックする (コンソール）**

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

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

1. **[名前]** で、ロールバックするステージのパイプラインの名前を選択します。  
![\[CodePipeline でパイプラインの 2 つのステージの例を示す図。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/rollback-stage-first.png)

1. ステージで、**[ロールバックを開始]** を選択します。**[次にロールバック:]** ページが表示されます。

1. ステージをロールバックする先のターゲット実行を選択します。
**注記**  
利用可能なターゲットパイプライン実行のリストは、2024 年 2 月 1 日以降の現在のパイプラインバージョンのすべての実行になります。  
![\[CodePipeline でターゲット実行 ID を選択する例。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/rollback-stage-dialog.png)

次の図は、ステージをロールバックした後の新しい実行 ID の例を示しています。

![\[CodePipeline でステージをロールバックした後のパイプラインの例を示す図。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/stage-rolled-back.png)


## ステージを手動でロールバックする (CLI)
<a name="stage-rollback-cli"></a>

を使用してステージ AWS CLI を手動でロールバックするには、 `rollback-stage` コマンドを使用します。

また、「[ステージを手動でロールバックする](#stage-rollback-manual)」で説明しているように、ステージを手動でロールバックすることもできます。

**注記**  
利用可能なターゲットパイプライン実行のリストは、2024 年 2 月 1 日以降の現在のパイプラインバージョンのすべての実行になります。

**ステージを手動でロールバックするには (CLI)**

1. 手動ロールバックの CLI コマンドには、ステージで以前に成功したパイプライン実行の実行 ID が必要です。ターゲットパイプライン実行 ID を指定して取得するには、list-pipeline-executions コマンドでステージの成功した実行を返すフィルターを使用します。ターミナル (Linux、macOS、または Unix) またはコマンドプロンプト (Windows) を開き、 AWS CLI を使用して`list-pipeline-executions`コマンドを実行し、パイプラインの名前とステージで正常に実行するためのフィルターを指定します。この例では、MyFirstPipeline という名前のパイプラインの実行と、`deploys3` という名前のステージで成功した実行が出力に一覧表示されます。

   ```
   aws codepipeline list-pipeline-executions --pipeline-name MyFirstPipeline --filter succeededInStage={stageName=deploys3}
   ```

   出力で、ロールバック用に指定する、以前に成功した実行の実行 ID をコピーします。次のステップで、これをターゲット実行 ID として使用します。

1. ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開きます。次に AWS CLI を使用し、パイプラインの名前、ステージの名前、ロールバック先のターゲット実行を指定して `rollback-stage` コマンドを実行します。例えば、*MyFirstPipeline* という名前のパイプラインの Deploy という名前のステージをロールバックするには、次のように指定します。

   ```
   aws codepipeline rollback-stage --pipeline-name MyFirstPipeline --stage-name Deploy --target-pipeline-execution-id bc022580-4193-491b-8923-9728dEXAMPLE 
   ```

   出力は、ロールバックされた新しい実行の実行 ID を返します。これは、指定したターゲット実行のソースリビジョンとパラメータを使用する別の ID です。

# ステージの自動ロールバックを設定する
<a name="stage-rollback-auto"></a>

パイプラインのステージは、失敗時に自動的にロールバックするように設定できます。ステージは、失敗すると、最後の成功した実行にロールバックされます。パイプラインは、以前の実行が現在のパイプライン構造バージョンで開始されている場合にのみ、以前の実行にロールバックできます。自動ロールバック設定はパイプライン定義の一部であるため、成功したパイプライン実行がパイプラインステージ内に既に存在する場合にのみ、パイプラインステージが自動ロールバックされます。

## ステージの自動ロールバックを設定する (コンソール）
<a name="stage-rollback-auto-console"></a>

ステージは、指定した以前の成功した実行にロールバックできます。詳細については、「*CodePipeline API ガイド*」の「[RollbackStage](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RollbackStage.html)」を参照してください。

**ステージの自動ロールバックを設定する (コンソール）**

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

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

1. **[名前]** で、編集するパイプラインの名前を選択します。

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

1. **[編集]** ページで、編集するアクションに関連する **[ステージを編集する]** を選択します。

1. **[自動ステージ設定]**、**[ステージ障害時の自動ロールバックを設定]** の順に選択します。パイプラインに変更を保存します。  
![\[CodePipeline でロールバックステージを設定する編集画面の例。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/rollback-configure.png)

## ステージの自動ロールバックを設定する (CLI)
<a name="stage-rollback-auto-cli"></a>

を使用して、最後に成功した実行に自動的にロールバックするように失敗したステージ AWS CLI を設定するには、 コマンドを使用して、 [パイプライン、ステージ、アクションを作成する](pipelines-create.md)および で説明されているようにパイプラインを作成または更新します[CodePipeline でパイプラインを編集する](pipelines-edit.md)。
+ ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開きます。次に AWS CLI を使用し、パイプライン構造の失敗条件を指定して `update-pipeline` コマンドを実行します。次の例では、`S3Deploy` という名前のステージの自動ロールバックを設定します。

  ```
  {
                  "name": "S3Deploy",
                  "actions": [
                      {
                          "name": "s3deployaction",
                          "actionTypeId": {
                              "category": "Deploy",
                              "owner": "AWS",
                              "provider": "S3",
                              "version": "1"
                          },
                          "runOrder": 1,
                          "configuration": {
                              "BucketName": "static-website-bucket",
                              "Extract": "false",
                              "ObjectKey": "SampleApp.zip"
                          },
                          "outputArtifacts": [],
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ],
                  "onFailure": {
                      "result": "ROLLBACK"
                  }
              }
  ```

  ステージロールバックの失敗条件の設定の詳細については、「*CodePipeline API リファレンス*」の「[FailureConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_FailureConditions.html)」を参照してください。

## ステージの自動ロールバックを設定する (CloudFormation）
<a name="stage-rollback-auto-cfn"></a>

 CloudFormation を使用して、障害時に自動的にロールバックするようにステージを設定するには、 `OnFailure`パラメータを使用します。失敗すると、ステージは自動的に最新の成功した実行にロールバックされます。

```
OnFailure:
     Result: ROLLBACK
```
+ 次のスニペットに示すように、テンプレートを更新します。次の例では、`Release` という名前のステージの自動ロールバックを設定します。

  ```
  AppPipeline: 
    Type: AWS::CodePipeline::Pipeline 
    Properties: 
      RoleArn:
        Ref: CodePipelineServiceRole 
      Stages: 
        - 
          Name: Source 
          Actions: 
            - 
              Name: SourceAction
              ActionTypeId: 
                Category: Source 
                Owner: AWS 
                Version: 1 
                Provider: S3 
              OutputArtifacts: 
                - 
                  Name: SourceOutput 
              Configuration: 
                S3Bucket: 
                  Ref: SourceS3Bucket 
                S3ObjectKey: 
                  Ref: SourceS3ObjectKey 
              RunOrder: 1  
        - 
          Name: Release 
          Actions: 
            - 
              Name: ReleaseAction
              InputArtifacts: 
                - 
                  Name: SourceOutput 
              ActionTypeId: 
                Category: Deploy 
                Owner: AWS 
                Version: 1
                Provider: CodeDeploy 
              Configuration: 
                ApplicationName: 
                  Ref: ApplicationName
                DeploymentGroupName: 
                  Ref: DeploymentGroupName 
              RunOrder: 1   
         OnFailure:
              Result: ROLLBACK
      ArtifactStore: 
        Type: S3 
        Location:
          Ref: ArtifactStoreS3Location 
        EncryptionKey:
          Id: arn:aws:kms:useast-1:ACCOUNT-ID:key/KEY-ID
          Type: KMS
      DisableInboundStageTransitions: 
        - 
          StageName: Release 
          Reason: "Disabling the transition until integration tests are completed"
      Tags:
        - Key: Project
          Value: ProjectA
        - Key: IsContainerBased
          Value: 'true'
  ```

  ステージロールバックの失敗条件の設定の詳細については、「*CloudFormation ユーザーガイド*」で「`StageDeclaration`」の「[OnFailure](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)」を参照してください。

# 実行リストでロールバックステータスを表示する
<a name="stage-rollback-view-listing"></a>

ロールバック実行のステータスとターゲット実行 ID を表示できます。

## 実行のリストでロールバックステータスを表示する (コンソール）
<a name="stage-rollback-view-listing-console"></a>

コンソールを使用して、実行リストでロールバック実行のステータスとターゲット実行 ID を表示できます。

**実行のリストでロールバック実行ステータスを表示する (コンソール）**

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

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

1. **[名前]** で、表示するパイプラインの名前を選択します。

1. **[履歴]** を選択します。実行のリストに **Rollback** ラベルが表示されます。

![\[CodePipeline の Rollback ラベルを示す実行履歴ページの例。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/rollback-view-list-console.png)


詳細を表示する実行 ID を選択します。

## `list-pipeline-executions` を使用してロールバックステータスを表示する (CLI)
<a name="stage-rollback-view-listing-cli"></a>

CLI を使用して、ロールバック実行のステータスとターゲット実行 ID を表示できます。
+ ターミナル (Linux、macOS、Unix) またはコマンドプロンプト (Windows) を開き、 AWS CLI を使用して **list-pipeline-executions** のコマンドを実行します。

  ```
  aws codepipeline list-pipeline-executions --pipeline-name MyFirstPipeline 
  ```

  このコマンドは、パイプラインに関連付けられたすべての完了した実行のリストを返します。

  次の例は、ロールバック実行によって開始された *MyFirstPipeline* という名前のパイプラインについて返されたデータを示しています。

  ```
  {
      "pipelineExecutionSummaries": [
          {
              "pipelineExecutionId": "eb7ebd36-353a-4551-90dc-18ca5EXAMPLE",
              "status": "Succeeded",
              "startTime": "2024-04-16T09:00:28.185000+00:00",
              "lastUpdateTime": "2024-04-16T09:00:29.665000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "revision_ID",
                      "revisionSummary": "Added README.txt",
                      "revisionUrl": "console-URL"
                  }
              ],
              "trigger": {
                  "triggerType": "ManualRollback",
                  "triggerDetail": "{arn:aws:sts::<account_ID>:assumed-role/<role>"}"
              },
              "executionMode": "SUPERSEDED",
              "executionType": "ROLLBACK",
              "rollbackMetadata": {
                  "rollbackTargetPipelineExecutionId": "f15b38f7-20bf-4c9e-94ed-2535eEXAMPLE"
              }
          },
          {
              "pipelineExecutionId": "fcd61d8b-4532-4384-9da1-2aca1EXAMPLE",
              "status": "Succeeded",
              "startTime": "2024-04-16T08:58:56.601000+00:00",
              "lastUpdateTime": "2024-04-16T08:59:04.274000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "revision_ID",
                      "revisionSummary": "Added README.txt",
                      "revisionUrl": "console_URL"
                  }
              ],
              "trigger": {
                  "triggerType": "StartPipelineExecution",
                  "triggerDetail": "arn:aws:sts::<account_ID>:assumed-role/<role>"
              },
              "executionMode": "SUPERSEDED"
          },
          {
              "pipelineExecutionId": "5cd064ca-bff7-425f-8653-f41d9EXAMPLE",
              "status": "Failed",
              "startTime": "2024-04-24T19:19:50.781000+00:00",
              "lastUpdateTime": "2024-04-24T19:19:52.119000+00:00",
              "sourceRevisions": [
                  {
                      "actionName": "Source",
                      "revisionId": "<revision_ID>",
                      "revisionSummary": "Edited README.txt",
                      "revisionUrl": "<revision_URL>"
                  }
              ],
              "trigger": {
                  "triggerType": "AutomatedRollback",
                  "triggerDetail": "{\"FailedPipelineExecutionId\":\"b2e77fa5-9285-4dea-ae66-4389EXAMPLE\"}"
              },
              "executionMode": "SUPERSEDED",
              "executionType": "ROLLBACK",
              "rollbackMetadata": {
                  "rollbackTargetPipelineExecutionId": "5efcfa68-d838-4ca7-a63b-4a743EXAMPLE"
              }
           },
  ```

# ロールバックステータスの詳細を表示する
<a name="stage-rollback-view-details"></a>

ロールバック実行のステータスとターゲット実行 ID を表示できます。

## 詳細ページにロールバックステータスを表示する (コンソール）
<a name="stage-rollback-view-details-console"></a>

コンソールを使用して、ロールバック実行のステータスとターゲットパイプライン実行 ID を表示できます。

![\[CodePipeline のターゲットパイプライン実行 ID フィールドを示すステータスページの例。\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/rollback-view-status-console.png)


## `get-pipeline-execution` を使用してロールバックの詳細を表示する (CLI)
<a name="stage-rollback-view-details-cli"></a>

ロールバックされたパイプライン実行は、パイプライン実行を取得するための出力に表示されます。
+ パイプラインの詳細を表示するには、パイプラインの一意の名前を指定して、**[get-pipeline-execution](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-execution.html)** コマンドを実行します。例えば、*MyFirstPipeline* という名前のパイプラインの詳細を表示するには、以下のように入力します:

  ```
  aws codepipeline get-pipeline-execution --pipeline-name MyFirstPipeline --pipeline-execution-id 3f658bd1-69e6-4448-ba3e-79007EXAMPLE
  ```

  このコマンドは、パイプラインの構造を返します。

  次の例は、*MyFirstPipeline* という名前のパイプラインの一部について返されたデータを示しています。ロールバック実行 ID とメタデータが表示されています。

  ```
  {
      "pipelineExecution": {
          "pipelineName": "MyFirstPipeline",
          "pipelineVersion": 6,
          "pipelineExecutionId": "2004a94e-8b46-4c34-a695-c8d20EXAMPLE",
          "status": "Succeeded",
          "artifactRevisions": [
              {
                  "name": "SourceArtifact",
                  "revisionId": "<ID>",
                  "revisionSummary": "Added README.txt",
                  "revisionUrl": "<console_URL>"
              }
          ],
          "trigger": {
              "triggerType": "ManualRollback",
              "triggerDetail": "arn:aws:sts::<account_ID>:assumed-role/<role>"
          },
          "executionMode": "SUPERSEDED",
          "executionType": "ROLLBACK",
          "rollbackMetadata": {
              "rollbackTargetPipelineExecutionId": "4f47bed9-6998-476c-a49d-e60beEXAMPLE"
          }
      }
  }
  ```

## `get-pipeline-state` を使用してロールバック状態を表示する (CLI)
<a name="w2aac34c10c17b9"></a>

ロールバックされたパイプライン実行は、パイプライン状態を取得するための出力に表示されます。
+ パイプラインの詳細を表示するには、パイプラインの一意の名前を指定して、**get-pipeline-state** コマンドを実行します。例えば、*MyFirstPipeline* という名前のパイプラインの状態の詳細を表示するには、次のように入力します。

  ```
  aws codepipeline get-pipeline-state --name MyFirstPipeline
  ```

  次の例は、ロールバック実行タイプで返されたデータを示しています。

  ```
  {
      "pipelineName": "MyFirstPipeline",
      "pipelineVersion": 7,
      "stageStates": [
          {
              "stageName": "Source",
              "inboundExecutions": [],
              "inboundTransitionState": {
                  "enabled": true
              },
              "actionStates": [
                  {
                      "actionName": "Source",
                      "currentRevision": {
                          "revisionId": "<Revision_ID>"
                      },
                      "latestExecution": {
                          "actionExecutionId": "13bbd05d-b439-4e35-9c7e-887cb789b126",
                          "status": "Succeeded",
                          "summary": "update",
                          "lastStatusChange": "2024-04-24T20:13:45.799000+00:00",
                          "externalExecutionId": "10cbEXAMPLEID"
                      },
                      "entityUrl": "console-url",
                      "revisionUrl": "console-url"
                  }
              ],
              "latestExecution": {
                  "pipelineExecutionId": "cf95a8ca-0819-4279-ae31-03978EXAMPLE",
                  "status": "Succeeded"
              }
          },
          {
              "stageName": "deploys3",
              "inboundExecutions": [],
              "inboundTransitionState": {
                  "enabled": true
              },
              "actionStates": [
                  {
                      "actionName": "s3deploy",
                      "latestExecution": {
                          "actionExecutionId": "3bc4e3eb-75eb-45b9-8574-8599aEXAMPLE",
                          "status": "Succeeded",
                          "summary": "Deployment Succeeded",
                          "lastStatusChange": "2024-04-24T20:14:07.577000+00:00",
                          "externalExecutionId": "mybucket/SampleApp.zip"
                      },
                      "entityUrl": "console-URL"
                  }
              ],
              "latestExecution": {
                  "pipelineExecutionId": "fdf6b2ae-1472-4b00-9a83-1624eEXAMPLE",
                  "status": "Succeeded",
                  "type": "ROLLBACK"
              }
          }
      ],
      "created": "2024-04-15T21:29:01.635000+00:00",
      "updated": "2024-04-24T20:12:24.480000+00:00"
  }
  ```