

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

# 階段條件如何運作？
<a name="concepts-how-it-works-conditions"></a>

對於指定規則的每個條件，都會執行規則。如果條件失敗，表示結果已接合。只有在條件失敗時，階段才會執行指定的結果。或者，作為規則的一部分，您也可以指定 CodePipeline 在某些情況下應使用哪些資源。例如，`CloudWatchAlarm`規則將使用 CloudWatch 警示資源來執行條件檢查。

條件可能符合多個規則，而且每個規則都可以指定三個供應商之一。

建立條件的高階流程，如下所示。

1. 從 CodePipeline 中的可用條件類型中選擇條件類型。例如，使用 On Success 條件類型來設定階段，以便在階段成功後，可以使用一組規則來執行檢查，然後再繼續。

1. 選擇規則。例如，`CloudWatchAlarm`規則會檢查警示，並使用 EB 來檢查預先設定的警示閾值。如果檢查成功，且警示低於閾值，則階段可以繼續。

1. 設定結果，例如在規則失敗時將使用的轉返。

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

下圖顯示 CodePipeline 中項目條件類型的範例流程。條件回答問題：如果不符合條件，表示任何規則都失敗，該怎麼辦？ 在下列流程中，會使用 LambdaInvoke 規則和`CloudWatchAlarm`規則來設定進入條件。如果規則失敗，則會接合設定的結果，例如 Fail。

![已設定兩個規則的進入條件類型範例：LambdaInvoke 規則和 CloudWatchAlarm 規則。](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/conditions-overview-entry.png)


下圖顯示 CodePipeline 中 On Failure 條件類型的範例流程。條件回答問題：如果符合條件，則會發生什麼情況，這表示規則都成功進行檢查？ 在下列流程中，使用 LambdaInvoke 規則和`CloudWatchAlarm`規則設定失敗時條件。如果規則成功，則會接合設定的結果，例如 Fail。

![設定兩個規則的 On Failure 條件類型範例：Lambda 規則和CloudWatchAlarm規則。](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/conditions-overview-onfailure.png)


下圖顯示 CodePipeline 中 On Success 條件類型的範例流程。條件回答問題：如果符合條件，則會發生什麼情況，這表示規則都成功進行檢查？ 在下列流程中，使用 `LambdaInvoke`規則和 `CloudWatchAlarm`規則設定 On Success 條件。如果規則成功，則會接合設定的結果，例如 Fail。

![設定兩個規則的 On Success 條件類型範例：Lambda 規則和CloudWatchAlarm規則。](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/conditions-overview-onsuccess.png)




## 階段條件的規則
<a name="concepts-how-it-works-rules"></a>

當您設定階段條件時，請從預先定義的規則中選取 ，並指定規則的結果。如果條件中的任何規則失敗，則條件狀態將會失敗，如果所有規則成功，則成功。如何符合失敗和成功條件的條件，取決於規則的類型。

以下是您可以新增至階段條件的受管規則。
+ 條件可以使用 ****命令規則來指定命令，以符合條件的規則條件。如需此規則的詳細資訊，請參閱 [命令](rule-reference-Commands.md)。
+ 條件可以使用 **AWS DeploymentWindow** 規則來指定允許部署的核准部署時間。規則的條件將使用為部署時段提供的 Cron 表達式來測量。當部署視窗中的日期和時間符合規則的 cron 表達式中的條件時，規則就會成功。如需此規則的詳細資訊，請參閱 [DeploymentWindow](rule-reference-DeploymentWindow.md)。
+ 條件可以使用 **AWS Lambda** 規則來檢查從設定的 Lambda 函數傳回的錯誤狀態。當檢查收到 Lambda 函數結果時，即符合規則。Lambda 函數的錯誤符合失敗條件的條件。如需此規則的詳細資訊，請參閱 [LambdaInvoke](rule-reference-LambdaInvoke.md)。
+ 條件可以使用 **AWS CloudWatchAlarm** 規則來檢查從 CloudWatch 事件設定的警示。當檢查傳回 OK、ALARM 或 INSUFF\_DATA 警示狀態時，即符合規則。對於成功條件，OK 和 INSUFFICIENT\_DATA 符合條件。ALARM 符合故障時條件的條件。如需此規則的詳細資訊，請參閱 [CloudWatchAlarm](rule-reference-CloudWatchAlarm.md)。
+ 條件可以使用 **VariableCheck** 規則來建立條件，其中會根據提供的表達式檢查輸出變數。當變數值符合規則條件，例如值等於或大於指定的輸出變數時，規則會通過檢查。如需此規則的詳細資訊，請參閱 [VariableCheck](rule-reference-VariableCheck.md)。