

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

# 設定或變更管道執行模式
<a name="execution-modes"></a>

您可以設定管道的執行模式，以指定如何處理多個執行。

如需管道執行模式的詳細資訊，請參閱 [管道執行的運作方式](concepts-how-it-works.md)。

**重要**  
對於處於 PARALLEL 模式的管道，當將管道執行模式編輯為 QUEUED 或 SUPERSEDED 時，管道狀態不會顯示更新的狀態為 PARALLEL。如需詳細資訊，請參閱[從 PARALLEL 模式變更的管道會顯示先前的執行模式](troubleshooting.md#troubleshooting-execution-mode-displayedstate)。

**重要**  
對於處於 PARALLEL 模式的管道，當將管道執行模式編輯為 QUEUED 或 SUPERSEDED 時，不會更新每個模式中管道的管道定義。如需詳細資訊，請參閱[如果變更為 QUEUED 或 SUPERSEDED 模式時編輯過了 PARALLEL 模式的管道定義](troubleshooting.md#troubleshooting-execution-mode-editing)。

**重要**  
對於處於 PARALLEL 模式的管道，無法使用階段復原。同樣地，具有復原結果類型的失敗條件無法新增至 PARALLEL 模式管道。

## 檢視執行模式的考量事項
<a name="execution-modes-viewing"></a>

在特定執行模式中檢視管道有考量。

對於 SUPERSEDED 和 QUEUED 模式，請使用管道檢視來查看進行中執行，然後按一下執行 ID 來檢視詳細資訊和歷史記錄。對於 PARALLEL 模式，按一下執行 ID 以在視覺化索引標籤上檢視進行中執行。

以下顯示 CodePipeline 中 SUPERSEDED 模式的檢視。

![\[使用 CodePipeline 的發行程序範例。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/view-mode-superseded.png)


以下顯示 CodePipeline 中 QUEUED 模式的檢視。

![\[使用 CodePipeline 的發行程序範例。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/view-mode-queued.png)


以下顯示 CodePipeline 中 PARALLEL 模式的檢視。

**重要**  
對於處於 PARALLEL 模式的管道，無法使用階段復原。同樣地，具有復原結果類型的失敗條件無法新增至 PARALLEL 模式管道。

![\[使用 CodePipeline 的發行程序範例。\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/view-mode-parallel.png)




## 在執行模式之間切換的考量事項
<a name="execution-modes-switching"></a>

以下是變更管道模式時的管道考量事項。在**編輯**模式中從一個執行模式切換到另一個執行模式，然後儲存變更時，特定檢視或狀態可能會調整。

例如，從 PARALLEL 模式切換到 QUEUED 或 SUPERSEDED 模式時，在 PARALLEL 模式中啟動的執行會繼續執行。您可以在執行歷史記錄頁面上檢視這些項目。管道檢視會顯示稍早在 QUEUED 或 SUPERSEDED 模式上執行的執行，否則會顯示空白狀態。

另一個範例是，從 QUEUED 或 SUPERSEDED 切換到 PARALLEL 模式時，您將不再看到管道檢視/狀態頁面。若要在 PARALLEL 模式中檢視執行，請使用執行詳細資訊頁面上的視覺化索引標籤。在 SUPERSEDED 或 QUEUED 模式中啟動的執行將會取消。

下表提供更多詳細資訊。


****  

| 模式變更 | 待定和作用中的執行詳細資訊 | 管道狀態詳細資訊 | 
| --- | --- | --- | 
| 已支援至已支援/已支援至佇列 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/execution-modes.html)  | 管道狀態，例如已取消，會保留在第一個模式的版本與第二個模式之間。 | 
| QUEUED 至 QUEUED / QUEUED 至 SUPERSED |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/execution-modes.html)  | 管道狀態，例如已取消，會保留在第一個模式的版本與第二個模式之間。 | 
| 平行到平行 |  所有執行都允許獨立於管道定義更新執行。  |  空白。平行模式沒有管道狀態。  | 
| 支援平行/佇列支援平行 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/execution-modes.html)  |  空白。平行模式沒有管道狀態。  | 

## 設定或變更管道執行模式 （主控台）
<a name="execution-modes-console"></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. 選擇管道的 模式。
   + **取代**
   + **已排入佇列 （需要管道類型 V2)**
   + **平行 （需要管道類型 V2)**

1. 在**編輯**頁面上，選擇**完成**。

## 設定管道執行模式 (CLI)
<a name="execution-modes-cli"></a>

若要使用 AWS CLI 設定管道執行模式，請使用 `create-pipeline`或 `update-pipeline`命令。

1. 開啟終端機工作階段 (Linux、macOS 或 Unix) 或命令提示字元 (Windows)，然後執行 **get-pipeline**命令將管道結構複製到 JSON 檔案。例如，針對名為 **MyFirstPipeline** 的管道輸入下列命令：

   ```
   aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
   ```

   此命令不會傳回任何內容，但您建立的檔案應該會顯示在您執行命令的目錄中。

1. 在任何純文字編輯器中開啟 JSON 檔案，並修改檔案的結構，以反映您要設定的管道執行模式，例如 QUEUED。

   ```
   "executionMode": "QUEUED"
   ```

   下列範例顯示如何在具有兩個階段的範例管道中將執行模式設定為 QUEUED。

   ```
   {
       "pipeline": {
           "name": "MyPipeline",
           "roleArn": "arn:aws:iam::111122223333:role/service-role/AWSCodePipelineServiceRole-us-east-1-dkpippe",
           "artifactStore": {
               "type": "S3",
               "location": "bucket"
           },
           "stages": [
               {
                   "name": "Source",
                   "actions": [
                       {
                           "name": "Source",
                           "actionTypeId": {
                               "category": "Source",
                               "owner": "AWS",
                               "provider": "CodeCommit",
                               "version": "1"
                           },
                           "runOrder": 1,
                           "configuration": {
                               "BranchName": "main",
                               "OutputArtifactFormat": "CODE_ZIP",
                               "PollForSourceChanges": "true",
                               "RepositoryName": "MyDemoRepo"
                           },
                           "outputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "inputArtifacts": [],
                           "region": "us-east-1",
                           "namespace": "SourceVariables"
                       }
                   ]
               },
               {
                   "name": "Build",
                   "actions": [
                       {
                           "name": "Build",
                           "actionTypeId": {
                               "category": "Build",
                               "owner": "AWS",
                               "provider": "CodeBuild",
                               "version": "1"
                           },
                           "runOrder": 1,
                           "configuration": {
                               "ProjectName": "MyBuildProject"
                           },
                           "outputArtifacts": [
                               {
                                   "name": "BuildArtifact"
                               }
                           ],
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "region": "us-east-1",
                           "namespace": "BuildVariables"
                       }
                   ]
               }
           ],
           "version": 1,
           "executionMode": "QUEUED"
       }
   }
   ```

1. 如果您使用的是使用 **get-pipeline** 命令擷取的管道結構，您必須在 JSON 檔案中修改結構。您必須從檔案移除 `metadata` 行，以讓 **update-pipeline** 命令可以使用它。從 JSON 檔案的管道結構移除此區段 (`"metadata": { }` 行以及 `"created"`、`"pipelineARN"` 和 `"updated"` 欄位)。

   例如，從結構中移除下列幾行：

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name",
     "created": "date",
     "updated": "date"
     }
   ```

   儲存檔案。

1. 若要套用您的變更，請執行 **update-pipeline** 命令、指定管道 JSON 檔案：
**重要**  
請確認在檔案名稱之前包含 `file://`。這是此命令必要項目。

   ```
   aws codepipeline update-pipeline --cli-input-json file://pipeline.json
   ```

   此命令會傳回所編輯管道的整個結構。
**注意**  
**update-pipeline** 命令將終止管道。若在您執行 **update-pipeline** 命令時有修訂正在透過管道執行，該執行將停止。您必須手動啟動管道，以透過更新的管道執行該修訂。