

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定階段的條件
<a name="stage-conditions"></a>

您可以指定階段的條件，例如在管道執行中檢查特定變數，然後為條件建立結果，例如略過階段或使階段失敗。您可以設定管道在執行期間檢查階段條件，您可以在其中指定階段檢查，然後指定階段在符合特定條件時應如何繼續。條件包含可在 CodePipeline 規則清單中取得的一或多個規則。如果條件中的所有規則都成功，則符合條件。您可以設定條件，以便在不符合條件時，指定的結果會接合。

每個條件都有規則集，這是一起評估的一組有序規則。因此，如果條件中有一個規則失敗，則條件會失敗。您可以在管道執行時間覆寫規則條件。

條件用於特定類型的表達式，每個表達式都有可用的特定結果選項，如下所示：
+ **項目** - 進行檢查的條件，如果符合，則允許進入階段。規則會與下列結果選項搭配使用：**Fail** 或 **Skip**
+ **失敗**時 - 在階段失敗時進行檢查的條件。規則會與下列結果選項搭配使用：**轉返**
+ **成功時** - 在階段成功時進行檢查的條件。規則會與下列結果選項搭配使用：**轉返**或**失敗**

每種條件類型的一組*規則*都支援條件。

對於每種類型的條件，都有條件設定的特定動作。動作是成功或失敗條件檢查的結果。例如，進入條件 （進入條件） 會遇到警示 （規則），然後檢查成功，而結果 （動作） 是階段項目遭到封鎖。

您也可以使用 AWS CodePipeline 主控台或 AWS CLI 手動復原或重試階段或階段中的動作。請參閱 [設定階段的條件](#stage-conditions)。

**Topics**
+ [階段條件的使用案例](#stage-conditions-cases)
+ [針對階段條件設定的結果考量事項](#stage-conditions-considerations)
+ [針對階段條件設定的規則考量事項](#stage-conditions-considerations-rules)
+ [建立項目條件](#stage-conditions-entry)
+ [在失敗條件時建立](#stage-conditions-onfailure)
+ [在成功時建立條件](#stage-conditions-onsuccess)
+ [刪除階段條件](#stage-conditions-delete)
+ [覆寫階段條件](#stage-conditions-override)

## 階段條件的使用案例
<a name="stage-conditions-cases"></a>

階段條件有多個使用案例，用於設定管道的發行版本和變更安全性。以下是階段條件的範例使用案例。
+ 使用進入條件來定義將檢查 CloudWatch 警示狀態的條件，如果生產環境的狀態不佳，則會封鎖變更。
+ 使用等待時間為 60 的進入條件，定義當階段中的所有動作成功完成時要評估的條件，然後在 CloudWatch 警示在 60 分鐘內進入 ALARM 狀態時轉返變更。
+ 使用 On Success 條件來定義條件，以便在階段成功完成時，規則會檢查目前時間是否在部署時段中，然後在規則成功時部署。

## 針對階段條件設定的結果考量事項
<a name="stage-conditions-considerations"></a>

階段條件的考量如下：
+ 您無法搭配 onFailure 條件使用自動階段重試。
+ 使用**轉返**結果設定條件時，如果目前的管道結構版本中可用，則階段只能轉返到先前的執行。
+ 使用**轉返**結果設定條件時，您無法轉返至轉返執行類型的目標執行 ID。
+ 對於使用**略過**結果在條件失敗時略過階段的進入條件，僅支援 `LambdaInvoke`和 `VariableCheck`規則。
+ 您無法對**處於略過狀態的**階段執行手動階段重試。
+ 您無法執行手動轉返至**已略過狀態的**階段。
+ 如果條件是使用**略過**結果設定，則無法覆寫條件。
+ 除了**略過**結果之外，您可以在啟動管道執行時覆寫階段條件。對於使用覆寫的階段條件，執行將執行如下表所述。
+   
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/stage-conditions.html)

## 針對階段條件設定的規則考量事項
<a name="stage-conditions-considerations-rules"></a>

階段條件的可用規則考量如下：
+ 對於`LambdaInvoke`規則，您必須先設定要在規則中使用的 Lambda 函數。當您設定規則時，請準備好 Lambda 函數 ARN。
+ 對於`CloudWatchAlarm`規則，您必須先設定要在規則中使用的 CloudWatch Events 事件。設定規則時，讓事件 ARN 準備好提供。

## 建立項目條件
<a name="stage-conditions-entry"></a>

您可以使用主控台或 CLI 設定階段的進入條件。您將為每個條件設定對應的規則和結果。對於轉返結果，只有在目前的管道結構版本中啟動先前的執行時，管道才能轉返至先前的執行。

這些步驟提供使用監控規則的範例進入條件。

如需詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。

### 建立項目條件 - CloudWatchAlarm 規則範例 （主控台）
<a name="stage-conditions-entry-console"></a>

您可以設定階段的進入條件，以及您希望階段在符合條件時執行的規則和結果。

**設定進入條件 （主控台）**

1. 完成任何先決條件，例如為提供資源的規則建立資源和 ARN，例如 **AWS CloudWatchAlarm**。

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 AWS 帳戶 相關聯的所有管道的名稱和狀態都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的動作，選擇**編輯階段**。

1. 選擇**新增項目條件**。**先前階段進入條件**卡會顯示此條件可用的**失敗**選項。

1. 選擇**新增規則**，然後完成下列操作。

   1. 在**規則名稱**中，輸入規則的名稱。在此範例中，請輸入 `MyAlarmRule`。

   1. 在**規則提供者**中，選擇要新增至條件的預先設定規則提供者。在此範例中，選擇 **AWS CloudWatchAlarm**，然後完成下列步驟。

   1. 在 **區域中**，為您的條件選擇 區域，或保留預設值。

   1. 在**警示名稱**中，選擇要用於規則的 CloudWatch 資源。您必須已在帳戶中建立 資源。

   1. （選用） 在**等待時間**中，輸入第一次評估警示處於 ALARM 狀態時CodePipeline 將等待的時間量。如果第一次檢查規則時警示為 OK 狀態，則規則會立即成功。

   1. （選用） 輸入要監控的任何特定警示狀態，並在適當時輸入角色 ARN。

   1. 當您完成階段編輯時，請選擇**完成**。在管道編輯頁面上，選擇**儲存**。

1. 執行之後，請檢視結果。

### 使用略過結果和`VariableCheck`規則建立項目條件 （主控台）
<a name="stage-conditions-entry-skip"></a>

您可以設定階段的進入條件，以便在不符合進入條件時略過該階段。如果條件失敗，則結果會接合且略過該階段。略過階段時，階段狀態為**略過**，動作狀態為**未執行**。如需使用略過結果之階段條件的考量，請參閱 [針對階段條件設定的結果考量事項](#stage-conditions-considerations)。

在下列範例中，變數檢查規則會發現值不是相符項目，而且會略過建置階段。

**使用**略過**結果設定進入條件 （主控台）**

1. 完成任何先決條件，例如為提供資源的規則建立資源和 ARN，例如 **AWS CloudWatchAlarm**。

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 AWS 帳戶 相關聯的所有管道的名稱和狀態都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的動作，選擇**編輯階段**。

1. 選擇**新增項目條件**，然後選擇**略過**作為結果。

1. 選擇**新增規則**，然後完成下列操作。

   1. 在**規則名稱**中，輸入規則的名稱。在此範例中，請輸入 `MyAlarmRule`。

   1. 在**規則提供者**中，選擇要新增至條件的預先設定規則提供者。在此範例中，選擇 **VariableCheck**，然後完成下列步驟。  
![\[使用 CodePipeline 的發行程序範例。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-cond-fail-skip.png)

   1. 在 **區域中**，為您的條件選擇 區域，或保留預設值。

   1. 在**變數**中，選擇要比較的變數，例如具有 GitHub （透過 GitHub 應用程式） 來源動作的`#{SourceVariables.FullRepositoryName}`管道。輸入儲存庫名稱，然後選擇運算子，例如**等於**。

   1. 當您完成階段編輯時，請選擇**完成**。在管道編輯頁面上，選擇**儲存**。

1. 執行之後，請檢視結果。  
![\[使用 CodePipeline 的發行程序範例。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-skipped.png)

1. 若要檢閱詳細資訊，請選擇**檢閱**。下列範例的詳細資訊顯示，條件的已設定結果為**略過**，無法覆寫。由於未符合條件，規則狀態為**失敗**。  
![\[顯示 CodePipeline 中略過結果條件的範例條件詳細資訊頁面。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/condition-exec-details.png)

### 建立項目條件 (CLI)
<a name="stage-conditions-entry-cli"></a>

若要使用 AWS CLI 來設定進入條件，請使用 命令來建立或更新管道，如 [建立管道、階段和動作](pipelines-create.md)和 中所述[在 CodePipeline 中編輯管道](pipelines-edit.md)。

**設定條件和規則或規則 (CLI)**
+ 開啟終端機 (Linux、macOS 或 Unix) 或命令提示字元 AWS CLI (Windows)，然後使用 執行`update-pipeline`命令，在管道結構中指定失敗條件。下列範例會為名為 的階段設定進入條件`Deploy`：

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
      "beforeEntry": {
          "conditions": [
              {
                  "result": "FAIL",
                  "rules": [
                      {
                          "name": "MyAlarmRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "CloudWatchAlarm",
                              "version": "1"
                          },
                          "configuration": {
                              "AlarmName": "CWAlarm",
                              "WaitTime": "1"
                          },
                          "inputArtifacts": [],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }
  }
  ```

  如需設定階段復原成功條件的詳細資訊，請參閱 *CodePipeline API 參考*中的 [SuccessConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SuccessConditions.html)。

### 建立項目條件 (CFN)
<a name="stage-conditions-entry-cfn"></a>

若要使用 CloudFormation 設定 Entry 條件，請使用 `beforeEntry` 參數。進入時，階段會執行規則並執行結果。

```
beforeEntry:
     Result: FAIL
```
+ 更新範本，如下列程式碼片段所示。下列範例會使用名為 的規則來設定 Entry 條件`MyMonitorRule`：

  ```
  Name: Deploy
  Actions:
  - Name: Deploy
    ActionTypeId:
      Category: Deploy
      Owner: AWS
      Provider: S3
      Version: '1'
    RunOrder: 1
    Configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    OutputArtifacts: []
    InputArtifacts:
    - Name: SourceArtifact
    Region: us-east-1
    Namespace: DeployVariables
  BeforeEntry:
    Conditions:
    - Result: FAIL
      Rules:
      - Name: MyMonitorRule
        RuleTypeId:
          Category: Rule
          Owner: AWS
          Provider: CloudWatchAlarm
          Version: '1'
        Configuration:
          AlarmName: CWAlarm
          WaitTime: '1'
        InputArtifacts: []
        Region: us-east-1
  ```

  如需設定 beforeEntry 條件的詳細資訊，請參閱*CloudFormation 《 使用者指南*》`StageDeclaration`中的 下的 [AWS::CodePipeline::Pipeline BeforeEntryConditions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-beforeentryconditions.html)。

## 在失敗條件時建立
<a name="stage-conditions-onfailure"></a>

您可以使用主控台或 CLI 設定階段的失敗時條件。您將為每個條件設定對應的規則和結果。對於轉返結果，只有在目前的管道結構版本中啟動先前的執行時，管道才能轉返至先前的執行。

### 在失敗條件時建立 （主控台）
<a name="stage-conditions-onfailure-console"></a>

您可以設定階段的失敗時條件，以及您希望階段在符合條件時執行的規則和結果。

**設定 On Failure 條件 （主控台）**

1. 完成任何先決條件，例如為提供資源的規則建立資源和 ARN，例如 **LambdaInvoke** 規則。

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 AWS 帳戶 相關聯的所有管道的名稱和狀態都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的動作，選擇**編輯階段**。

1. 選擇**新增失敗條件**。**失敗條件**卡會顯示此條件可用的**轉返**選項。

1. 選擇**新增規則**，然後完成下列操作。

   1. 在**規則名稱**中，輸入規則的名稱。在此範例中，請輸入 `MyLambdaRule`。

   1. 在**規則提供者**中，選擇要新增至條件的預先設定規則提供者。在此範例中，選擇 **AWS LambdaInvoke**，然後完成下列步驟。

   1. 在 **區域中**，為您的條件選擇 區域，或保留預設值。

   1. 在**輸入成品**中，選擇來源成品。

   1. 在**函數名稱**中，選擇要用於規則的 Lambda 資源。您必須已在帳戶中建立 資源。

   1. （選用） 在**使用者參數**中，輸入代表其他組態參數的任何配對。

   1. （選用） 在**角色 Arn** 中，如果已設定，請輸入角色 ARN。

   1. （選用） 在**以分鐘為單位的逾時**中，輸入規則在逾時之前應等待的時間，以分鐘為單位。

   1. 當您完成階段編輯時，請選擇**完成**。在管道編輯頁面上，選擇**儲存**。

### 使用重試結果範例建立 onFailure 條件 （主控台）
<a name="w2aac36c27b7"></a>

您可以設定階段的 onFailure 條件，以便在不符合進入條件時重試階段。在此結果中，您會設定重試模式，指定要重試失敗的動作還是重試失敗的階段。

**使用重試結果設定 onFailure 條件 （主控台）**

1. 完成任何先決條件，例如為提供資源的規則建立資源和 ARN，例如 **AWS CloudWatchAlarm**。

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 AWS 帳戶 相關聯的所有管道的名稱和狀態都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的動作，選擇**編輯階段**。

1. 在階段底部，在**自動化階段組態：** 下，選擇在**階段失敗時啟用自動重試**。在**重試模式中**，選擇**重試失敗階段**或**重試失敗的動作**。  
![\[在 CodePipeline 中設定階段的重試模式。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-retry-mode.png)

1. 選擇 新增 onFailure 條件，然後選擇**新增規則**，然後輸入條件的規則。

   1. 在**規則名稱**中，輸入規則的名稱。在此範例中，請輸入 `MyAlarmRule`。

   1. 在**規則提供者**中，選擇要新增至條件的預先設定規則提供者。在此範例中，選擇 **CloudWatchAlarm**，然後完成下列步驟。

   1. 在 **區域中**，為您的條件選擇 區域，或保留預設值。

   1. 在**警示名稱**中，選擇警示的已設定資源。

   1. 當您完成階段編輯時，請選擇**完成**。在管道編輯頁面上，選擇**儲存**。

1. 執行之後，請檢視結果。

### 建立失敗時條件 (CLI)
<a name="stage-conditions-onfailure-cli"></a>

若要使用 AWS CLI 來設定失敗時條件，請使用 命令來建立或更新管道，如 [建立管道、階段和動作](pipelines-create.md)和 中所述[在 CodePipeline 中編輯管道](pipelines-edit.md)。

**設定條件和規則或規則 (CLI)**
+ 開啟終端機 (Linux、macOS 或 Unix) 或命令提示字元 AWS CLI (Windows)，然後使用 執行`update-pipeline`命令，在管道結構中指定失敗條件。下列範例會為名為 的階段設定失敗時條件`Deploy`：

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
      "onFailure": {
          "conditions": [
              {
                  "result": "ROLLBACK",
                  "rules": [
                      {
                          "name": "MyLambdaRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "LambdaInvoke",
                              "version": "1"
                          },
                          "configuration": {
                              "FunctionName": "my-function"
                          },
                          "inputArtifacts": [
                              {
                                  "name": "SourceArtifact"
                              }
                          ],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }
  }
  ```

  如需設定失敗條件的詳細資訊，請參閱 *CodePipeline API 參考*中的 [FailureConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_FailureConditions.html)。

### 建立故障時條件 (CFN)
<a name="stage-conditions-onfailure-cfn"></a>

若要使用 CloudFormation 設定失敗時條件，請使用 `OnFailure` 參數。成功時，階段會執行規則並執行結果。

```
OnFailure:
     Result: ROLLBACK
```
+ 更新範本，如下列程式碼片段所示。下列範例會使用名為 的規則設定 OnFailure 條件`MyMonitorRule`：

  ```
  name: Deploy
  actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: S3
      version: '1'
    runOrder: 1
    configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    outputArtifacts: []
    inputArtifacts:
    - name: SourceArtifact
    region: us-east-1
    namespace: DeployVariables
  OnFailure:
    conditions:
    - result: ROLLBACK
      rules:
      - name: MyMonitorRule
        ruleTypeId:
          category: Rule
          owner: AWS
          provider: CloudWatchAlarm
          version: '1'
        configuration:
          AlarmName: AlarmOnHelloWorldInvocation
          AlarmStates: ALARM
          WaitTime: '1'
        inputArtifacts: []
        region: us-east-1
  ```

  如需設定失敗條件的詳細資訊，請參閱*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-conditions-onsuccess"></a>

您可以使用 主控台或 CLI 設定階段的成功時條件。您將為每個條件設定對應的規則和結果。對於轉返結果，只有在目前的管道結構版本中啟動先前的執行時，管道才能轉返至先前的執行。

這些步驟提供使用部署時段規則的成功時條件範例。

如需詳細資訊，請參閱 *CodePipeline API 指南*中的 [Condition](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_Condition.html)、[RuleTypeId](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleTypeId.html) 和 [RuleExecution](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_RuleExecution.html)。

### 在成功時建立條件 （主控台）
<a name="stage-conditions-onsuccess-console"></a>

您可以設定階段的成功時條件，以及您希望階段在符合條件時執行的規則和結果。

**設定 On Success 條件 （主控台）**

1. 完成任何先決條件，例如為提供資源的規則建立資源和 ARN，例如 AWS LambdaRule。

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 AWS 帳戶 相關聯的所有管道的名稱和狀態都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的動作，選擇**編輯階段**。

1. 選擇**新增成功條件**。隨即顯示**開啟階段成功條件**卡。選擇**轉返**或**失敗**選項，顯示為此條件類型的可用結果。

1. 選擇**新增規則**，然後完成下列操作。

   1. 在**規則名稱**中，輸入條件的名稱。在此範例中，請輸入 `MyDeploymentRule`。

   1. 在**規則提供者**中，選擇要新增至條件的預先設定規則。在此範例中，選擇 **AWS DeploymentWindow**，然後完成下列步驟。

   1. 在 **區域中**，為您的條件選擇 區域，或保留預設值。

   1. 在 **Cron** 中，輸入部署視窗的 Cron 表達式。Cron 表達式定義應允許部署的日期和時間。如需 cron 表達式的參考資訊，請參閱[使用 cron 和 rate 表達式來排程規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions)。

   1. （選用） 在 **TimeZone** 中，輸入部署時段的時區。

1. 執行之後，請檢視結果。  
![\[CodePipeline 中的範例條件。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-condition-onsuccess-deplwin-example-message.png)

### 在成功時建立條件 (CLI)
<a name="stage-conditions-onsuccess-cli"></a>

若要使用 AWS CLI 設定 On Success 條件，請使用 命令來建立或更新管道，如 [建立管道、階段和動作](pipelines-create.md)和 中所述[在 CodePipeline 中編輯管道](pipelines-edit.md)。

**設定條件和規則或規則 (CLI)**
+ 開啟終端機 (Linux、macOS 或 Unix) 或命令提示字元 AWS CLI (Windows)，然後使用 執行`update-pipeline`命令，在管道結構中指定失敗條件。下列範例會為名為 的階段設定 On Success 條件`Deploy`，其中規則名為 `MyDeploymentRule`：

  ```
  {
      "name": "Deploy",
      "actions": [
          {
              "name": "Deploy",
              "actionTypeId": {
                  "category": "Deploy",
                  "owner": "AWS",
                  "provider": "S3",
                  "version": "1"
              },
              "runOrder": 1,
              "configuration": {
                  "BucketName": "MyBucket",
                  "Extract": "false",
                  "ObjectKey": "object.xml"
              },
              "outputArtifacts": [],
              "inputArtifacts": [
                  {
                      "name": "SourceArtifact"
                  }
              ],
              "region": "us-east-1",
              "namespace": "DeployVariables"
          }
      ],
      "onSuccess": {
         "conditions": [
              {
                  "result": "FAIL",
                  "rules": [
                      {
                          "name": "MyAlarmRule",
                          "ruleTypeId": {
                              "category": "Rule",
                              "owner": "AWS",
                              "provider": "CloudWatchAlarm",
                              "version": "1"
                          },
                          "configuration": {
                              "AlarmName": "CWAlarm",
                              "WaitTime": "1"
                          },
                          "inputArtifacts": [],
                          "region": "us-east-1"
                      }
                  ]
              }
          ]
      }
  }
  ```

  如需設定成功條件的詳細資訊，請參閱 *CodePipeline API 參考*中的 [SuccessConditions](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_SuccessConditions.html)。

### 建立 On Success 條件 (CFN)
<a name="stage-conditions-onsuccess-cfn"></a>

若要使用 CloudFormation 設定 On Success 條件，請使用 `OnSuccess` 參數。成功時，階段會執行規則並執行結果。

```
OnSuccess:
     Result: ROLLBACK
```
+ 更新範本，如下列程式碼片段所示。下列範例會使用名為 的規則設定 OnSuccess 條件`MyDeploymentWindowRule`：

  ```
  name: Deploy
  actions:
  - name: Deploy
    actionTypeId:
      category: Deploy
      owner: AWS
      provider: S3
      version: '1'
    runOrder: 1
    configuration:
      BucketName: MyBucket
      Extract: 'false'
      ObjectKey: object.xml
    outputArtifacts: []
    inputArtifacts:
    - name: SourceArtifact
    region: us-east-1
    namespace: DeployVariables
  onSuccess:
     conditions:
    - result: FAIL
      rules:
      - name: MyMonitorRule
        ruleTypeId:
          category: Rule
          owner: AWS
          provider: CloudWatchAlarm
          version: '1'
        configuration:
          AlarmName: CWAlarm
          WaitTime: '1'
        inputArtifacts: []
        region: us-east-1
  ```

  如需設定階段復原失敗條件的詳細資訊，請參閱*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-conditions-delete"></a>

您可以刪除已為管道設定的階段條件。

**刪除階段條件**

1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台，網址為 https：//[http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home)。

   與 相關聯的所有管道的名稱和狀態 AWS 帳戶 都會顯示。

1. 在 **Name (名稱)** 中，選擇您想編輯的管道名稱。

1. 在管道詳細資訊頁面上，選擇 **Edit (編輯)**。

1. 在**編輯**頁面上，針對您要編輯的條件，選擇**編輯階段**。

1. 在要刪除的條件旁邊，選擇**刪除條件**。

## 覆寫階段條件
<a name="stage-conditions-override"></a>

您可以覆寫已針對管道設定的階段條件。在 主控台中，當階段和規則正在執行時，您可以選擇覆寫階段條件。這會導致階段執行 

**覆寫階段條件**

1. 在此範例中，管道階段以 條件執行。**覆寫**按鈕已啟用。  
![\[CodePipeline 中的範例條件。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-condition-override-depl.png)

1. 在您要覆寫的條件旁邊，選擇**覆寫**。  
![\[CodePipeline 中的範例條件。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-condition-override-depl-overridden.png)

1. 若要檢閱詳細資訊，請選擇**檢閱**。下列範例的詳細資訊顯示條件的已設定結果為 Fail，已覆寫。由於覆寫，規則狀態為已捨棄。  
![\[顯示 CodePipeline 中覆寫條件的範例條件詳細資訊頁面。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stage-condition-onsuccess-deplwin-example-message-review.png)