在中建立管線 CodePipeline - AWS CodePipeline

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

在中建立管線 CodePipeline

您可以使用 AWS CodePipeline 控制台或 AWS CLI 建立管線。管道必須擁有至少兩個階段。管道的第一階段必須是來源階段。管道必須至少有一個其他階段是建置或部署階段。

您可以將動作新增至管道位於與管道不同的 AWS 區域中的管道。「跨區域」動作是指動作的提供者,而動作類型或提供者類型位於與管線不同的「 AWS 區域」中。 AWS 服務 如需詳細資訊,請參閱 在 CodePipeline 中新增跨區域動作

您也可以使用 Amazon ECS 做為部署供應商,建立管道來建置和部署容器型應用程式。在建立使用 Amazon ECS 部署容器型應用程式的管道之前,您必須建立映像定義檔,如中所述。映像定義檔案參考

CodePipeline 推送原始程式碼變更時,會使用變更偵測方法來啟動管線。這些偵測方法視原始碼類型而定:

  • CodePipeline 使用 Amazon CloudWatch 事件偵測 CodeCommit 來源儲存庫和分支或 S3 來源儲存貯體中的變更。

注意

當您使用主控台建立或編輯管道時,將為您建立變更偵測資源。如果您使用 AWS CLI 建立管線,則必須自行建立其他資源。如需詳細資訊,請參閱 CodeCommit 來源動作和 EventBridge

建立管道 (主控台)

若要在主控台中建立管道,您必須提供原始檔案位置,以及您將用於動作的提供者相關資訊。

當您使用主控台來建立管道時,必須加入一個原始碼階段以及下方其中之一或兩者:

  • 建置階段。

  • 部署階段。

當您使用管線精靈時, CodePipeline 會建立階段的名稱 (來源、組建、暫存)。這些名稱無法變更。您可以在稍後新增的階段中使用更具體的名稱 (例如, BuildToGamma 或 DeployToProd)。

步驟 1:建立並命名管道
  1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 http://console.aws.amazon.com/codesuite/codepipeline/home

  2. Welcome (歡迎使用) 頁面上,選擇 Create pipeline (建立管道)。

    如果這是您第一次使用 CodePipeline,請選擇「開始使用」。

  3. Step 1: Choose pipeline settings (步驟 1:選擇管道設定) 頁面的 Pipeline name (管道名稱) 中輸入管道的名稱。

    在單一 AWS 帳戶中,您在「 AWS 區域」中建立的每個管線都必須具有唯一的名稱。名稱可以重複用於不同區域中的管道。

    注意

    在您建立管道後,便無法更改其名稱。如需其他限制的相關資訊,請參閱 AWS CodePipeline 中的配額

  4. 配管類型中,選擇下列其中一個選項。管道類型的特性和價格不同。如需詳細資訊,請參閱 管線類型

    • V1 類型管道具有包含標準管道、階段和動作層級參數的 JSON 結構。

    • V2 類型管線與 V1 類型具有相同的結構,以及額外的參數支援,例如 Git 標籤上的觸發程序和管線層級變數。

  5. Service role (服務角色) 中,執行下列其中一項作業:

    • 選擇 [新增服務角色] CodePipeline 以允許在 IAM 中建立新的服務角色。

    • 選擇 Existing service role (現有服務角色) 以使用已在 IAM 中建立的服務角色。在 Role ARN (角色 ARN) 中,從清單選擇您的服務角色 ARN。

    注意

    視建立服務角色的時間而定,您可能需要更新其權限以支援其他權限 AWS 服務。如需相關資訊,請參閱 將許可新增至 CodePipeline 服務角色

    如需服務角色與其政策陳述式的詳細資訊,請參閱 管理服 CodePipeline 務角色

  6. (選擇性) 在變數下,選擇新增變數以在管線層級新增變數。

    如需管線層級變數的詳細資訊,請參閱Variables。如需在管線執行時傳送的管線層級變數的教學課程,請參閱。教學課程:使用管線層級變數

    注意

    雖然在管線層級新增變數是可選的,但對於在沒有提供值的管線層級使用變數指定的配管,管線執行將會失敗。

  7. (選用) 展開 Advanced settings (進階設定)

  8. Artifact store (成品存放區) 中,執行下列其中一項操作:

    1. 選擇預設位置以針對您為管道選取的管道使用預設成品存放區,例如指定為預設值的 AWS 區域 S3 成品儲存貯體。

    2. 在與您的管道相同的區域中,若您已有成品存放區 (例如 S3 成品儲存貯體),請選擇 Custom location (自訂位置)。在 Bucket (儲存貯體) 中,選擇儲存貯體名稱。

    注意

    這不是原始碼的來源儲存貯體。這是管道的成品存放區。每個管道都需要有個別成品存放區,例如 S3 儲存貯體。建立或編輯管道時,管線區域中必須有一個人工因素儲存貯體,而每個執行動作的「 AWS 區域」都必須有一個成品儲存貯體。

    如需詳細資訊,請參閱 輸入和輸出成品CodePipeline 配管結構參照

  9. Encryption key (加密金鑰) 中,執行下列其中一項操作:

    1. 若要使用 CodePipeline 預設值 AWS KMS key 來加密管道人工因素存放區 (S3 儲存貯體) 中的資料,請選擇預設 AWS 受管金鑰

    2. 若要使用客戶受管金鑰加密管道成品存放區 (S3 儲存貯體) 中的資料,請選擇客戶受管金鑰。選擇金鑰識別碼、金鑰 ARN 或別名 ARN。

  10. 選擇下一步

步驟 2:建立原始碼階段
  • Step 2: Add source stage (步驟 2:新增來源階段) 頁面的 Source provider (來源供應商) 下拉式選單中,選擇您的原始碼所存放的儲存庫類型、指定其必要選項,然後選擇 Next step (下一步)

    • 對於比特桶雲 GitHub(版本 2), GitHub 企業服務器, GitLab.com 或 GitLab自我管理:

      1. 在「連線」下,選擇現有的連線或建立新的連線。若要建立或管理來 GitHub 源動作的連線,請參閱GitHub 連接

      2. 選擇您要用作管線來源位置的存放庫。

        選擇在觸發器類型上新增觸發器或篩選器,以啟動管線。如需使用觸發器的詳細資訊,請參閱篩選程式碼推送或提取要求的觸發程序。如需使用 glob 模式篩選的詳細資訊,請參閱在語法中使用 glob 模式

      3. 在 [輸出成品格式] 中,選擇成品的格式。

        • 若要使用預設方法儲存 GitHub 動作的輸出成品,請選擇CodePipeline預設值。此動作會從存 GitHub 放庫存取檔案,並將人工因素儲存在管線人工因素存放區中的 ZIP 檔案中。

        • 若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。

          如果您選擇此選項,則需要更新 CodeBuild 專案服務角色的權限,如中所示疑難排 CodePipeline。如需說明如何使用「完整複製」選項的教學課程,請參閱教學課程:搭 GitHub 配管線來源使用完整複製

    • 對於 Amazon S3

      1. Amazon S3 location (Amazon S3 位置) 中,提供 S3 儲存貯體名稱與連結到儲存貯體中物件的路徑,並啟用版本控制。儲存貯體名稱與路徑的格式類似下列內容:

        s3://bucketName/folderName/objectName
        注意

        當 Amazon S3 是管道的來源供應商時,您可以將一或多個來源檔案壓縮為單一 .zip,然後將 .zip 上傳到來源儲存貯體。您也可以上傳單一解壓縮檔案;不過,預期 .zip 檔案的下游動作會失敗。

      2. 選擇 S3 來源儲存貯體後, CodePipeline 建立 Amazon CloudWatch 事件規則和要為此管道建立的 AWS CloudTrail 追蹤。接受 Change detection options (變更偵測選項) 下的預設設定:​ 這可 CodePipeline 讓您使用 Amazon CloudWatch 事件 AWS CloudTrail 並偵測新管道的變更。選擇下一步

    • AWS CodeCommit中:

      • 存放庫名稱中,選擇要用作管線來源位置的 CodeCommit 存放庫名稱。在 Branch name (分支名稱),從下拉式清單中選擇您想要使用的分支。

      • 在 [輸出成品格式] 中,選擇成品的格式。

        • 若要使用預設方法儲存 CodeCommit 動作的輸出成品,請選擇CodePipeline預設值。此動作會從存 CodeCommit 放庫存取檔案,並將人工因素儲存在管線人工因素存放區中的 ZIP 檔案中。

        • 若要存放包含儲存庫 URL 參考的 JSON 檔案,以便下游動作可以直接執行 Git 命令,請選擇 Full clone (完整複製)。此選項只能由 CodeBuild 下游動作使用。

          如果您選擇此選項,則需要將codecommit:GitPull權限新增至您的 CodeBuild 服務角色,如中所示新增 CodeCommit來源動作的 CodeBuild GitClone 權限。您還需要將codecommit:GetRepository權限添加到 CodePipeline 服務角色,如中所示將許可新增至 CodePipeline 服務角色。如需說明如何使用「完整複製」選項的教學課程,請參閱教學課程:搭 GitHub 配管線來源使用完整複製

      • 選擇 CodeCommit 儲存庫名稱和分支後,變更偵測選項中會顯示一則訊息,顯示要為此管道建立的 Amazon E CloudWatch vents 規則。接受 Change detection options (變更偵測選項) 下的預設設定:​ 這可 CodePipeline 讓您使用 Amazon CloudWatch 事件偵測新管道的變更。

    • 對於 Amazon ECR

      • 儲存庫名稱中,選擇 Amazon ECR 儲存庫的名稱。

      • Image tag (映像標籤) 中,指定映像名稱和版本,如果與最新不同的話。

      • 輸出人工因素中,選擇輸出人工因素預設值 MyApp,例如,其中包含您要下一個階段使用的影像名稱和存放庫 URI 資訊。

        如需使用 CodeDeploy藍綠色部署 (包括 Amazon ECR 來源階段) 為 Amazon ECS 建立管道的教學課程,請參閱。教學課程:使用 Amazon ECR 來源和 ECS 到部署建立管道 CodeDeploy

      當您在管道中包含 Amazon ECR 來源階段時,當您提交變更時,來源動作會產生imageDetail.json檔案做為輸出成品。如需 imageDetail.json 詳細資訊,請參閱 適用於 Amazon ECS 藍色/綠色部署動作的 imageDetail.json 檔案

    注意

    物件和檔案類型必須與您計劃使用的部署系統相容 (例如,Elastic Beanstalk 或 CodeDeploy)。支援的檔案類型必須包含 .zip、.tar 以及 .tgz 檔案。如需 Elastic Beanstalk 支援容器類型的詳細資訊,請參閱自訂和設定 Elastic Beanstalk 環境和支援的平台。如需使用部署修訂版本的詳細資訊 CodeDeploy,請參閱上傳應用程式修訂版本和準備修訂版本。

步驟 3:建立建置階段

如果您打算建立部署階段,此步驟為選用。

  • Step 3: Add build stage (步驟 3:新增建置階段) 頁面上,執行下列其中一項動作,然後選擇 Next (下一步)

    • 如果您打算建立部署階段,請選擇 Skip build stage (跳過建置階段)

    • Build provider (建置提供者) 中選擇建置服務的自訂動作提供者,並提供該提供者的組態詳細資訊。如需如何將 Jenkins 新增為建置提供者的範例,請參閱 教學:建立四階段管道

    • Build provider (建置供應商),選擇 AWS CodeBuild

      區域中,選擇資源所在的 AWS 區域。[Re gion] 欄位會指定針對此動作類型和提供者類型建立 AWS 資源的位置。只有動作提供者為的動作才會顯示此欄位 AWS 服務。「區域」(Region) 欄位預設為與管線相同的「 AWS 區域」。

      Project name (專案名稱) 中,選擇您的建置專案。如果您已在中建立組建專案 CodeBuild,請選擇它。或者,您可以在中創建一個構建項目, CodeBuild 然後返回到此任務。請遵循「使用者指南」中的「建立使用的管線」 CodeBuild 中的CodeBuild指示進行。

      環境變數中,若要將 CodeBuild環境變數新增至您的建置動作,請選擇 [新增環境變數]。每個變數都是由三個項目組成:

      • Name (名稱) 中輸入環境變數的名稱或索引鍵。

      • Value (值) 中輸入環境變數的值。如果您為變數類型選擇「參數」,請確定此值是您已儲存在「 AWS Systems Manager 參數存放區」中的參數名稱。

        注意

        我們強烈建議使用環境變數來儲存敏感值,尤其是 AWS 憑證。使用 CodeBuild 主控台或 AWS CLI 時,環境變數會以純文字顯示。對於敏感值,建議您改用 Parameter (參數) 類型。

      • (選擇性) 在 Type (類型) 中輸入環境變數的類型。有效值為 Plaintext (純文字)Parameter (參數)。預設值為 Plaintext (純文字)

      (選擇性) 在 [建置類型] 中,選擇下列其中一項:

      • 若要在單一建置動作執行中執行每個組建,請選擇 [單一組建]。

      • 若要在同一個建置動作執行中執行多個組建,請選擇「Batch 建置」。

      (選擇性) 如果您選擇執行批次組建,您可以選擇將批次中的所有人工因素合併到單一位置,將所有組建成品置入單一輸出成品中。

步驟 4:建立部署階段

如果您已建立建置階段,此步驟為選用。

  • Step 4: Add deploy stage (步驟 4:新增部署階段) 頁面上,執行下列其中一項動作,然後選擇 Next (下一步)

    • 如果您已在前一個步驟中建立建置階段,選擇 Skip deploy stage (跳過部署階段)

      注意

      如果您已跳過建置階段,此選項不會出現。

    • Deploy provider (部署提供者) 中,選擇您已為部署提供者建立的自訂動作。

      在「區域」中,僅針對「跨區域」作業,選擇要在其中建立資源的「 AWS 區域」。[Re gion] 欄位會指定針對此動作類型和提供者類型建立 AWS 資源的位置。此欄位只會針對動作提供者為的動作顯示 AWS 服務。「區域」(Region) 欄位預設為與管線相同的「 AWS 區域」。

    • Deploy provider (部署供應商) 中,可用於預設供應商的欄位如下所示:

      • CodeDeploy

        應用程式名稱中,輸入或選擇現有 CodeDeploy 應用程式的名稱。在 Deployment group (部署群組) 中,輸入該應用程式的部署群組名稱。選擇下一步。您也可以在 CodeDeploy 主控台中建立應用程式、部署群組或兩者。

      • AWS Elastic Beanstalk

        應用程式名稱中,輸入或選擇現有 Elastic Beanstalk 應用程式的名稱。在 Environment name (環境名稱) 中,輸入應用程式的環境。選擇下一步。您也可以在 Elastic Beanstalk 主控台中建立應用程式、環境或兩者。

      • AWS OpsWorks Stacks

        Stack (堆疊) 中,輸入或選擇您想要使用的堆疊名稱。在 Layer (分層) 中,選擇您的目標執行個體隸屬的分層。在 App (應用程式) 中,選擇您想要更新與部署的應用程式。如果您需要建立應用程式,請在中選擇 [建立新應用程式] AWS OpsWorks。

        如需將應用程式新增至堆疊和圖層的詳細資訊 AWS OpsWorks,請參閱《AWS OpsWorks 使用手冊》中的「新增應程式」。

        如需如何使用中的簡單管線 CodePipeline 做為在 AWS OpsWorks 圖層上執行之程式碼原始碼的 end-to-end 範例,請參閱使 CodePipeline 用 and 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 檔案

        選擇下一步

        注意

        請確定您的 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 檔案

        如需使用建立管道以將藍綠色部署到 Amazon ECS 叢集的教學課程 CodeDeploy,請參閱。教學課程:使用 Amazon ECR 來源和 ECS 到部署建立管道 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 命令 (用於擷取重新整理字符) 產生的重新整理字符。選擇下一步

        如需有關使用您的管道部署 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"

        選擇下一步

        如需使用 Amazon S3 部署動作提供者建立管道的教學課程,請參閱教學課程:建立使用 Amazon S3 做為部署供應商的管道

步驟 5:檢閱管道
  • Step 5: Review (步驟 5:檢閱) 頁面上,檢閱您的管道組態,然後選擇 Create pipeline (建立管道) 以建立管道或 Previous (上一步) 以返回並編輯您的選擇。請選擇 Cancel (取消) 以放棄建立管道並離開精靈。​

您現在已建立管道,並可在主控台中檢視。管道會在您建立後即開始執行。如需詳細資訊,請參閱 在中檢視管線和詳細資訊 CodePipeline。如需有關變更管道的詳細資訊,請參閱 在中編輯配管 CodePipeline

建立管道 (CLI)

若要使用 AWS CLI 建立管線,請建立 JSON 檔案來定義管線結構,然後使用--cli-input-json參數執行create-pipeline命令。

重要

您無法使用建 AWS CLI 立包含合作夥伴動作的管道。您必須改用 CodePipeline 主控台。

如需管線結構的詳細資訊,請參閱 API 參考中的CodePipeline 配管結構參照建立管線。 CodePipeline

如要建立 JSON 檔案,請使用範本管道 JSON 檔案並進行編輯,然後在執行 create-pipeline 命令時呼叫該檔案。

先決條件:

您需要在 CodePipeline 中開始使用 CodePipeline建立的服務角色的 ARN。當您執行create-pipeline命令時,您可以在管線 JSON 檔案中使用 CodePipeline 服務角色 ARN。如需建立服務角色的詳細資訊,請參閱建立 CodePipeline 服務角色。與主控台不同的是,在中執行create-pipeline命令 AWS CLI 並沒有為您建立 CodePipeline 服務角色的選項。服務角色必須已存在。

您需要存放管道成品之 S3 儲存貯體的名稱。此儲存貯體必須與管道位於相同的區域。當執行 create-pipeline 命令時,您在管道 JSON 檔案中使用儲存貯體名稱。與主控台不同,在中執行create-pipeline命令 AWS CLI 並不會建立用於存放成品的 S3 儲存貯體。該儲存貯體必須已經存在。

注意

您也可使用 get-pipeline​ 命令以取得該管道的 JSON 結構複本,然後以純文字編輯器修改該結構。

主題
    建立 JSON 檔案
    1. 在終端機 (Linux、macOS 或 Unix) 或命令提示字元 (Windows) 上,在本機目錄中建立新的文字檔案。

    2. (選用) 您可以在配管層級新增一或多個變數。您可以在 CodePipeline 動作的組態中參照此值。您可以在建立配管時新增變數名稱和值,也可以選擇在主控台中啟動管線時指派值。

      注意

      雖然在管線層級新增變數是可選的,但對於在沒有提供值的管線層級使用變數指定的配管,管線執行將會失敗。

      管線層級的變數會在管線執行時解析。所有變量都是不可變的,這意味著在賦值後它們無法更新。具有已解析值的管線層級變數將顯示在每次執行的歷史記錄中。

      您可以使用配管結構中的變數屬性在管線層級提供變數。在下列範例中,Variable1變數的值為Value1

      "variables": [ { "name": "Timeout", "defaultValue": "1000", "description": "description" } ]

      將此結構新增至管線 JSON,或在下一個步驟中新增至範例 JSON。如需有關變數的詳細資訊,包括命名空間資訊,請參閱Variables

    3. 在純文字編輯器中開啟檔案並編輯值,以反映您想建立的結構。您必須至少變更管道名稱。您也應考慮是否變更:

      • 此管道成品要存放的 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": "awscodepipeline-demobucket-example-date", "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 事件偵測 CodeCommit 來源儲存庫和分支或 S3 來源儲存貯體中的變更。下一步驟包含了為您的管道手動建立這些資源的說明。在您使用建議的變更偵測方法時,因為無須使用定期檢查,故可將旗標設為 false 以將其停用。

    4. 若要在與您的管道不同的區域中建立建置、測試或部署動作,您必須將以下項目新增到管道結構。如需說明,請參閱在 CodePipeline 中新增跨區域動作

      • Region 參數新增到動作的管道結構。

      • 使用此artifactStores參數可為您執行動作的每個「 AWS 區域」指定成品值區。

    5. 當您對其結構滿意時,使用像是 pipeline.json​ 的名稱儲存您的檔案。

    建立管道
    1. 執行 create-pipeline​ 命令,並用 --cli-input-json 參數以指定您之前建立的 JSON 檔案。

      若要建立以名MySecondPipeline為「管線 .json」的 JSON 檔案命名的管線,該檔案包含名稱為 MySecondPipeline"" 作為 JSON name 中的值,您的命令看起來會如下所示:

      aws codepipeline create-pipeline --cli-input-json file://pipeline.json
      重要

      請確認在檔案名稱之前包含 file://。這是此命令必要項目。

      此命令會傳回您所建立的所有管道結構。

    2. 若要檢視管線,請開啟 CodePipeline 控制台並從管線清單中選擇它,或使用get-pipeline-state指令。如需詳細資訊,請參閱 在中檢視管線和詳細資訊 CodePipeline

    3. 若您使用 CLI 來建立管道,您必須為管道手動建立建議的變更偵測資源: