本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立管道、階段和動作
您可以使用 AWS CodePipeline 主控台或 AWS CLI 來建立管道。管道必須擁有至少兩個階段。管道的第一階段必須是來源階段。管道必須至少有一個其他階段是建置或部署階段。
重要
在建立管道的過程中,CodePipeline 將使用客戶提供的 S3 成品儲存貯體來製作成品。(這與用於 S3 來源動作的儲存貯體不同。) 如果 S3 成品儲存貯體位於與管道帳戶不同的帳戶中,請確定 S3 成品儲存貯體屬於 AWS 帳戶 安全且可靠的 。
您可以將動作新增至管道,而這些動作位於與管道 AWS 區域 不同的 中。跨區域動作是指 AWS 服務 是 動作的提供者,而動作類型或提供者類型位於與管道不同的 AWS 區域中。如需詳細資訊,請參閱在中新增跨區域動作 CodePipeline。
您也可以建立管道,使用 Amazon ECS 做為部署提供者來建置和部署容器型應用程式。建立使用 Amazon ECS 部署容器型應用程式的管道之前,您必須建立 中所述的影像定義檔案映像定義檔案參考。
CodePipeline 使用變更偵測方法,在推送原始程式碼變更時啟動管道。這些偵測方法視原始碼類型而定:
-
CodePipeline 使用 Amazon CloudWatch Events 來偵測 CodeCommit 來源儲存庫和分支或 S3 來源儲存貯體中的變更。
注意
當您使用主控台建立或編輯管道時,將為您建立變更偵測資源。如果您使用 AWS CLI 建立管道,則必須自行建立其他資源。如需詳細資訊,請參閱 CodeCommit 來源動作和 EventBridge。
建立自訂管道 (主控台)
若要在 主控台中建立自訂管道,您必須提供來源檔案位置,以及您將用於動作之提供者的相關資訊。
當您使用主控台來建立管道時,必須加入一個原始碼階段以及下方其中之一或兩者:
-
建置階段。
-
部署階段。
當您使用管道精靈時,CodePipeline 會建立階段的名稱 (來源、建置、預備)。這些名稱無法變更。您可以在之後加入的階段使用更明確的名稱 (例如 BuildToGamma 或 DeployToProd)。
步驟 1:建立並命名管道
登入 AWS Management Console ,並在 https://http://console.aws.amazon.com/codesuite/codepipeline/home
開啟 CodePipeline 主控台。 -
在 Welcome (歡迎使用) 頁面上,選擇 Create pipeline (建立管道)。
如果這是您第一次使用 CodePipeline,請選擇開始使用。
-
在步驟 1:選擇建立選項頁面的建立選項下,選擇建置自訂管道選項。選擇 Next (下一步)。
-
在步驟 2:選擇管道設定頁面上,在管道名稱中輸入管道的名稱。
在單一 AWS 帳戶中,您在 AWS 區域中建立的每個管道都必須具有唯一的名稱。名稱可以重複用於不同區域中的管道。
注意
在您建立管道後,便無法更改其名稱。如需其他限制的相關資訊,請參閱 AWS CodePipeline 中的配額。
-
在管道類型中,選擇下列其中一個選項。管道類型在特性和價格方面有所不同。如需詳細資訊,請參閱管道類型。
-
V1 類型管道具有 JSON 結構,其中包含標準管道、階段和動作層級參數。
-
V2 類型管道具有與 V1 類型的相同結構,以及額外的參數支援,例如 Git 標籤和管道層級變數的觸發。
-
-
在 Service role (服務角色) 中,執行下列其中一項作業:
-
選擇新服務角色,以允許 CodePipeline 在 IAM 中建立新的服務角色。
-
選擇 Existing service role (現有服務角色) 以使用已在 IAM 中建立的服務角色。在 Role ARN (角色 ARN) 中,從清單選擇您的服務角色 ARN。
注意
視您的服務角色建立時間而定,您可能需要更新其許可以支援其他 AWS 服務。如需相關資訊,請參閱 將許可新增至 CodePipeline 服務角色。
如需服務角色與其政策陳述式的詳細資訊,請參閱 管理 CodePipeline 服務角色。
-
-
(選用) 在變數下,選擇新增變數以在管道層級新增變數。
如需管道層級變數的詳細資訊,請參閱變數參考。如需在管道執行時傳遞之管道層級變數的教學課程,請參閱教學課程:使用管道層級變數。
注意
雖然在管道層級新增變數是選擇性的,但對於在管道層級指定具有變數的管道,若未提供任何值,管道執行將會失敗。
-
(選用) 展開 Advanced settings (進階設定)。
-
在 Artifact store (成品存放區) 中,執行下列其中一項操作:
-
選擇預設位置以使用預設成品存放區,例如指定為預設的 S3 成品儲存貯體,用於 AWS 區域 您為管道選取的 管道。
-
在與您的管道相同的區域中,若您已有成品存放區 (例如 S3 成品儲存貯體),請選擇 Custom location (自訂位置)。在 Bucket (儲存貯體) 中,選擇儲存貯體名稱。
注意
這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。當您建立或編輯管道時,您必須在管道區域中擁有一個成品儲存貯體,且每個執行動作 AWS 的區域必須有一個成品儲存貯體。
如需詳細資訊,請參閱 輸入和輸出成品 和 CodePipeline 管道結構參考。
-
-
在 Encryption key (加密金鑰) 中,執行下列其中一項操作:
-
若要使用 CodePipeline 預設 AWS KMS key 來加密管道成品存放區 (S3 儲存貯體) 中的資料,請選擇預設 AWS 受管金鑰。
-
若要使用客戶受管金鑰來加密管道成品存放區 (S3 儲存貯體) 中的資料,請選擇客戶受管金鑰。選擇金鑰 ID、金鑰 ARN 或別名 ARN。
-
-
選擇 Next (下一步)。
步驟 2:建立原始碼階段
-
在步驟 3:新增來源階段頁面的來源提供者中,選擇存放原始碼的儲存庫類型,指定其所需的選項。其他欄位會根據選取的來源提供者顯示,如下所示。
-
對於 Bitbucket Cloud、GitHub (透過 GitHub 應用程式)、GitHub Enterprise Server、GitLab.com, 或 GitLab 自我管理:
-
在連線下,選擇現有的連線或建立新的連線。若要為您的 GitHub 來源動作建立或管理連線,請參閱GitHub 連線。
-
選擇您要用作管道來源位置的儲存庫。
選擇在觸發類型上新增觸發條件或篩選條件,以啟動您的管道。如需使用觸發程序的詳細資訊,請參閱 使用程式碼推送或提取請求事件類型新增觸發。如需使用 glob 模式篩選的詳細資訊,請參閱 使用語法中的 glob 模式。
-
在輸出成品格式中,選擇成品的格式。
-
若要使用預設方法儲存 GitHub 動作的輸出成品,請選擇 CodePipeline 預設。動作會從 GitHub 儲存庫存取檔案,並將成品存放在管道成品存放區中的 ZIP 檔案中。
-
若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。
如果您選擇此選項,您將需要更新 CodeBuild 專案服務角色的許可,如 所示CodePipeline 疑難排解。如需示範如何使用完整複製選項的教學課程,請參閱教學課程:搭配 GitHub 管道來源使用完整複製。
-
-
-
對於 Amazon S3:
-
在 Amazon S3 location (Amazon S3 位置) 中,提供 S3 儲存貯體名稱與連結到儲存貯體中物件的路徑,並啟用版本控制。儲存貯體名稱與路徑的格式類似下列內容:
s3://
bucketName
/folderName
/objectName
注意
當 Amazon S3 是管道的來源提供者時,您可以將來源檔案壓縮為單一 .zip,並將 .zip 上傳至來源儲存貯體。您也可以上傳單一解壓縮檔案;不過,預期 .zip 檔案的下游動作會失敗。
-
選擇 S3 來源儲存貯體後,CodePipeline 會建立 Amazon CloudWatch Events 規則和要為此管道建立的 AWS CloudTrail 線索。接受 Change detection options (變更偵測選項) 下的預設設定: 這可讓 CodePipeline 使用 Amazon CloudWatch Events AWS CloudTrail ,並偵測新管道的變更。選擇 Next (下一步)。
-
-
在 AWS CodeCommit 中:
-
在儲存庫名稱中,選擇您要用作管道來源位置的 CodeCommit 儲存庫名稱。在 Branch name (分支名稱),從下拉式清單中選擇您想要使用的分支。
-
在輸出成品格式中,選擇成品的格式。
-
若要使用預設方法儲存 CodeCommit 動作的輸出成品,請選擇 CodePipeline 預設。動作會從 CodeCommit 儲存庫存取檔案,並將成品存放在管道成品存放區中的 ZIP 檔案中。
-
若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。
如果您選擇此選項,您將需要將
codecommit:GitPull
許可新增至 CodeBuild 服務角色,如 所示新增 CodeCommit 來源動作的 CodeBuild GitClone 許可 CodeCommit 。您也需要將codecommit:GetRepository
許可新增至 CodePipeline 服務角色,如 所示將許可新增至 CodePipeline 服務角色。如需示範如何使用完整複製選項的教學課程,請參閱教學課程:搭配 GitHub 管道來源使用完整複製。
-
-
在您選擇 CodeCommit 儲存庫名稱和分支之後,變更偵測選項中會顯示訊息,顯示要為此管道建立的 Amazon CloudWatch Events 規則。接受 Change detection options (變更偵測選項) 下的預設設定: 這可讓 CodePipeline 使用 Amazon CloudWatch Events 來偵測新管道的變更。
-
-
對於 Amazon ECR:
-
在儲存庫名稱中,選擇 Amazon ECR 儲存庫的名稱。
-
在 Image tag (映像標籤) 中,指定映像名稱和版本,如果與最新不同的話。
-
在 Output artifacts (輸出成品) 中,選擇輸出成品預設值,例如 MyApp,其中包含您要下一個階段使用的映像名稱和儲存庫 URI 資訊。
如需使用包含 Amazon ECR 來源階段的 CodeDeploy 藍綠部署建立 Amazon ECS 管道的教學課程,請參閱 教學課程:使用 Amazon ECR 來源和 ECS-to-CodeDeploy 部署建立管道。
當您在管道中包含 Amazon ECR 來源階段時,當您遞交變更時,來源動作會產生
imageDetail.json
檔案做為輸出成品。如需imageDetail.json
詳細資訊,請參閱 Amazon ECS 藍/綠部署動作的 imageDetail.json 檔案。 -
注意
物件和檔案類型必須與您計劃使用的部署系統相容 (例如 Elastic Beanstalk 或 CodeDeploy)。支援的檔案類型必須包含 .zip、.tar 以及 .tgz 檔案。如需 Elastic Beanstalk 支援的容器類型的詳細資訊,請參閱自訂和設定 Elastic Beanstalk 環境和支援的平台。如需使用 CodeDeploy 部署修訂的詳細資訊,請參閱上傳您的應用程式修訂和準備修訂。
-
-
若要設定自動重試的階段,請選擇在階段失敗時啟用自動重試。如需自動重試的詳細資訊,請參閱設定自動重試失敗的階段。
-
選擇 Next (下一步)。
步驟 4:建立建置階段
如果您打算建立部署階段,此步驟為選用。
-
在步驟 4:新增建置階段頁面上,執行下列其中一項操作,然後選擇下一步:
-
如果您打算建立測試或部署階段,請選擇略過建置階段。
-
若要為您的建置階段選擇命令動作,請選擇命令。
注意
執行 命令動作會在 中產生個別費用 AWS CodeBuild
在命令中,輸入動作的 shell 命令。如需 命令動作的詳細資訊,請參閱 命令動作參考。
-
若要選擇 CodeBuild 等其他建置提供者,請選擇其他提供者。從 Build provider (建置提供者) 中選擇建置服務的自訂動作提供者,並提供該提供者的組態詳細資訊。如需如何將 Jenkins 新增為建置提供者的範例,請參閱 教學:建立四階段管道。
-
從 Build provider (建置供應商),選擇 AWS CodeBuild。
在區域中,選擇資源所在的 AWS 區域。區域欄位會指定為此動作類型和提供者類型建立 AWS 資源的位置。此欄位只會針對動作提供者為 的動作顯示 AWS 服務。區域欄位預設為與管道相同的 AWS 區域。
在 Project name (專案名稱) 中,選擇您的建置專案。如果您已在 CodeBuild 中建立建置專案,請選擇它。或者,您可以在 CodeBuild 中建立建置專案,然後返回此任務。請遵循 CodeBuild 使用者指南中建立使用 CodeBuild 的管道中的指示。 CodeBuild
在環境變數中,若要將 CodeBuild 環境變數新增至建置動作,請選擇新增環境變數。每個變數都是由三個項目組成:
-
在 Name (名稱) 中輸入環境變數的名稱或索引鍵。
-
在 Value (值) 中輸入環境變數的值。如果您選擇變數類型的參數,請確定此值是您已存放在 AWS Systems Manager 參數存放區中的參數名稱。
注意
我們強烈建議不使用環境變數來存放敏感值,尤其是 AWS 登入資料。當您使用 CodeBuild 主控台或 AWS CLI 時,環境變數會以純文字顯示。對於敏感值,建議您改用 Parameter (參數) 類型。
-
(選擇性) 在 Type (類型) 中輸入環境變數的類型。有效值為 Plaintext (純文字) 或 Parameter (參數)。預設值為 Plaintext (純文字)。
(選用) 在建置類型中,選擇下列其中一項:
-
若要在單一建置動作執行中執行每個建置,請選擇單一建置。
-
若要在相同的建置動作執行中執行多個建置,請選擇批次建置。
(選用) 如果您選擇執行批次組建,您可以選擇將所有成品從批次合併到單一位置,將所有組建成品放入單一輸出成品。
-
-
-
若要設定自動重試的階段,請選擇在階段失敗時啟用自動重試。如需自動重試的詳細資訊,請參閱設定自動重試失敗的階段。
-
選擇 Next (下一步)。
步驟 5:建立測試階段
如果您打算建立建置或部署階段,此步驟是選用的。
-
在步驟 5:新增測試階段頁面上,執行下列其中一項操作,然後選擇下一步:
-
如果您打算建立建置或部署階段,請選擇略過測試階段。
-
在測試提供者中,選擇測試動作提供者,然後填寫適當的欄位。
-
-
選擇 Next (下一步)。
步驟 6:建立部署階段
如果您已建立建置階段,此步驟為選用。
-
在步驟 6:新增部署階段頁面上,執行下列其中一項操作,然後選擇下一步:
-
如果您在先前步驟中建立建置或測試階段,請選擇略過部署階段。
注意
如果您已經略過建置或測試階段,則不會顯示此選項。
-
在 Deploy provider (部署提供者) 中,選擇您已為部署提供者建立的自訂動作。
在 區域中,僅針對跨區域動作,選擇資源建立 AWS 的區域。區域欄位會指定為此動作類型和提供者類型建立資源的位置 AWS 。此欄位只會顯示動作提供者為 的動作 AWS 服務。區域欄位預設為與管道相同的 AWS 區域。
-
在 Deploy provider (部署供應商) 中,可用於預設供應商的欄位如下所示:
-
CodeDeploy
在應用程式名稱中,輸入或選擇現有 CodeDeploy 應用程式的名稱。在 Deployment group (部署群組) 中,輸入該應用程式的部署群組名稱。選擇 Next (下一步)。您也可以在 CodeDeploy 主控台中建立應用程式、部署群組或兩者。
-
AWS Elastic Beanstalk
在應用程式名稱中,輸入或選擇現有 Elastic Beanstalk 應用程式的名稱。在 Environment name (環境名稱) 中,輸入應用程式的環境。選擇 Next (下一步)。您也可以在 Elastic Beanstalk 主控台中建立應用程式、環境或兩者。
-
AWS OpsWorks Stacks
在 Stack (堆疊) 中,輸入或選擇您想要使用的堆疊名稱。在 Layer (分層) 中,選擇您的目標執行個體隸屬的分層。在 App (應用程式) 中,選擇您想要更新與部署的應用程式。如果您需要建立應用程式,請選擇在 中建立新的 AWS OpsWorks應用程式。
如需將應用程式新增至堆疊和 layer in 的詳細資訊 AWS OpsWorks,請參閱AWS OpsWorks 《 使用者指南》中的新增應用程式。
如需如何在 CodePipeline 中使用簡單管道做為您在 AWS OpsWorks 圖層上執行之程式碼來源的end-to-end範例,請參閱搭配使用 CodePipeline AWS OpsWorks Stacks。
-
AWS CloudFormation
執行以下任意一項:
-
在動作模式中,選擇建立或更新堆疊,輸入堆疊名稱和範本檔案名稱,然後選擇 AWS CloudFormation 要擔任的角色名稱。或者,輸入組態檔案的名稱,然後選擇 IAM 功能選項。
-
在動作模式中,選擇建立或取代變更集,輸入堆疊名稱和變更集名稱,然後選擇 AWS CloudFormation 要擔任的角色名稱。或者,輸入組態檔案的名稱,然後選擇 IAM 功能選項。
如需將 AWS CloudFormation 功能整合到 CodePipeline 中管道的資訊,請參閱AWS CloudFormation 《 使用者指南》中的使用 CodePipeline 持續交付。
-
-
Amazon ECS
在叢集名稱中,輸入或選擇現有 Amazon ECS 叢集的名稱。在 Service name (服務名稱) 中,輸入或選擇在叢集上執行的服務名稱。您也可以建立叢集和服務。在 Image filename (映像檔案名稱) 中,輸入說明服務容器與映像之映像定義檔案的名稱。
注意
Amazon ECS 部署動作需要
imagedefinitions.json
檔案做為部署動作的輸入。檔案預設名稱為 imagedefinitions.json。如果您選用不同的名稱,必須在建立管道部署階段時提供名稱。如需詳細資訊,請參閱Amazon ECS 標準部署動作的 imagedefinitions.json 檔案。選擇 Next (下一步)。
注意
請確定您的 Amazon ECS 叢集已設定兩個或多個執行個體。Amazon ECS 叢集必須包含至少兩個執行個體,以便將一個執行個體維護為主要執行個體,另一個執行個體用於容納新的部署。
如需使用管道部署容器型應用程式的教學課程,請參閱教學課程:使用 CodePipeline 持續部署。
-
Amazon ECS (Blue/Green) (Amazon ECS (藍/綠))
輸入 CodeDeploy 應用程式和部署群組、Amazon ECS 任務定義和 AppSpec 檔案資訊,然後選擇下一步。
注意
Amazon ECS (Blue/Green) 動作需要 imageDetail.json 檔案做為部署動作的出入成品。由於 Amazon ECR 來源動作會建立此檔案,因此具有 Amazon ECR 來源動作的管道不需要提供
imageDetail.json
檔案。如需詳細資訊,請參閱Amazon ECS 藍/綠部署動作的 imageDetail.json 檔案。如需使用 CodeDeploy 為 Amazon ECS 叢集建立藍綠部署管道的教學課程,請參閱 教學課程:使用 Amazon ECR 來源和 ECS-to-CodeDeploy 部署建立管道。
-
AWS Service Catalog
如果您想要使用主控台中的欄位來指定您的組態,請選擇 Enter deployment configuration (輸入部署組態),或如果您擁有另一個組態檔案,請選擇 Configuration file (組態檔案)。輸入產品和組態資訊,然後選擇 Next (下一步)。
如需使用管道將產品變更部署至 Service Catalog 的教學課程,請參閱教學課程:建立部署至 Service Catalog 的管道。
-
Alexa Skills Kit
在 Alexa Skill ID (Alexa 技能 ID) 中,輸入您 Alexa 技能的技能 ID。在 Client ID (用戶端 ID) 和 Client secret (用戶端密碼) 中,輸入使用 Login with Amazon (LWA) 安全性描述檔產生的登入資料。在 Refresh token (重新整理字符) 中, 輸入您使用 ASK CLI 命令 (用於擷取重新整理字符) 產生的重新整理字符。選擇 Next (下一步)。
如需有關使用您的管道部署 Alexa 技能和產生 LWA 登入資料的教學課程,請參閱教學:建立部署 Amazon Alexa 技能的管道。
-
Amazon Simple Storage Service (Amazon S3)
在 Bucket (儲存貯體) 中,輸入您要使用的 S3 儲存貯體名稱。如果您部署階段的輸入成品是 ZIP 檔案,請選擇 Extract file before deploy (部署前解壓縮檔案)。如果選取 Extract file before deploy (部署前解壓縮檔案),您可以選擇 ZIP 檔案將要解壓縮至的 Deployment path (部署路徑)。如果未選取此選項,您需要在 S3 object key (S3 物件金鑰) 中輸入一個值。
注意
大多數來源和建置階段輸出成品都將被壓縮。除了 Amazon S3 之外,所有管道來源提供者都會先壓縮來源檔案,再將它們做為下一個動作的輸入成品。
(選用) 在固定 ACL 中,輸入要套用至部署至 Amazon S3 之物件的固定 ACL。
注意
套用固定的 ACL 時會覆寫任何套用到物件的現有 ACL。
(選用) 在 Cache control (快取控制) 中,為從儲存貯體下載物件的請求指定快取控制參數。如需有效值的清單,請參閱 HTTP 操作的
Cache-Control
標頭欄位。若要在 Cache control (快取控制) 中輸入多個值,請在各值之間使用逗號。如此範例所示,您可以在每個逗號後面加上空格 (選用)。 前面的範例項目會顯示在 CLI 中,如下所示:
"CacheControl": "public, max-age=0, no-transform"
選擇 Next (下一步)。
如需使用 Amazon S3 部署動作提供者建立管道的教學課程,請參閱 教學課程:建立使用 Amazon S3 做為部署提供者的管道。
-
-
-
若要設定自動重試的階段,請選擇在階段失敗時啟用自動重試。如需自動重試的詳細資訊,請參閱 設定自動重試失敗的階段。
-
若要設定自動復原階段,請選擇設定階段失敗時的自動復原。如需自動復原的詳細資訊,請參閱 設定自動復原的階段。
-
選擇 下一個步驟。
步驟 7:檢閱管道
-
在步驟 7:檢閱頁面上,檢閱管道組態,然後選擇建立管道以建立管道,或選擇上一個以返回並編輯您的選擇。請選擇 Cancel (取消) 以放棄建立管道並離開精靈。
您現在已建立管道,並可在主控台中檢視。管道會在您建立後即開始執行。如需詳細資訊,請參閱在 CodePipeline 中檢視管道和詳細資訊。如需有關變更管道的詳細資訊,請參閱 在 CodePipeline 中編輯管道。
建立管道 (CLI)
若要使用 AWS CLI 建立管道,您可以建立 JSON 檔案來定義管道結構,然後使用 --cli-input-json
參數執行 create-pipeline命令。
重要
您無法使用 AWS CLI 建立包含合作夥伴動作的管道。您必須改用 CodePipeline 主控台。
如需管道結構的詳細資訊,請參閱 CodePipeline API 參考中的 CodePipeline 管道結構參考和 建立管道。
如要建立 JSON 檔案,請使用範本管道 JSON 檔案並進行編輯,然後在執行 create-pipeline 命令時呼叫該檔案。
先決條件:
您需要在 中為 CodePipeline 建立的服務角色 ARNCodePipeline 入門。當您執行 create-pipeline命令時,您可以在管道 JSON 檔案中使用 CodePipeline 服務角色 ARN。如需建立服務角色的詳細資訊,請參閱建立服 CodePipeline 務角色。與 主控台不同,在 中執行 create-pipeline命令 AWS CLI 沒有為您建立 CodePipeline 服務角色的選項。服務角色必須已存在。
您需要存放管道成品之 S3 儲存貯體的名稱。此儲存貯體必須與管道位於相同的區域。當執行 create-pipeline 命令時,您在管道 JSON 檔案中使用儲存貯體名稱。與主控台不同,在 中執行 create-pipeline命令 AWS CLI 並不會建立 S3 儲存貯體來存放成品。該儲存貯體必須已經存在。
注意
您也可使用 get-pipeline 命令以取得該管道的 JSON 結構複本,然後以純文字編輯器修改該結構。
主題
建立 JSON 檔案
-
在終端機 (Linux、macOS 或 Unix) 或命令提示字元 (Windows),在本機目錄中建立新的文字檔案。
-
(選用) 您可以在管道層級新增一或多個變數。您可以在 CodePipeline 動作的組態中參考此值。您可以在建立管道時新增變數名稱和值,也可以選擇在主控台中啟動管道時指派值。
注意
雖然在管道層級新增變數是選擇性的,但對於在管道層級指定具有變數的管道,若未提供任何值,管道執行將會失敗。
管道層級的變數會在管道執行時間解析。所有變數都是不可變的,這表示在指派值後無法更新。具有解析值的管道層級變數會顯示在每個執行的歷史記錄中。
您可以使用管道結構中的變數屬性,在管道層級提供變數。在下列範例中,變數的值
Variable1
為Value1
。"variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ]
在下列步驟中,將此結構新增至管道 JSON 或範例 JSON。如需變數的詳細資訊,包括命名空間資訊,請參閱變數參考。
-
在純文字編輯器中開啟檔案並編輯值,以反映您想建立的結構。您必須至少變更管道名稱。您也應考慮是否變更:
-
此管道成品要存放的 S3 儲存貯體。
-
您程式碼的來源位置。
-
部署供應商。
-
您想如何部署程式碼?
-
您的管道標籤。
以下兩個階段的範本管道結構,反白了您應考慮變更的管道值。您的管道可能包含超過兩個以上的階段:
{ "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE::role/AWS-CodePipeline-Service", "stages": [ { "name": "
Source
", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "amzn-s3-demo-source-bucket
", "S3ObjectKey": "ExampleCodePipelineSampleBundle.zip
", "PollForSourceChanges": "false" }, "runOrder": 1 } ] }, { "name": "Staging", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-CodeDeploy-Application
", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication
", "DeploymentGroupName": "CodePipelineDemoFleet
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "codepipeline-us-east-2-250656481468" }, "name": "MyFirstPipeline", "version": 1, "variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ] }, "triggers": [ { "providerType": "CodeStarSourceConnection", "gitConfiguration": { "sourceActionName": "Source", "push": [ { "tags": { "includes": [ "v1" ], "excludes": [ "v2" ] } } ] } } ] "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 }, "tags": [{ "key": "Project", "value": "ProjectA" }] }此範例透過將管道的
Project
標籤鍵和ProjectA
值,新增標籤到管道。如需在 CodePipeline 中標記資源的詳細資訊,請參閱 標記 資源。請確認您 JSON 檔案中的
PollForSourceChanges
參數已如下所示進行設定:"PollForSourceChanges": "false",
CodePipeline 使用 Amazon CloudWatch Events 來偵測 CodeCommit 來源儲存庫和分支或 S3 來源儲存貯體中的變更。下一步驟包含了為您的管道手動建立這些資源的說明。在您使用建議的變更偵測方法時,因為無須使用定期檢查,故可將旗標設為
false
以將其停用。 -
-
若要在與您的管道不同的區域中建立建置、測試或部署動作,您必須將以下項目新增到管道結構。如需說明,請參閱 在中新增跨區域動作 CodePipeline。
-
將
Region
參數新增到動作的管道結構。 -
使用
artifactStores
參數來指定您具有 動作的每個 AWS 區域的成品儲存貯體。
-
-
當您對其結構滿意時,使用像是
pipeline.json
的名稱儲存您的檔案。
建立管道
-
執行 create-pipeline 命令,並用
--cli-input-json
參數以指定您之前建立的 JSON 檔案。若要使用名為 pipeline.json 的 JSON 檔案建立名為
MySecondPipeline
的管道,其中包含名稱 "MySecondPipeline
" 做為 JSONname
中的 值,您的命令看起來會如下所示:aws codepipeline create-pipeline --cli-input-json file://pipeline.json
重要
請確認在檔案名稱之前包含
file://
。這是此命令必要項目。此命令會傳回您所建立的所有管道結構。
-
若要檢視管道,請開啟 CodePipeline 主控台,然後從管道清單中選擇它,或使用 get-pipeline-state命令。如需詳細資訊,請參閱在 CodePipeline 中檢視管道和詳細資訊。
-
若您使用 CLI 來建立管道,您必須為管道手動建立建議的變更偵測資源:
-
對於具有 CodeCommit 儲存庫的管道,您必須手動建立 CloudWatch Events 規則,如中所述為 CodeCommit 來源 (CLI) 建立 EventBridge 規則。
-
對於具有 Amazon S3 來源的管道,您必須手動建立 CloudWatch Events 規則和 AWS CloudTrail 線索,如中所述連線至使用 EventBridge 和 的 Amazon S3 來源動作 AWS CloudTrail。
-
從靜態範本建立管道
您可以在 主控台中建立管道,該管道使用 範本來設定具有您指定之原始程式碼和屬性的管道。您必須提供來源檔案位置,以及您將用於動作的來源提供者的相關資訊。您可以為 Amazon ECR 或 CodeConnections 提供的任何第三方儲存庫指定來源動作,例如 GitHub。
範本會在 中 AWS CloudFormation 為您的管道建立堆疊,其中包含下列資源:
-
會使用 V2 管道類型建立管道。在管道類型中,選擇下列其中一個選項。管道類型在特性和價格方面有所不同。如需詳細資訊,請參閱管道類型。
-
為您的管道建立服務角色,並在範本中參考。
-
成品存放區是使用預設成品存放區建立的,例如指定為預設的 S3 成品儲存貯體,用於您為管道選取的 AWS 區域 中的管道。
若要檢視用於靜態範本建立精靈的開放原始碼入門範本集合,請參閱位於 https://https://github.com/aws/codepipeline-starter-templates
當您使用靜態範本建立管道時,管道結構會根據使用案例的需求在每個範本中設定。例如,部署到 的範本 AWS CloudFormation 會做為此程序中的範例。範本會產生名為 DeployToCloudFormationService 的管道,結構如下:
-
包含來源動作的建置階段,其中包含您在精靈中指定的組態。
-
在 中具有部署動作和相關資源堆疊的部署階段 AWS CloudFormation。
當您使用靜態範本建立管道時,CodePipeline 會建立階段的名稱 (來源、建置、預備)。這些名稱無法變更。您可以在之後加入的階段使用更明確的名稱 (例如 BuildToGamma 或 DeployToProd)。
步驟 1:選擇您的建立選項
登入 AWS Management Console ,並在 https://http://console.aws.amazon.com/codesuite/codepipeline/home
開啟 CodePipeline 主控台。 -
在 Welcome (歡迎使用) 頁面上,選擇 Create pipeline (建立管道)。
如果這是您第一次使用 CodePipeline,請選擇開始使用。
-
在步驟 1:選擇建立選項頁面的建立選項下,選擇從範本建立管道選項。選擇 Next (下一步)。
步驟 2:選擇範本
選擇範本以建立具有部署階段、自動化或 CI 管道的管道。
-
在步驟 2:選擇範本頁面上,執行下列其中一項操作,然後選擇下一步:
-
如果您打算建立部署階段,請選擇部署。檢視部署到 ECR 或 CloudFormation 的範本選項。在此範例中,選擇部署,然後選擇部署到 CloudFormation。
-
如果您打算建立 CI 管道,請選擇持續整合。檢視 CI 管道的選項,例如建置至 Gradle。
-
如果您打算建立自動化管道,請選擇自動化。檢視自動化的選項,例如排程 python 組建。
-
-
步驟 3:選擇來源
-
在步驟 3:選擇來源頁面的來源提供者中,選擇儲存原始碼的儲存庫提供者,指定其所需的選項,然後選擇下一步。
-
對於 Bitbucket Cloud、GitHub (透過 GitHub 應用程式)、GitHub Enterprise Server、GitLab.com, 或 GitLab 自我管理:
-
在連線下,選擇現有的連線或建立新的連線。若要為您的 GitHub 來源動作建立或管理連線,請參閱GitHub 連線。
-
選擇您要用作管道來源位置的儲存庫。
選擇在觸發類型上新增觸發條件或篩選條件,以啟動您的管道。如需使用觸發程序的詳細資訊,請參閱 使用程式碼推送或提取請求事件類型新增觸發。如需使用 glob 模式篩選的詳細資訊,請參閱 使用語法中的 glob 模式。
-
在輸出成品格式中,選擇成品的格式。
-
若要使用預設方法儲存 GitHub 動作的輸出成品,請選擇 CodePipeline 預設。動作會從 GitHub 儲存庫存取檔案,並將成品存放在管道成品存放區中的 ZIP 檔案中。
-
若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。
如果您選擇此選項,您將需要更新 CodeBuild 專案服務角色的許可,如 所示CodePipeline 疑難排解。如需示範如何使用完整複製選項的教學課程,請參閱教學課程:搭配 GitHub 管道來源使用完整複製。
-
-
-
對於 Amazon ECR:
-
在儲存庫名稱中,選擇 Amazon ECR 儲存庫的名稱。
-
在 Image tag (映像標籤) 中,指定映像名稱和版本,如果與最新不同的話。
-
在 Output artifacts (輸出成品) 中,選擇輸出成品預設值,例如 MyApp,其中包含您要下一個階段使用的映像名稱和儲存庫 URI 資訊。
當您在管道中包含 Amazon ECR 來源階段時,當您遞交變更時,來源動作會產生
imageDetail.json
檔案做為輸出成品。如需imageDetail.json
詳細資訊,請參閱 Amazon ECS 藍/綠部署動作的 imageDetail.json 檔案。 -
注意
物件和檔案類型必須與您計劃使用的部署系統相容 (例如 Elastic Beanstalk 或 CodeDeploy)。支援的檔案類型必須包含 .zip、.tar 以及 .tgz 檔案。如需 Elastic Beanstalk 支援容器類型的詳細資訊,請參閱自訂和設定 Elastic Beanstalk 環境和支援的平台。如需使用 CodeDeploy 部署修訂的詳細資訊,請參閱上傳您的應用程式修訂和準備修訂。
-
步驟 4:設定範本
在此範例中,已選取 CloudFormation 的部署。在此步驟中,為您的範本新增組態。

-
在步驟 4:設定範本的堆疊名稱中,輸入管道的名稱。
-
編輯適用於範本之許可的預留位置 IAM 政策。
-
選擇從範本建立管道
-
訊息顯示正在建立管道資源。
步驟 5:檢視管道
-
現在您已建立管道,您可以在 CodePipeline 主控台中檢視它,並在 中檢視堆疊 AWS CloudFormation。管道會在您建立後即開始執行。如需詳細資訊,請參閱在 CodePipeline 中檢視管道和詳細資訊。如需有關變更管道的詳細資訊,請參閱 在 CodePipeline 中編輯管道。