

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置阶段自动回滚
<a name="stage-rollback-auto"></a>

您可以配置管道中的阶段在失败时自动回滚。当阶段失败时，阶段会回滚到最近一次成功执行。只有当前一次执行是在当前管道结构版本中启动时，管道才能回滚到前一次执行。由于自动回滚配置是管道定义的一部分，因此只有在管道阶段成功执行管道后，管道阶段才会自动回滚。

## 配置阶段自动回滚（控制台）
<a name="stage-rollback-auto-console"></a>

您可以将一个阶段回滚到指定的前一次成功执行。有关更多信息，请参阅 *CodePipeline API 指南[RollbackStage](https://docs.amazonaws.cn/codepipeline/latest/APIReference/API_RollbackStage.html)*中的。

**配置阶段自动回滚（控制台）**

1. 登录 Amazon Web Services 管理控制台 并打开 CodePipeline 控制台，[网址为 http://console.aws.amazon。 com/codesuite/codepipeline/home](https://console.amazonaws.cn/codesuite/codepipeline/home)。

   将显示与您的 Amazon 账户关联的所有管道的名称和状态。

1. 在 **Name** 中，选择您要编辑的管道的名称。

1. 在管道详细信息页中，选择**编辑**。

1. 在**编辑**页面上，对于要编辑的操作，选择**编辑阶段**。

1. 选择**自动阶段配置：**，然后选择**配置阶段失败时的自动回滚**。将更改保存到您的管道中。  
![\[用于配置回滚阶段的编辑屏幕示例 CodePipeline。\]](http://docs.amazonaws.cn/codepipeline/latest/userguide/images/rollback-configure.png)

## 配置阶段自动回滚（CLI）
<a name="stage-rollback-auto-cli"></a>

要使用 Amazon CLI 将失败阶段配置为自动回滚到最近一次成功执行的阶段，请使用命令创建或更新管道，详见[创建管道、阶段和操作](pipelines-create.md)和中[在 CodePipeline 中编辑管道](pipelines-edit.md)。
+ 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows），并使用 Amazon 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.amazonaws.cn/codepipeline/latest/APIReference/API_FailureConditions.html)*中的。

## 配置阶段自动回滚（Amazon CloudFormation）
<a name="stage-rollback-auto-cfn"></a>

 Amazon 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'
  ```

  有关为阶段回滚配置故障条件的更多信息，请参阅[OnFailure](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stagedeclaration.html#cfn-codepipeline-pipeline-stagedeclaration-onfailure)《*Amazon CloudFormation 用户指南*》`StageDeclaration`中的。