View a markdown version of this page

教學課程:使用管道層級變數 - AWS CodePipeline

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

教學課程:使用管道層級變數

在本教學課程中,您將建立管道,在管道層級新增變數,並執行輸出變數值的 CodeBuild 組建動作。

重要

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

先決條件

開始之前,您必須執行以下作業:

  • 建立 CodeCommit 儲存庫。

  • 將 .txt 檔案新增至儲存庫。

步驟 1:建立管道和建置專案

在本節中,您可以採取下列動作建立管道:

  • 與 CodeCommit 儲存庫連線的來源階段。

  • 具有建置動作的 AWS CodeBuild 建置階段。

使用精靈建立管道
  1. 前往 https://console.aws.amazon.com/codepipeline/ 登入 CodePipeline 主控台。

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

  3. 在步驟 1:選擇建立選項頁面的建立選項下,選擇建置自訂管道選項。選擇下一步。

  4. 在步驟 2:選擇管道設定中,在管道名稱中輸入 MyVariablesPipeline。

  5. 在管道類型中,將預設選擇保留在 V2。管道類型在特性和價格方面有所不同。如需詳細資訊,請參閱管道類型。

  6. 在 Service role (服務角色) 中,選擇 New service role (新服務角色)。

    注意

    如果您選擇改用現有的 CodePipeline 服務角色,請確定您已將 codeconnections:UseConnection IAM 許可新增至您的服務角色政策。如需 CodePipeline 服務角色的指示,請參閱將許可新增至 CodePipeline 服務角色。

  7. 在變數下,選擇新增變數。在名稱中,輸入 timeout。在預設中,輸入 1000。在描述中,輸入下列描述:Timeout。

    這會建立變數,您可以在管道執行開始時宣告值。變數名稱必須相符[A-Za-z0-9@\-_]+,而且可以是空字串以外的任何項目。

  8. 在進階設定底下,請保留預設值。在Artifact store (成品存放區) 中,針對您為管道所選取區域中的管道,選擇 Default location (預設位置),即可使用預設成品存放區 (例如指定為預設值的 ​Amazon S3 成品儲存貯體)。

    注意

    這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。

    選擇下一步。

  9. 在步驟 3:新增來源階段頁面上,新增來源階段:

    1. 在 Source provider (來源提供者) 中選擇 AWS CodeCommit。

    2. 在儲存庫名稱和分支名稱中,選擇您的儲存庫和分支。

    選擇下一步。

  10. 在步驟 4:新增建置階段中,新增建置階段:

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

    2. 選擇建立專案。

    3. 在 Project name (專案名稱) 中,輸入此建置專案的名稱。

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

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

    6. 對於 Service role (服務角色),選擇 New service role (新服務角色)。

      注意

      請記下 CodeBuild 服務角色的名稱。在本教學課程中,您將需要最後一個步驟的角色名稱。

    7. 在 BuildSpec 底下,針對 Build specifications (建置規格) 選擇 Insert build commands (插入建置命令)。選擇切換到編輯器,並在建置命令下貼上以下內容。在 buildspec 中,客戶變數$CUSTOM_VAR1將用於輸出建置日誌中的管道變數。您將在下列步驟中將$CUSTOM_VAR1輸出變數建立為環境變數。

      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: - echo $CUSTOM_VAR1 #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths
    8. 選擇 Continue to CodePipeline (繼續 CodePipeline)。這會傳回 CodePipeline 主控台,並建立使用您的建置命令進行設定的 CodeBuild 專案。建置專案使用服務角色來管理 AWS 服務 許可。此步驟可能需要數分鐘。

    9. 在環境變數 - 選用下,若要將環境變數建立為由管道層級變數解析之建置動作的輸入變數,請選擇新增環境變數。這會建立 buildspec 中指定為 的變數$CUSTOM_VAR1。在名稱中,輸入 CUSTOM_VAR1。在 Value (值) 中輸入 #{variables.timeout}。在類型中,選擇 Plaintext。

      環境變數#{variables.timeout}的值是以步驟 7 中為管道timeout建立的管道層級變數命名空間variables和管道層級變數為基礎。

    10. 選擇下一步。

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

    選擇下一步。

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

  13. 在步驟 7:檢閱中,選擇建立管道。

步驟 2:釋出變更並檢視日誌

  1. 管道成功執行後,在您成功的建置階段,選擇檢視詳細資訊。

    在詳細資訊頁面上,選擇日誌索引標籤。檢視 CodeBuild 組建輸出。命令會輸出輸入變數的值。

  2. 在左側導覽中,選擇歷史記錄。

    選擇最近的執行,然後選擇變數索引標籤。檢視管道變數的解析值。