

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

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

# 閘道工作流程執行
<a name="workflows-gates"></a>

除非符合特定條件，否則*閘道*是一種工作流程元件，可用來防止工作流程執行繼續進行。閘道的範例是**核准**閘道，使用者必須在 CodeCatalyst 主控台中提交核准，工作流程執行才能繼續。

您可以在工作流程中的動作序列之間或在第一個動作之前新增閘道 （在**來源**下載之後立即執行）。如果您需要，也可以在最後一個動作之後新增閘道。

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

**Topics**
+ [閘道類型](#workflows-gates-types)
+ [我可以設定閘道以平行於另一個動作執行嗎？](#workflows-approval-parallel)
+ [我可以使用閘道來防止工作流程執行啟動嗎？](#workflows-gates-prevent)
+ [閘道的限制](#workflows-gate-limitations)
+ [將閘道新增至工作流程](workflows-gates-add.md)
+ [定序閘道和動作](workflows-gates-depends-on.md)
+ [指定閘道的版本](workflows-gates-version.md)

## 閘道類型
<a name="workflows-gates-types"></a>

目前，Amazon CodeCatalyst 支援一種閘道類型：**核准**閘道。如需詳細資訊，請參閱[需要工作流程執行的核准](workflows-approval.md)。

## 我可以設定閘道以平行於另一個動作執行嗎？
<a name="workflows-approval-parallel"></a>

否。Gates 只能在動作之前或之後執行。如需詳細資訊，請參閱[定序閘道和動作](workflows-gates-depends-on.md)。

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

是，具有資格。

您可以防止工作流程執行*執行任務*，這與防止工作流程*啟動*略有不同。

若要防止工作流程執行任務，請在工作流程中第一個動作之前新增閘道。在此案例中，工作流程執行*將開始*，這表示它將下載您的來源儲存庫檔案，但在閘道解除鎖定之前，將無法執行任務。

**注意**  
開始然後被閘道封鎖的工作流程仍會計入*每個空間配額和其他配額的並行工作流程執行數目上限*。為了確保您不超過工作流程配額，請考慮使用工作流程觸發條件來有條件地啟動工作流程，而不是使用閘道。也請考慮使用提取請求核准規則，而非閘道。如需配額、觸發條件和提取請求核准規則的詳細資訊，請參閱 [CodeCatalyst 中工作流程的配額](workflows-quotas.md)、 [使用觸發程序自動啟動工作流程執行](workflows-add-trigger.md)和 [管理將提取請求與核准規則合併的要求](source-pull-requests-approval-rules.md)。

## 閘道的限制
<a name="workflows-gate-limitations"></a>

Gates 有下列限制：
+ Gates 無法與運算共用功能搭配使用。如需使用此功能的詳細資訊，請參閱「[跨動作共用運算](compute-sharing.md)」。
+ 動作群組內無法使用閘道。如需動作群組的詳細資訊，請參閱 [將動作分組為動作群組](workflows-group-actions.md)。

# 將閘道新增至工作流程
<a name="workflows-gates-add"></a>

在 Amazon CodeCatalyst 中，您可以將閘道新增至工作流程，以防止其繼續，除非符合特定條件。使用下列指示將閘道新增至工作流程。

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

**新增和設定閘道**

1. 開啟 CodeCatalyst 主控台，網址為 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 選擇您的專案。

1. 在導覽窗格中，選擇 **CI/CD**，然後選擇**工作流程**。

1. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

1. 選擇**視覺化**。

1. 在左側，選擇**閘道**。

1. 在閘道目錄中，搜尋閘道，然後選擇加號 (**＋**) 將閘道新增至工作流程。

1. 設定閘道。選擇**視覺化**以使用視覺化編輯器，或選擇 **YAML** 以使用 YAML 編輯器。如需詳細說明，請參閱：
   + [新增「核准」閘道](workflows-approval-add.md)

1. （選用） 選擇**驗證**以確保 YAML 程式碼有效。

1. 選擇**遞交**以遞交您的變更。

# 定序閘道和動作
<a name="workflows-gates-depends-on"></a>

在 Amazon CodeCatalyst 中，您可以設定要在工作流程動作、動作群組或閘道之前或之後執行的閘道。例如，您可以設定在`Deploy`動作之前執行的`Approval`閘道。在這種情況下，該`Deploy`動作被說是*取決於*`Approval`閘道。

若要設定閘道和動作之間的相依性，請設定閘道或動作的**相依**屬性。如需說明，請參閱 [在動作之間設定相依性](workflows-depends-on-set-up.md)。參考的指示是指工作流程*動作*，但同樣適用於閘道。

如需如何使用閘道設定**相依**屬性的範例，請參閱 [範例：「核准」閘道](workflows-approval-example.md)。

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

如需工作流程動作的詳細資訊，請參閱 [設定工作流程動作](workflows-actions.md)。

# 指定閘道的版本
<a name="workflows-gates-version"></a>

根據預設，當您將閘道新增至工作流程時，CodeCatalyst 會使用下列格式將完整版本新增至工作流程定義檔案：

`vmajor.minor.patch` 

例如：

```
My-Gate:
  Identifier: aws/approval@v1
```

您可以延長版本，讓工作流程使用特定的主要或次要版本的閘道。如需說明，請參閱 [指定要使用的動作版本](workflows-action-versions.md)。參考主題是指工作流程動作，但同樣適用於閘道。

如需 CodeCatalyst 中閘道的詳細資訊，請參閱 [閘道工作流程執行](workflows-gates.md)。