

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

# 在 CodePipeline 中停止管道執行
<a name="pipelines-stop"></a>

當管道執行開始透過管道執行時，其一次會進入一個階段，並在階段中的所有動作執行正在執行時鎖定階段。這些進行中的動作必須以某種方式處理，以便在管道執行停止時，允許完成或捨棄動作。

有兩種方式可以停止管道執行：
+ **停止並等待**： AWS CodePipeline 等待停止執行，直到所有進行中的動作完成為止 （也就是動作的狀態為 `Succeeded`或 `Failed` )。此選項會保留進行中的動作。執行會處於 `Stopping` 狀態，直到進行中的動作完成為止。然後執行會處於 `Stopped` 狀態。動作完成之後，階段就會解除鎖定。

  如果您選擇停止並等待，而且在執行仍處於 `Stopping` 狀態時改變主意，您可以選擇捨棄。
+ **停止和捨棄**： AWS CodePipeline 停止執行，而不等待進行中的動作完成。當進行中的動作被捨棄時，執行會有非常短的時間處於 `Stopping` 狀態。在執行停止之後，當管道執行處於 `Abandoned` 狀態時，動作執行會處於 `Stopped` 狀態。階段會解除鎖定。

  對於處於 `Stopped` 狀態的管道執行，您可重試執行停止所在階段中的動作。
**警告**  
此選項可能會導致工作失敗或工作失序。

**Topics**
+ [停止管道執行 (主控台)](#pipelines-stop-console)
+ [停止傳入執行 （主控台）](#pipelines-stop-inbound-console)
+ [停止管道執行 (CLI)](#pipelines-stop-cli)
+ [停止傳入執行 (CLI)](#pipelines-stop-inbound-cli)

## 停止管道執行 (主控台)
<a name="pipelines-stop-console"></a>

您可以使用 主控台停止管道執行。選擇執行，然後選擇停止管道執行的方法。

**注意**  
您也可以停止屬於傳入執行的管道執行。若要進一步了解停止傳入執行，請參閱 [停止傳入執行 （主控台）](#pipelines-stop-inbound-console)。

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

1. 執行以下任意一項：
**注意**  
在您停止執行之前，我們建議您停用階段前面的轉換。如此一來，當階段由於停止執行而解除鎖定時，階段就不會接受後續的管道執行。
   + 在 **Name (名稱)** 中，選擇您想停止執行的管道名稱。在管道詳細資訊頁面上，選擇 **Stop execution (停止執行)**。
   + 選擇 **View history (檢視歷程記錄)**。在歷程記錄頁面上，選擇 **Stop execution (停止執行)**。

1. 在 **Stop execution (停止執行)** 頁面的 **Select execution (選取執行)** 之下，選擇您要停止的執行。
**注意**  
只有仍在進行中的執行才會顯示。不會顯示已經完成的執行。  
![顯示已在主控台中選取下列選項的影像：停止並等待](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/stop-execution.png)

1. 在 **Select an action to apply to execution (選取要套用至執行的動作)** 之下，選擇下列其中一項：
   + 若要確保在所有進行中的動作都完成前，執行不會停止，請選擇 **Stop and wait (停止並等待)**。
**注意**  
如果執行已處於 **Stopping (停止中)** 狀態，您就無法選擇停止並等待，但您可以選擇停止並捨棄。
   + 若要停止而不等待進行中的動作完成，請選擇 **Stop and abandon (停止並捨棄)**。
**警告**  
此選項可能會導致工作失敗或工作失序。

1. (選擇性) 輸入註解。這些註解以及執行狀態會顯示在執行的歷程記錄頁面上。

1. 選擇**停止**。
**重要**  
這個操作無法復原。

1. 在管道視覺效果中檢視執行狀態，如下所示：
   + 如果您選擇停止並等待，則選取的執行會繼續進行，直到進行中的動作完成為止。
     + 成功橫幅訊息會顯示在主控台的頂端。
     + 在目前階段中，進行中的動作會以 `InProgress` 狀態繼續進行。當動作正在進行時，管道執行會處於 `Stopping` 狀態。

       動作完成 (也就是動作失敗或成功) 後，管道執行會變更為 `Stopped` 狀態，而動作會變更為 `Failed` 或 `Succeeded` 狀態。您也可以在執行詳細資訊頁面上檢視動作狀態。您可以在執行歷程記錄頁面或執行詳細資訊頁面上檢視執行狀態。
     + 管道執行會短暫變更為 `Stopping` 狀態，然後變更為 `Stopped` 狀態。您可以在執行歷程記錄頁面或執行詳細資訊頁面上檢視執行狀態。
   + 如果您選擇停止並捨棄，則執行不會等待進行中的動作完成。
     + 成功橫幅訊息會顯示在主控台的頂端。
     + 在目前階段中，進行中的動作會變更為 `Abandoned` 狀態。您也可以在執行詳細資訊頁面上檢視動作狀態。
     + 管道執行會短暫變更為 `Stopping` 狀態，然後變更為 `Stopped` 狀態。您可以在執行歷程記錄頁面或執行詳細資訊頁面上檢視執行狀態。

   您可以在執行歷程記錄檢視和詳細歷程記錄檢視中檢視管道執行狀態。

## 停止傳入執行 （主控台）
<a name="pipelines-stop-inbound-console"></a>

您可以使用 主控台停止傳入執行。傳入執行是管道執行，正在等待進入停用轉換的階段。啟用轉換時，會`InProgress`繼續進入階段的傳入執行。`Stopped` 未進入階段的傳入執行。

**注意**  
停止傳入執行之後，就無法重試。

如果您沒有看到傳入執行，則停用階段轉換時不會有待處理的執行。

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

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

1. 選擇您要停止傳入執行的管道名稱，執行下列其中一項：
   + 在管道檢視中，選擇傳入執行 ID，然後選擇停止執行。
   + 選擇管道，然後選擇**檢視歷史記錄**。在執行歷史記錄中，選擇傳入執行 ID，然後選擇停止執行。

1. 在**停止執行**模態中，依照上節中的步驟選取執行 ID 並指定停止方法。

   使用 **get-pipeline-state**命令來檢視傳入執行的狀態。

## 停止管道執行 (CLI)
<a name="pipelines-stop-cli"></a>

若要使用 AWS CLI 手動停止管道，請使用 **stop-pipeline-execution**命令搭配下列參數：
+ 執行 ID (必要)
+ 註解 (選擇性)
+ 管道名稱 (必要)
+ 捨棄旗標 (選擇性，預設值為 false)

命令格式：

```
aws codepipeline stop-pipeline-execution --pipeline-name {{Pipeline_Name}} –-pipeline-execution-id {{Execution_ID}} [--abandon | --no-abandon] [--reason {{STOP_EXECUTION_REASON}}]
```

1. 開啟終端機 (Linux、macOS 或 Unix) 或命令提示 (Windows)。

1. 若要停止管道執行，請選擇下列其中一項：
   + 若要確保在所有進行中的動作都完成前，執行不會停止，請選擇停止並等待。您可以納入 **no-abandon** 參數來完成此操作。如果您未指定參數，則命令會預設為停止並等待。使用 AWS CLI 執行 **stop-pipeline-execution**命令，指定管道的名稱和執行 ID。例如，若要使用指定的停止和等待選項停止名為 {{MyFirstPipeline}} 的管道：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name {{MyFirstPipeline}} --pipeline-execution-id d-EXAMPLE --no-abandon
     ```

     例如，若要停止名為 {{MyFirstPipeline}} 的管道，預設為停止和等待選項，並選擇包含註解：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name {{MyFirstPipeline}} --pipeline-execution-id d-EXAMPLE --reason "Stopping execution after the build action is done"
     ```
**注意**  
如果執行已處於 **Stopping (停止中)** 狀態，您就無法選擇停止並等待。您可以選擇停止並捨棄已處於 **Stopping (停止中)** 狀態的執行。
   + 若要停止而不等待進行中的動作完成，請選擇停止並捨棄。納入 **abandon** 參數。使用 AWS CLI 執行 **stop-pipeline-execution**命令，指定管道的名稱和執行 ID。

     例如，若要停止名為 {{MyFirstPipeline}} 的管道，請指定捨棄選項，然後選擇包含註解：

     ```
     aws codepipeline stop-pipeline-execution --pipeline-name {{MyFirstPipeline}} --pipeline-execution-id d-EXAMPLE --abandon --reason "Stopping execution for a bug fix"
     ```

## 停止傳入執行 (CLI)
<a name="pipelines-stop-inbound-cli"></a>

您可以使用 CLI 停止傳入執行。傳入執行是管道執行，正在等待進入停用轉換的階段。啟用轉換時，會`InProgress`繼續進入階段的傳入執行。`Stopped` 未進入階段的傳入執行。

**注意**  
停止傳入執行之後，就無法重試。

如果您沒有看到傳入執行，則停用階段轉換時不會有待處理的執行。

若要使用 AWS CLI 手動停止傳入執行，請使用 **stop-pipeline-execution**命令搭配下列參數：
+ 傳入執行 ID （必要）
+ 註解 (選擇性)
+ 管道名稱 (必要)
+ 捨棄旗標 (選擇性，預設值為 false)

命令格式：

```
aws codepipeline stop-pipeline-execution --pipeline-name {{Pipeline_Name}} –-pipeline-execution-id {{Inbound_Execution_ID}} [--abandon | --no-abandon] [--reason {{STOP_EXECUTION_REASON}}]
```

請依照上述程序中的步驟，輸入 命令並指定停止方法。

使用 **get-pipeline-state**命令來檢視傳入執行的狀態。