

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 需要工作流程執行的核准
<a name="workflows-approval"></a>

您可以將工作流程執行設定為需要核准才能繼續。若要達成此目的，您必須將**核准**[閘道](workflows-gates.md)新增至工作流程。*核准閘道*可防止工作流程繼續進行，直到使用者或一組使用者在 CodeCatalyst 主控台中提交一或多個核准。授予所有核准後，閘道會「解鎖」，並允許工作流程執行繼續。

在您的工作流程中使用**核准**閘道，讓您的開發、營運和領導團隊有機會在將您的變更部署到更廣泛的受眾之前檢閱變更。

如需工作流程執行的詳細資訊，請參閱 [執行工作流程](workflows-working-runs.md)。

**Topics**
+ [如何解鎖核准閘道？](#workflows-approval-conditions)
+ [何時使用「核准」閘道](#workflows-approval-when)
+ [誰可以提供核准？](#workflows-approval-who)
+ [如何通知使用者需要核准？](#workflows-approval-notify-methods)
+ [我可以使用「核准」閘道來防止工作流程執行啟動嗎？](#workflows-approval-prevent)
+ [工作流程核准如何使用佇列、取代和平行執行模式？](#workflows-approval-run-mode)
+ [範例：「核准」閘道](workflows-approval-example.md)
+ [新增「核准」閘道](workflows-approval-add.md)
+ [設定核准通知](workflows-approval-notify.md)
+ [核准或拒絕工作流程執行](workflows-approval-approve.md)
+ [「核准」閘道 YAML](approval-ref.md)

## 如何解鎖核准閘道？
<a name="workflows-approval-conditions"></a>

若要解除鎖定**核准**閘道，必須符合下列*所有*條件：
+ **條件 1**：必須提交必要的核准數量。所需的核准數量是可設定的，而且每個使用者都可以提交單一核准。
+ **條件 2**：所有核准都必須在閘道逾時之前提交。閘道會在啟用 14 天後逾時。此期間無法設定。
+ **條件 3**：沒有人必須拒絕工作流程執行。單一拒絕會導致工作流程執行失敗。
+ **條件 4**：（只有在您使用取代的執行模式時才適用。) 執行不得由稍後的執行取代。如需詳細資訊，請參閱[工作流程核准如何使用佇列、取代和平行執行模式？](#workflows-approval-run-mode)。

如果不符合任何條件，CodeCatalyst 會停止工作流程，並將執行狀態設定為**失敗** （在**條件 1** 到 **3** 的情況下） 或**被取代** （在**條件 4 **的情況下）。

## 何時使用「核准」閘道
<a name="workflows-approval-when"></a>

一般而言，您會在工作流程中使用**核准**閘道，將應用程式和其他資源部署到生產伺服器或任何必須驗證品質標準的環境。透過在部署到生產環境之前放置 閘道，您可以讓檢閱者有機會在新軟體修訂版可供公開使用之前進行驗證。

## 誰可以提供核准？
<a name="workflows-approval-who"></a>

任何身為您專案成員且具有**貢獻者**或**專案管理員**角色的使用者都可以提供核准。具有屬於您專案空間之**空間管理員**角色的使用者也可以提供核准。

**注意**  
具有 **Reviewer** 角色的使用者無法提供核准。

## 如何通知使用者需要核准？
<a name="workflows-approval-notify-methods"></a>

若要通知使用者需要核准，您必須：
+ 讓 CodeCatalyst 傳送 Slack 通知給他們。如需詳細資訊，請參閱[設定核准通知](workflows-approval-notify.md)。
+ 前往 CodeCatalyst 主控台中**核准**和**拒絕**按鈕所在的頁面，並將該頁面的 URL 貼到傳送給核准者的電子郵件或簡訊應用程式中。如需如何導覽至此頁面的詳細資訊，請參閱 [核准或拒絕工作流程執行](workflows-approval-approve.md)。

## 我可以使用「核准」閘道來防止工作流程執行啟動嗎？
<a name="workflows-approval-prevent"></a>

是，具有資格。如需詳細資訊，請參閱[我可以使用閘道來防止工作流程執行啟動嗎？](workflows-gates.md#workflows-gates-prevent)。

## 工作流程核准如何使用佇列、取代和平行執行模式？
<a name="workflows-approval-run-mode"></a>

使用佇列、取代或平行執行模式時，**核准**閘道的運作方式與 [動作](workflows-actions.md)類似。我們建議您閱讀 [關於排入佇列的執行模式](workflows-configure-runs.md#workflows-configure-runs-queued)、[關於取代的執行模式](workflows-configure-runs.md#workflows-configure-runs-superseded)、 [關於平行執行模式](workflows-configure-runs.md#workflows-configure-runs-parallel)區段，以熟悉這些執行模式。一旦您對它們有基本的了解，請返回本節以了解這些執行模式在存在**核准**閘道時的運作方式。

存在**核准**閘道時，會依下列方式處理執行：
+ 如果您使用的是[排入佇列的執行模式](workflows-configure-runs.md#workflows-configure-runs-queued)，則執行會在目前在閘道等待核准的執行後方排入佇列。當該閘道解除鎖定 （即所有核准都已授予） 時，佇列中的下一個執行會推進到閘道，並等待核准。此程序會繼續透過閘道one-by-one處理排入佇列的執行。 [Figure 1](#figure-1-workflow-queued-run-mode-ma)會說明此程序。
+ 如果您使用的是[取代的執行模式](workflows-configure-runs.md#workflows-configure-runs-superseded)，則行為與佇列執行模式的行為相同，除了讓 執行在閘道的佇列中堆積之外，較新的執行會取代 （接管） 較早的執行。沒有佇列，而且目前等待核准的任何執行都會取消，並由較新的執行取代。 會[Figure 2](#figure-2-workflow-superseded-run-mode-ma)說明此程序。
+ 如果您使用的是[平行執行模式](workflows-configure-runs.md#workflows-configure-runs-parallel)，則 會平行開始執行，而且不會形成佇列。每個執行都會立即由閘道處理，因為之前沒有執行。 [Figure 3](#figure-3-workflow-parallel-run-mode-ma)會說明此程序。

**圖 1**：「佇列執行模式」和**核准**閘道

![「核准」閘道如何與「佇列執行模式」搭配使用](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/runmode-queued-ma.png)


**圖 2**：「超級執行模式」和**核准**閘道

![「核准」閘道如何與「更新後的執行模式」搭配使用](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/runmode-superseded-ma.png)


**圖 3**：「平行執行模式」和**核准**閘道

![「核准」閘道如何與「平行執行模式」搭配使用](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/runmode-parallel-ma.png)
