

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

# 教學課程：建立管道的變數檢查規則做為進入條件
<a name="tutorials-varcheckrule"></a>

在本教學課程中，您會設定管道，以使用 GitHub 做為來源階段中的來源動作提供者來持續交付檔案。當您變更來源儲存庫中的來源檔案時，完整的管道便會偵測到變更。管道會執行 ，然後對照 條件中提供的來源儲存庫名稱和分支名稱檢查輸出變數，以進入建置階段。

**重要**  
在建立管道的過程中，CodePipeline 將使用客戶提供的 S3 成品儲存貯體來製作成品。（這與用於 S3 來源動作的 儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中，請確定 S3 成品儲存貯體由 所擁有 AWS 帳戶 ，安全且可靠。

**重要**  
您在此程序中新增至管道的許多動作都涉及您在建立管道之前需要建立 AWS 的資源。來源動作 AWS 的資源一律必須在您建立管道 AWS 的相同區域中建立。例如，如果您在美國東部 （俄亥俄） 區域建立管道，則 CodeCommit 儲存庫必須位於美國東部 （俄亥俄） 區域。  
您可以在建立管道時新增跨區域動作。跨區域動作 AWS 的資源必須位於您計劃執行動作的相同 AWS 區域中。如需詳細資訊，請參閱[在 CodePipeline 中新增跨區域動作](actions-create-cross-region.md)。

此範例使用範例管道搭配 GitHub （第 2 版） 來源動作和 CodeBuild 組建動作，其中組建階段的進入條件將檢查變數。

## 先決條件
<a name="tutorials-varcheckrule-prereq"></a>

開始之前，您必須執行以下作業：
+ 使用 GitHub 帳戶建立 GitHub 儲存庫。
+ 準備好您的 GitHub 登入資料。當您使用 AWS 管理主控台 設定連線時，系統會要求您使用 GitHub 登入資料登入。
+ 將 GitHub （透過 GitHub 應用程式） 設定為管道來源動作的儲存庫連線。若要建立 GitHub 儲存庫的連線，請參閱 [GitHub 連線](connections-github.md)。

## 步驟 1：建立範例來源檔案，並新增至 GitHub 儲存庫
<a name="tutorials-varcheckrule-push"></a>

在本節中，您會建立範例來源檔案，並將其新增至管道用於來源階段的儲存庫。在此範例中，您會產生並新增下列項目：
+ `README.md` 檔案。

建立 GitHub 儲存庫之後，請使用下列步驟來新增您的 README 檔案。

1. 登入您的 GitHub 儲存庫，然後選擇您的儲存庫。

1. 若要建立新檔案，請選擇**新增檔案**，然後選擇**建立新檔案**。命名檔案`README.md`並新增下列文字。

   ```
   This is a GitHub repository!
   ```

1. 選擇 **Commit changes (遞交變更)**。基於本教學的目的，請新增包含大寫單字「更新」的遞交訊息，如下列範例所示：

   ```
   Update to source files
   ```
**注意**  
字串的規則檢查區分大小寫。

   確定 `README.md` 檔案位於儲存庫的根層級。

## 步驟 2：建立管道
<a name="tutorials-varcheckrule-create-pipeline"></a>

在本節中，您可以採取下列動作建立管道：
+ 與 GitHub 儲存庫和動作連線的來源階段。
+ CodeBuild 建置階段，其中階段已針對變數檢查規則設定 On Entry 條件。

**使用精靈建立管道**

1. 前往 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) 登入 CodePipeline 主控台。

1. 在 **Welcome (歡迎)** 頁面、**Getting started (入門)** 頁面、或者 **Pipelines (管道)** 頁面上，選擇 **Create pipeline (建立管道)**。

1. 在**步驟 1：選擇建立選項**頁面的**建立選項**下，選擇**建置自訂管道**選項。選擇**下一步**。

1. 在**步驟 2：選擇管道設定**中，在**管道名稱**中輸入 **MyVarCheckPipeline**。

1. CodePipeline 提供 V1 和 V2 類型的管道，其特性和價格有所不同。V2 類型是您可以在 主控台中選擇的唯一類型。如需詳細資訊，請參閱[管道類型](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel)。如需 CodePipeline 定價的資訊，請參閱 [定價](https://aws.amazon.com/codepipeline/pricing/)。

1. 在 **Service role (服務角色)** 中，選擇 **New service role (新服務角色)**。
**注意**  
如果您選擇改用現有的 CodePipeline 服務角色，請確定您已將 `codeconnections:UseConnection` IAM 許可新增至您的服務角色政策。如需 CodePipeline 服務角色的說明，請參閱[為 CodePipeline 服務角色新增許可](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services)。

1. 在**進階設定**底下，請保留預設值。

   選擇**下一步**。

1. 在**步驟 3：新增來源階段**頁面上，新增來源階段：

   1. 在**來源提供者**中，選擇 **GitHub （透過 GitHub 應用程式）**。

   1. 在**連線**下，選擇現有的連線或建立新的連線。若要建立或管理 GitHub 來源動作的連線，請參閱 [GitHub 連線](connections-github.md)。

   1. 在**儲存庫名稱**中，選擇 GitHub 儲存庫的名稱。

   1. 在**分支名稱**中，選擇您要使用的儲存庫分支。

   1. 確定已選取**無觸發**選項。

   選擇**下一步**。

1. 在**步驟 4：新增建置階段**中，新增建置階段：

   1. 在 **Build provider (建置供應商)** 中，選擇 **AWS CodeBuild**。允許 **Region (區域)** 預設為管道區域。

   1. 選擇**建立專案**。

   1. 在 **Project name (專案名稱)** 中，輸入此建置專案的名稱。

   1. 在 **Environment image (環境映像)** 中，選擇 **Managed image (受管映像)**。針對 **Operating system (作業系統)**，選擇 **Ubuntu**。

   1. 針對 **Runtime (執行時間)**，選擇 **Standard (標準)**。針對**映像**，選擇 **aws/codebuild/standard:5.0**。

   1. 對於 **Service role (服務角色)**，選擇 **New service role (新服務角色)**。
**注意**  
請記下 CodeBuild 服務角色的名稱。在本教學課程中，您將需要最後一個步驟的角色名稱。

   1. 在 **BuildSpec** 底下，針對 **Build specifications (建置規格)** 選擇 **Insert build commands (插入建置命令)**。選擇**切換到編輯器**，並在**建置命令**下貼上以下內容。

      ```
      version: 0.2
      #env:
        #variables:
           # key: "value"
           # key: "value"
        #parameter-store:
           # key: "value"
           # key: "value"
        #git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
          #commands:
            # - command
            # - command
        #pre_build:
          #commands:
            # - command
            # - command
        build:
          commands:
            - 
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
           - '*'
          # - location
        name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. 選擇 **Continue to CodePipeline (繼續 CodePipeline)**。這會傳回 CodePipeline 主控台，並建立使用您的建置命令進行設定的 CodeBuild 專案。建置專案使用服務角色來管理 AWS 服務 許可。此步驟可能需要數分鐘。

   1. 選擇**下一步**。

1. 在**步驟 5：新增測試階段**中，選擇**略過測試階段**，然後再次選擇**略過**以接受警告訊息。

   選擇**下一步**。

1. 在**步驟 6：新增部署階段**頁面上，選擇**略過部署階段**，然後再次選擇**略過**以接受警告訊息。選擇**下一步**。

1. 在**步驟 7：檢閱**中，選擇**建立管道**。

## 步驟 2：編輯建置階段以新增條件和規則
<a name="tutorials-varcheckrule-create-condition"></a>

在此步驟中，您會編輯階段，以新增變數檢查規則的 On Entry 條件。

1. 選擇您的管道，然後選擇**編輯**。選擇在建置階段新增項目規則。

   在**規則提供者**中，選擇 **VariableCheck**。

1. 在**變數**中，輸入您要檢查的變數。在**值**中，輸入要檢查已解析變數的字串值。在下列範例畫面中，會為「等於」檢查建立規則，並為「包含」檢查建立另一個規則。  
![\[「等於」變數檢查的規則建立頁面\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/varcheck-tut-create-rule-equals.png)  
![\[「包含」變數檢查的規則建立頁面\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/varcheck-tut-create-rule-contains.png)

1. 選擇**儲存**。

   選擇**完成**。

## 步驟 3：執行管道並檢視已解析的變數
<a name="tutorials-varcheckrule-run"></a>

在此步驟中，您可以檢視變數檢查規則的解析值和結果。

1. 在規則檢查成功後檢視解析的執行，如下列範例所示。  
![\[成功執行\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/varcheck-tut-run-succeeded.png)

1. 在**時間軸**索引標籤上檢視變數資訊。  
![\[歷史記錄頁面顯示已成功變數的 Timline 標籤\]](http://docs.aws.amazon.com/zh_tw/codepipeline/latest/userguide/images/varcheck-tut-history.png)