本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用管道層級變數
在本教學課程中,您將建立管道,在管道層級新增變數,並執行輸出變數值的 CodeBuild 建置動作。
重要
作為建立管道的一部分,客戶提供的 S3 成品儲存貯體將由 CodePipeline 用於成品。(這與用於 S3 來源動作的儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中,請確保 S3 成品儲存貯體由 AWS 帳戶 安全且可靠的 擁有。
必要條件
開始之前,您必須執行以下作業:
-
建立 CodeCommit 儲存庫。
-
將 .txt 檔案新增至儲存庫。
步驟 1:建立管道並建置專案
在本節中,您可以採取下列動作建立管道:
-
與 CodeCommit 儲存庫連線的來源階段。
-
具有建置動作的 AWS CodeBuild 建置階段。
使用精靈建立管道
-
在 登入 CodePipeline 主控台https://console.aws.amazon.com/codepipeline/
。 -
在 Welcome (歡迎) 頁面、Getting started (入門) 頁面、或者 Pipelines (管道) 頁面上,選擇 Create pipeline (建立管道)。
-
在 Step 1: Choose pipeline settings (步驟 1:選擇管道設定) 的 Pipeline name (管道名稱) 中,輸入
MyVariablesPipeline
。 -
在管道類型 中,保留 V2 的預設選擇。管道類型在特徵和價格方面有所不同。如需詳細資訊,請參閱管道類型。
-
在 Service role (服務角色) 中,選擇 New service role (新服務角色)。
注意
如果您選擇改用現有的 CodePipeline 服務角色,請確定您已將
codeconnections:UseConnection
IAM許可新增至您的服務角色政策。如需 CodePipeline 服務角色的指示,請參閱新增許可至 CodePipeline 服務角色 。 -
在變數 下,選擇新增變數 。在名稱中,輸入
timeout
。在預設 中,輸入 1000。在描述中,輸入下列描述:Timeout
。這將建立變數,您可以在管道執行開始時宣告值。變數名稱必須相符
[A-Za-z0-9@\-_]+
,而且可以是空字串以外的任何項目。 -
在進階設定底下,請保留預設值。在Artifact store (成品存放區) 中,針對您為管道所選取區域中的管道,選擇 Default location (預設位置),即可使用預設成品存放區 (例如指定為預設值的 Amazon S3 成品儲存貯體)。
注意
這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。
選擇 Next (下一步)。
-
在 Step 2: Add source stage (步驟 2:新增來源階段) 頁面上,新增來源階段:
-
在 Source provider (來源提供者) 中選擇 AWS CodeCommit。
-
在儲存庫名稱 和分支名稱 中,選擇您的儲存庫和分支。
選擇 Next (下一步)。
-
-
在 Add build stage (新增建置階段) 中,新增建置階段:
-
在 Build provider (建置供應商) 中,選擇 AWS CodeBuild。允許 Region (區域) 預設為管道區域。
-
選擇建立專案。
-
在 Project name (專案名稱) 中,輸入此建置專案的名稱。
-
在 Environment image (環境映像) 中,選擇 Managed image (受管映像)。針對 Operating system (作業系統),選擇 Ubuntu。
-
針對 Runtime (執行時間),選擇 Standard (標準)。針對映像,選擇 aws/codebuild/standard:5.0。
-
對於 Service role (服務角色),選擇 New service role (新服務角色)。
注意
請注意您的 CodeBuild 服務角色名稱。在本教學課程中,您將需要角色名稱才能進行最後一個步驟。
-
在 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
-
選擇繼續至 CodePipeline。這將 CodePipeline返回主控台,並建立使用建置命令進行組態的 CodeBuild 專案。建置專案使用服務角色來管理 AWS 服務 許可。此步驟可能需要數分鐘。
-
在環境變數 - 選用 下,若要將環境變數建立為建置動作的輸入變數,而該變數將由管道層級變數解析,請選擇新增環境變數 。這將建立 buildspec 中指定的變數,作為
$CUSTOM_VAR1
。在名稱中,輸入CUSTOM_VAR1
。在 Value (值) 中輸入#{variables.timeout}
。在類型 中,選擇Plaintext
。環境變數
#{variables.timeout}
的值是以步驟 6 中為管道timeout
建立的管道層級變數命名空間variables
和管道層級變數為基礎。 -
選擇 Next (下一步)。
-
-
在 Step 4: Add deploy stage (步驟 4:新增部署階段) 頁面上,選擇 Skip deploy stage (跳過部署階段),然後再次選擇 Skip (跳過) 來接受警告訊息。選擇 Next (下一步)。
-
在 Step 5: Review (步驟 5:檢閱) 上,選擇 Create pipeline (建立管道)。
步驟 2:釋出變更並檢視日誌
-
管道成功執行後,在成功的建置階段,選擇檢視詳細資訊 。
在詳細資訊頁面上,選擇日誌索引標籤。檢視 CodeBuild 建置輸出。命令會輸出輸入變數的值。
-
在左側導覽中,選擇歷史記錄 。
選擇最近的執行,然後選擇變數索引標籤。檢視管道變數的解析值。