

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

# 使用觸發和篩選來自動化啟動管道
<a name="pipelines-triggers"></a>

觸發可讓您設定管道以啟動特定事件類型或篩選的事件類型，例如偵測到特定分支或提取請求的變更時。對於在 CodePipeline 中使用 動作的連線，例如 GitHub、Bitbucket 和 GitLab，可設定來源`CodeStarSourceConnection`動作的觸發。如需使用連線之來源動作的詳細資訊，請參閱 [使用 CodeConnections 將第三方來源提供者新增至管道](pipelines-connections.md)。

CodeCommit 和 S3 等來源動作會使用自動變更偵測，在進行變更時啟動管道。如需詳細資訊，請參閱[CodeCommit 來源動作和 EventBridge](triggering.md)。

您可以使用主控台或 CLI 指定觸發。

您可以指定篩選條件類型，如下所示：
+ **無篩選條件**

  此觸發組態會在任何推送至動作組態中指定的預設分支時啟動您的管道。
+ **指定篩選條件**

  您可以新增篩選條件，在特定篩選條件上啟動管道，例如在程式碼推送的分支名稱上，並擷取確切的遞交。這也會將管道設定為不會在任何變更時自動啟動。
  + **推送**
    + 有效的篩選條件組合包括：
      + **Git 標籤**

        包含或排除
      + **分支**

        包含或排除
      + **分支 \$1 檔案路徑**

        包含或排除
  + **提取請求**
    + 有效的篩選條件組合包括：
      + **分支**

        包含或排除
      + **分支 \$1 檔案路徑**

        包含或排除
+ **請勿偵測變更**

  這不會新增觸發，而且管道不會在任何變更時自動啟動。

下表為每個事件類型提供有效的篩選選項。資料表也會針對動作組態中的自動變更偵測，顯示哪些觸發組態預設為 true 或 false。


****  

| 觸發組態 | 事件類型 | 篩選條件選項 | 偵測變更 | 
| --- | --- | --- | --- | 
| 新增觸發條件 – 無篩選條件 | 無 | 無 | true | 
| 新增觸發條件 – 程式碼推送時篩選 | 推送事件 | Git 標籤、分支、檔案路徑 | false | 
| 新增觸發條件 – 提取請求的篩選條件  | 提取請求 | 分支、檔案路徑 | false | 
| 無觸發 – 請勿偵測 | 無 | 無 | false | 

**注意**  
此觸發類型使用自動變更偵測 （做為`Webhook`觸發類型）。使用此觸發類型的來源動作提供者是針對程式碼推送設定的連線 (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com,和 GitLab 自我管理）。

如需欄位定義和觸發的進一步參考，請參閱 

如需 JSON 結構中的欄位定義清單，請參閱 [`triggers`](pipeline-requirements.md#pipeline.triggers)。

對於篩選，支援 glob 格式的規則表達式模式，如 中所述[使用語法中的 glob 模式](syntax-glob.md)。

**注意**  
在某些情況下，對於具有在檔案路徑上篩選之觸發條件的管道，管道可能不會在第一次建立具有檔案路徑篩選條件的分支時啟動。如需詳細資訊，請參閱[具有使用檔案路徑觸發篩選之連線的管道可能不會在分支建立時開始](troubleshooting.md#troubleshooting-file-paths-filtering)。

## 觸發條件篩選條件的考量事項
<a name="pipelines-filter-considerations"></a>

使用觸發程序時，適用下列考量事項。
+ 每個來源動作不能新增多個觸發。
+ 您可以將多個篩選條件類型新增至觸發條件。如需範例，請參閱 [4：具有兩種具有衝突的推送篩選條件類型的觸發條件包含和排除](#example-filter-multiple-push)。
+ 對於具有分支和檔案路徑篩選條件的觸發，第一次推送分支時，管道不會執行，因為無法存取新建立分支變更的檔案清單。
+ 在推送 （分支篩選條件） 和提取請求 （分支篩選條件） 觸發組態相交的情況下，合併提取請求可能會觸發兩個管道執行。
+ 對於在提取請求事件上觸發管道的篩選條件，對於封閉提取請求事件類型，連線的第三方儲存庫提供者可能具有合併事件的個別狀態。例如，在 Bitbucket 中，合併的 Git 事件不是提取請求關閉事件。不過，在 GitHub 中，合併提取請求是關閉事件。如需詳細資訊，請參閱[依供應商提取觸發的請求事件](#pipelines-filter-pullrequest-events)。

## 依供應商提取觸發的請求事件
<a name="pipelines-filter-pullrequest-events"></a>

下表提供 Git 事件的摘要，例如用於提取請求關閉，這會導致依提供者的提取請求事件類型。


****  

|  | 連線的儲存庫提供者 | 觸發的 PR 事件 | Bitbucket | GitHub | GHES | GitLab | 
| --- | --- | --- | --- | --- | --- | --- | 
| 開啟 - 此選項會在為分支/檔案路徑建立提取請求時觸發管道。 | 建立提取請求會導致開啟的 Git 事件。 | 建立提取請求會導致開啟的 Git 事件。 | 建立提取請求會導致開啟的 Git 事件。 | 建立提取請求會導致開啟的 Git 事件。 | 
| 更新 - 當針對分支/檔案路徑發佈提取請求修訂時，此選項會觸發管道。 | 發佈更新會導致更新的 Git 事件。 | 發佈更新會導致更新的 Git 事件。 | 發佈更新會導致更新的 Git 事件。 | 發佈更新會導致更新的 Git 事件。 | 
| 已關閉 - 此選項會在分支/檔案路徑的提取請求關閉時觸發管道。 | 在 Bitbucket 中合併提取請求會導致關閉 Git 事件。重要：在 Bitbucket 中手動關閉提取請求而不合併不會導致關閉 Git 事件。 | 合併或手動關閉提取請求會導致關閉 Git 事件。 | 合併或手動關閉提取請求會導致關閉 Git 事件。 | 合併或手動關閉提取請求會導致關閉 Git 事件。 | 

## 觸發條件篩選條件的範例
<a name="pipelines-filter-examples"></a>

對於具有推送和提取請求事件類型篩選條件的 Git 組態，指定的篩選條件可能會彼此衝突。以下是推送和提取請求事件的有效篩選條件組合範例。觸發可以包含多種篩選條件類型，例如觸發組態中的兩種推送篩選條件類型，而推送和提取請求篩選條件類型將在它們之間使用 OR 操作，這表示任何相符項目都會啟動管道。同樣地，每個篩選條件類型可以包含多個篩選條件，例如 filePaths 和分支；這些篩選條件將使用 AND 操作，這表示只有完全相符項目才會啟動管道。每個篩選條件類型可以包含 和 排除，其中排除優先於 包含。如果分支或檔案路徑符合排除模式，即使也符合包含模式，也不會觸發管道。當遞交變更多個檔案時，會根據篩選條件獨立評估每個檔案；如果任何變更的檔案通過 （符合 包含和不符合 排除），管道就會啟動。包含/排除 內的名稱，例如分支名稱，請使用 OR 操作。下列清單摘要說明 Git 組態物件每個部分的操作。

如需 JSON 結構中的欄位定義清單，以及包含和排除 的詳細參考，請參閱 [`triggers`](pipeline-requirements.md#pipeline.triggers)。

**Example 1：具有分支和檔案路徑篩選條件的篩選條件類型 (AND 操作）**  <a name="example-filter-branches-filepaths"></a>
對於提取請求等單一篩選條件類型，您可以結合篩選條件，這些篩選條件將使用 AND 操作，這表示只有完全相符項目才會啟動管道。下列範例顯示具有兩個不同篩選條件 (`filePaths` 和 ) 的推送事件類型的 Git 組態`branches`。在下列範例中， `filePaths`將使用 AND’ed with `branches`：  

```
{
  "filePaths": {
    "includes": ["common/**/*.js"]
  },
  "branches": {
    "includes": ["feature/**"]
  }
}
```
使用上面的 Git 組態，此範例顯示由於 AND 操作成功而開始管道執行的事件。換言之，篩選條件`common/app.js`會包含檔案路徑，即使`refs/heads/feature/triggers `指定的分支沒有影響，也會將管道啟動為 AND。  

```
{
  "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "common/app.js"
      ]
      ...
    }
  ]
}
```
下列範例顯示具有上述組態的觸發事件，不會啟動管道執行，因為分支可以篩選，但檔案路徑不是。  

```
{
   "ref": "refs/heads/feature/triggers",
  ...
  "commits": [
    {
      ...
      "modified": [
        "src/Main.java"
      ]
      ...
    }
  ]
}
```

**Example 2：排除優先於包含**  <a name="example-filter-includes-excludes"></a>
在單一篩選條件中，排除優先於 包含 。下列範例顯示組態物件中具有單一篩選條件 (`branches`) 的 Git 組態。這表示如果分支符合排除模式 (`feature-branch` 範例中為 )，即使管道也符合包含模式，也不會觸發管道。如果包含模式相符且沒有排除模式相符，例如`main`分支的 ，則會觸發管道。  
對於下列範例 JSON：  
+ 將遞交推送至`main`分支會觸發管道
+ 將遞交推送到`feature-branch`分支不會觸發管道。

```
{
  "branches": {
      "Includes": [
          "main"
      ],
      "Excludes": [
          "feature-branch"
      ]
   }
```

**Example 3：具有推送和提取請求篩選條件類型的觸發 (OR 操作）、檔案路徑和分支的篩選條件 (AND 操作），以及包含/排除 （排除優先）**  <a name="example-filter-push-pullrequest"></a>
觸發組態物件，例如包含推送事件類型和提取請求事件類型的觸發，請在兩個事件類型之間使用 OR 操作。下列範例顯示的觸發組態具有包含`main`分支的推送事件類型，以及一個`main`排除相同分支的提取請求事件類型。此外，推送事件類型已`LICENSE.txt`排除一個檔案路徑，並`README.MD`包含一個檔案路徑。對於第二個事件類型，`feature-branch`分支 （包含） `Created` 上 `Closed`或 的提取請求會啟動管道，而管道在 `feature-branch-2`或 `main`分支 （排除） 上建立或關閉提取請求時不會啟動。在每個事件類型中，排除會優先於包含 。例如，對於`feature-branch`分支上的提取請求事件 （包含於提取請求），推送事件類型會排除`feature-branch`分支，因此推送不會觸發管道。  
針對下列範例，  
+ 將遞交推送至`README.MD`檔案路徑 （包含） 的`main`分支 （包含） 將觸發管道。
+ 在`feature-branch`分支 （已排除） 上，推送遞交不會觸發管道。
+ 在包含的分支上，編輯`README.MD`檔案路徑 （包含） 會觸發管道。
+ 在包含的分支上，僅編輯`LICENSE.TXT`檔案路徑 （排除） 不會觸發管道。不過，如果相同的遞交也會變更 `README.MD`（包含），則管道會觸發 ，因為每個檔案都會獨立評估。
+ 在`feature-branch`分支上，關閉提取請求會觸發管道，因為 `feature-branch` 包含提取請求事件類型和事件類型 CLOSED 相符項目。
下圖顯示 組態。  

![\[具有推送篩選條件類型和提取請求篩選條件類型的範例觸發組態\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/example-trigger-filters-pushpluspullrequest.png)

以下是組態的範例 JSON。  

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "branches": {
                                "includes": [
                                    "main"
                                ],
                                "excludes": [
                                    "feature-branch",
                                    "feature-branch-2"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "README.md"
                                ],
                                "excludes": [
                                    "LICENSE.txt"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED",
                                "OPEN"
                            ],
                            "branches": {
                                "includes": [
                                    "feature-branch"
                                ],
                                "excludes": [
                                    "feature-branch-2",
                                    "main"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 4：具有兩種具有衝突的推送篩選條件類型的觸發條件包含和排除**  <a name="example-filter-multiple-push"></a>
下圖顯示推送篩選條件類型，指定在 標籤 `release-1`（包含） 上進行篩選。新增第二個推送篩選條件類型，指定 在分支 `main`（包含） 上進行篩選，且不開始推送至`feature*`分支 （排除）。  
在下列範例中：  
+ 從`feature-branch`分支上的標籤 `release-1`（包含於第一個推送篩選條件） 推送版本 （排除`feature*`於第二個推送篩選條件） 將觸發管道，因為兩個推送篩選條件類型在兩者之間使用 OR 操作，且第一個推送篩選條件 （標籤 `release-1`) 相符。
+ 從`main`分支推送版本 （包含於第二個推送篩選條件） 將啟動管道。
   
下列編輯頁面範例顯示兩種推送篩選條件類型及其 的組態，包括 和 排除。  

![\[具有包含 release-1 標籤的推送篩選條件類型，以及包含 main* 分支且排除 feature* 分支的推送篩選條件類型的範例觸發組態\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/example-trigger-filters-pushtags-pushbranches.png)


以下是組態的範例 JSON。

```
"triggers": [
            {
                "providerType": "CodeStarSourceConnection",
                "gitConfiguration": {
                    "sourceActionName": "Source",
                    "push": [
                        {
                            "tags": {
                                "includes": [
                                    "release-1"
                                ]
                            }
                        },
                        {
                            "branches": {
                                "includes": [
                                    "main*"
                                ],
                                "excludes": [
                                    "feature*"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    },
```

**Example 5：在預設動作組態 BranchName 用於手動啟動時設定的觸發**  <a name="example-filter-default-manual"></a>
  
動作組態預設`BranchName`欄位定義了在管道手動啟動時將使用的單一分支，而具有篩選條件的觸發條件可用於您指定的任何分支。  
以下是顯示 `BranchName` 欄位之動作組態的範例 JSON。  

```
{
                "name": "Source",
                "actions": [
                    {
                        "name": "Source",
                        "actionTypeId": {
                            "category": "Source",
                            "owner": "AWS",
                            "provider": "CodeStarSourceConnection",
                            "version": "1"
                        },
                        "runOrder": 1,
                        "configuration": {
                            "BranchName": "main",
                            "ConnectionArn": "ARN",
                            "DetectChanges": "false",
                            "FullRepositoryId": "owner-name/my-bitbucket-repo",
                            "OutputArtifactFormat": "CODE_ZIP"
                        },
                        "outputArtifacts": [
                            {
                                "name": "SourceArtifact"
                            }
                        ],
                        "inputArtifacts": [],
                        "region": "us-west-2",
                        "namespace": "SourceVariables"
                    }
                ],
```
下列範例動作輸出顯示手動啟動管道時使用了預設分支主節點。  

![\[手動啟動管道的動作輸出頁面範例\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/example-source-action-manual.png)

下列範例動作輸出顯示提取請求和分支，當依提取請求篩選時，用於觸發。  

![\[以觸發提取請求篩選條件類型啟動的管道的動作輸出頁面範例\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/example-source-action-pr.png)


# 在無篩選條件的程式碼推送時新增觸發
<a name="pipelines-trigger-add"></a>

觸發可讓您將管道設定為在特定事件類型上啟動，例如程式碼推送或提取請求。對於在 CodePipeline 中使用 CodeStarSourceConnection 動作的連線，例如 GitHub、Bitbucket 和 GitLab，可設定來源動作的觸發條件。

**新增觸發條件 （主控台）**

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. 在**觸發類型**中，選擇**無篩選條件**。

# 使用程式碼推送或提取請求事件類型新增觸發
<a name="pipelines-filter"></a>

您可以設定管道觸發條件的篩選條件，以啟動不同 Git 事件的管道執行，例如標籤或分支推送、特定檔案路徑的變更、開啟特定分支的提取請求等。您可以使用 AWS CodePipeline 主控台或 中的 **create-pipeline**和 **update-pipeline**命令 AWS CLI 來設定觸發篩選條件。

**注意**  
動作組態`BranchName`欄位定義單一分支，而具有篩選條件的觸發條件可用於您指定的任何分支。對於使用觸發來透過推送或提取請求篩選分支的管道，管道不會在動作組態中使用預設`BranchName`欄位分支。不過，手動啟動管道時，動作組態中 `BranchName` 欄位的分支是預設值。如需範例，請參閱 [5：在預設動作組態 BranchName 用於手動啟動時設定的觸發](pipelines-triggers.md#example-filter-default-manual)。

您可以為下列觸發類型指定篩選條件：
+ **推送**

  當變更推送到您的來源儲存庫時，推送觸發會啟動管道。執行將使用您推送*到*的分支中的遞交 （即目的地分支）。您可以篩選分支、檔案路徑或 Git 標籤上的推送觸發。
+ **提取請求**

  當您的來源儲存庫中開啟、更新或關閉提取請求時，提取請求觸發會啟動管道。執行將使用來自您*提取*來源分支的遞交 （即來源分支）。您可以在分支和檔案路徑上篩選提取請求觸發。

  提取請求支援的事件類型如下。會忽略所有其他提取請求事件。
  + 已開啟
  + Updated
  + 關閉 （合併）
**注意**  
某些提取請求事件行為可能因提供者而有所不同。如需詳細資訊，請參閱[依供應商提取觸發的請求事件](pipelines-triggers.md#pipelines-filter-pullrequest-events)。

管道定義可讓您在相同的推送觸發組態中結合不同的篩選條件。如需管道定義的詳細資訊，請參閱 [新增推送和提取請求事件類型的篩選條件 (CLI)](#pipelines-filter-cli)。如需欄位定義的清單，請參閱本指南中*管道結構參考*中的[觸發](pipeline-requirements.md#pipeline.triggers)條件。

**Topics**
+ [新增推送和提取請求事件類型的篩選條件 （主控台）](#pipelines-filter-console)
+ [新增推送和提取請求事件類型的篩選條件 (CLI)](#pipelines-filter-cli)
+ [新增推送和提取請求事件類型的篩選條件 (CloudFormation 範本）](#pipelines-filter-cfn)

## 新增推送和提取請求事件類型的篩選條件 （主控台）
<a name="pipelines-filter-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. 在**事件類型**中，從下列選項中選擇**推送**。
   + 選擇**推送**，在將變更推送至來源儲存庫時啟動管道。選擇此選項可讓欄位指定分支和檔案路徑或 Git 標籤的篩選條件。
   + 選擇**提取請求**，以在來源儲存庫中開啟、更新或關閉提取請求時啟動管道。選擇此選項可讓欄位指定目的地分支和檔案路徑的篩選條件。

1. 在**推送**下，在**篩選條件類型**中，選擇下列其中一個選項。
   + 選擇**分支**以指定觸發器監控的來源儲存庫中的分支，以了解何時啟動工作流程執行。在**包含**中，輸入您要為觸發組態指定的 glob 格式分支名稱模式，以在指定分支的變更時啟動管道。在**排除**中，以 glob 格式輸入分支名稱的 regex 模式，您要為觸發組態指定此模式來忽略和不要在指定分支的變更時啟動管道。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。
**注意**  
如果包含和排除兩者的模式相同，則預設為排除模式。

     您可以使用 glob 模式來定義分支名稱。例如，使用 `main*` 來比對以 開頭的所有分支`main`。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。

     對於推送觸發，指定您要推送*的*分支，也就是*目的地*分支。對於提取請求觸發，指定您要開啟提取請求的目標分支。
   + （選用） 在**檔案路徑**下，為您的觸發指定檔案路徑。視需要在**包含**和**排除**中輸入名稱。

     您可以使用 glob 模式來定義檔案路徑名稱。例如，使用 `prod*`來比對以 開頭的所有檔案路徑`prod`。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。
   + 選擇**標籤**以設定管道觸發組態，以 Git 標籤開頭。在**包含**中，輸入您要為觸發組態指定的 glob 格式標籤名稱模式，以在發行指定的標籤時啟動管道。在**排除**中，輸入您要為觸發組態指定的 glob 格式標籤名稱的規則運算式模式，以忽略指定標籤或標籤的發行時不要啟動管道。如果包含和排除兩者的標籤模式相同，則預設為排除標籤模式。

1. 在**推送**下，在**篩選條件類型**中，選擇下列其中一個選項。
   + 選擇**分支**以指定觸發器監控的來源儲存庫中的分支，以了解何時啟動工作流程執行。在**包含**中，輸入您要為觸發組態指定的 glob 格式分支名稱模式，以在指定分支的變更時啟動管道。在**排除**中，以 glob 格式輸入分支名稱的 regex 模式，您要為觸發組態指定此模式來忽略和不要在指定分支的變更時啟動管道。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。
**注意**  
如果包含和排除兩者的模式相同，則預設為排除模式。

     您可以使用 glob 模式來定義分支名稱。例如，使用 `main*` 來比對以 開頭的所有分支`main`。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。

     對於推送觸發，指定您要推送*的*分支，也就是*目的地*分支。對於提取請求觸發，指定您要開啟提取請求的目標分支。
   + （選用） 在**檔案路徑**下，為您的觸發指定檔案路徑。視需要在**包含**和**排除**中輸入名稱。

     您可以使用 glob 模式來定義檔案路徑名稱。例如，使用 `prod*`來比對以 開頭的所有檔案路徑`prod`。如需詳細資訊，請參閱[使用語法中的 glob 模式](syntax-glob.md)。
   + 選擇**提取請求**，將管道觸發組態設定為從您指定的提取請求事件開始。

## 新增推送和提取請求事件類型的篩選條件 (CLI)
<a name="pipelines-filter-cli"></a>

您可以更新管道 JSON 以新增觸發條件的篩選條件。

若要使用 AWS CLI 建立或更新管道，請使用 `create-pipeline`或 `update-pipeline`命令。

下列範例 JSON 結構提供 下欄位定義的參考`create-pipeline`。

如需欄位定義的清單，請參閱本指南中*管道結構參考*中的[觸發](pipeline-requirements.md#pipeline.triggers)條件。

```
{
    "pipeline": {
        "name": "MyServicePipeline",
        "triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
        "stages": [
            {
                "name": "Source",
                "actions": [
                    {
                        "name": "ApplicationSource",
                        "configuration": {
                            "BranchName": "mainline",
                            "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE",
                            "FullRepositoryId": "monorepo-example",
                            "OutputArtifactFormat": "CODE_ZIP"
                        }
                    }
                ]
            }
        ]
    }
}
```

## 新增推送和提取請求事件類型的篩選條件 (CloudFormation 範本）
<a name="pipelines-filter-cfn"></a>

您可以在 中更新管道資源 CloudFormation ，以新增觸發條件篩選。

下列範例範本程式碼片段提供觸發條件欄位定義的 YAML 參考。如需欄位定義的清單，請參閱本指南中*管道結構參考*中的[觸發](pipeline-requirements.md#pipeline.triggers)條件。

如需連線來源和觸發篩選條件組態的完整範本範例，請參閱《 * CloudFormation 使用者指南*》中的[具有兩個階段的管道和觸發組態](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration)。

```
pipeline:
  name: MyServicePipeline
  executionMode: PARALLEL
  triggers:
    - provider: CodeConnection
      gitConfiguration:
        sourceActionName: ApplicationSource
        push:
          - filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
          - tags:
              includes:
                - release-v0
                - release-v1
              excludes:
                - release-v2
        pullRequest:
          - events:
              - CLOSED
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
            filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
  stages:
    - name: Source
      actions:
        - name: ApplicationSource
          configuration:
            BranchName: mainline
            ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE
            FullRepositoryId: monorepo-example
            OutputArtifactFormat: CODE_ZIP
```

# 新增觸發以關閉變更偵測
<a name="pipelines-trigger-no-detection"></a>

觸發可讓您設定管道以啟動特定事件類型，例如程式碼推送或提取請求。觸發條件可設定為具有在 CodePipeline 中使用 動作之連線的來源`CodeStarSourceConnection`動作，例如 GitHub、Bitbucket 和 GitLab。

**新增觸發以關閉變更偵測 （主控台）**

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. 在**觸發類型**中，選擇**不偵測變更**。