在中編輯配管 CodePipeline - AWS CodePipeline

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

在中編輯配管 CodePipeline

管線描述您要 AWS CodePipeline 遵循的發行程序,包括必須完成的階段和動作。您可以透過編輯管道來新增或移除這些元素。然而,當您編輯管道時,不可變更管道名稱或管道中繼資料。

您可以使用配管編輯頁面編輯管線類型、變數和觸發器。您也可以在管道中新增或變更階段和動作。

和建立管道不同,編輯管道並不會傳回最近一次透過管道執行的修訂版。如果您想透過剛編輯的管道執行最近的修訂版,您必須將其手動傳回。否則,編輯的管道將在下次您更改來源階段中設定的來源位置時執行。如需相關資訊,請參閱手動啟動管道

您可以將動作新增至管道位於與管道不同的 AWS 區域中的管道。當一個 AWS 服務 是動作的提供者,且此動作類型/提供者類型與管線位於不同的 AWS 區域時,這是跨區域動作。如需有關跨區域動作的詳細資訊,請參閱在中新增跨區域動作 CodePipeline

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

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

注意

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

編輯管道 (主控台)

您可以使用 CodePipeline 主控台來新增、編輯或移除管道中的階段,以及新增、編輯或移除階段中的動作。

當您更新管線時,會正 CodePipeline常地完成所有執行中的動作,然後將完成執行中動作的階段和管線執行失敗。管道更新後,您將需要重新執行管道。如需執行管線的詳細資訊,請參閱手動啟動管道

編輯管道
  1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 http://console.aws.amazon.com/codesuite/codepipeline/home

    會顯示與您 AWS 帳戶相關聯的所有管道名稱。

  2. Name (名稱) 中,選擇您想編輯的管道名稱。這會開啟管道的詳細檢視,包含管道中各階段的每項動作之每項狀態。

  3. 在管道詳細資訊頁面上,選擇 Edit (編輯)

  4. 若要編輯配管類型,請選擇 「編輯:配管屬性」卡上的「編輯」。選擇下列其中一個選項,然後選擇 [完成]。

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

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

    管道類型的特性和價格不同。如需詳細資訊,請參閱 管線類型

  5. 若要編輯管線變數,請在 [編輯:變數] 卡上選擇 [編輯變數]。新增或變更管線層級的變數,然後選擇「完成」。

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

    注意

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

  6. 若要編輯管線觸發器,請選擇 [編輯:觸發器] 卡上的 [編輯觸發器]。新增或變更觸發器,然後選擇 [完成]。

    如需新增觸發程式的詳細資訊,請參閱建立與 Bitbucket Cloud GitHub (版本 2)、 GitHub 企業伺服器、 GitLab .com 或 GitLab自我管理的連線的步驟,例如。GitHub 連接

  7. 若要編輯「編輯」頁面上的階段和動作,請執行下列其中一個動作:

    • 若要編輯階段,請選擇 Edit stage (編輯階段)。您可以搭配現有動作以序列和平行的方式新增動作:

      您也可選擇那些動作的編輯圖示以在此檢視中編輯動作。若要刪除動作,請在該動作上選擇刪除圖示。

    • 若要編輯動作,請選擇該動作的編輯圖示,然後在 Edit action (編輯動作)​ 上變更值。有星號 (​*) 標記的項目為必要項。

      • 對於 CodeCommit 存放庫名稱和分支,會出現一則訊息,顯示要為此管道建立的 Amazon E CloudWatch vents 規則。如果您移除來 CodeCommit 源,會出現一則訊息,顯示要刪除的 Amazon CloudWatch 事件規則。

      • 對於 Amazon S3 來源儲存貯體,會出現一則訊息,顯示要為此管道建立的 Amazon CloudWatch 事件規則和 AWS CloudTrail 追蹤。如果您移除 Amazon S3 來源,會出現一則訊息,顯示要刪除的 Amazon CloudWatch 活動規則和 AWS CloudTrail 追蹤。如果其他管線正在使用軌 AWS CloudTrail 跡,系統不會移除軌跡,而且會刪除資料事件。

    • 若要新增階段,請在您想新增階段的管道中的點選擇 + Add stage (+ 新增階段)。提供該階段名稱,然後為其新增至少一個動作。有星號 (​*) 標記的項目為必要項。

    • 若要刪除階段,請在該階段上選擇刪除圖示。該階段與其所有動作都會被刪除。

    • 若要設定階段在失敗時自動復原,請選擇 「編輯階段」,然後選擇「設定階段失敗時自動復原」核取方塊。

    例如,如果您想在管道中的階段新增序列動作:

    1. 在您想要新增動作的階段中,選擇 Edit stage (編輯階段),然後選擇 + Add action group (+ 新增動作群組)

    2. Edit action (編輯動作)Action name (動作名稱) 中輸入您的動作名稱。Action provider (動作供應商) 清單會依類別顯示供應商選項。尋找類別 (例如 Deploy (部署))。在類別下,選擇提供者 (例如,AWS CodeDeploy)。在「區域」中,選擇建立資源的「 AWS 區域」或您計劃建立資源的地區。[Re gion] 欄位會指定針對此動作類型和提供者類型建立 AWS 資源的位置。此欄位只會針對動作提供者為的動作顯示 AWS 服務。「區域」(Region) 欄位預設為與管線相同的「 AWS 區域」。

      如需中動作需求的詳細資訊 CodePipeline,包括輸入與輸出人工因素的名稱及其使用方式,請參閱動作結構需求 CodePipeline。如需新增動作供應商以及針對每個供應商使用預設欄位的範例,請參閱建立管道 (主控台)

      若要將建置動作或測試動作新增 CodeBuild 至階段,請參閱使用CodeBuild 者指南中的 CodePipeline 搭配 CodeBuild 測試程式碼和執行組建

      注意

      某些動作提供者 (例如) 會要求您連線至提供者的網站 GitHub,才能完成動作的設定。請務必在連線至供應商的網站時,使用該網站的登入資料。不要使用您的 AWS 憑據。

    3. 當您完成動作設定時,請選擇 Save (儲存)

    注意

    您不能在主控台檢視中重新命名階段。您可以使用想變更的名稱來新增階段,然後刪除舊的。刪除舊動作之前,請務必確認您已在該階段中新增所有您要的動作。

  8. 當您完成管道編輯後,請選擇 Save (儲存) 以返回摘要頁面。

    重要

    儲存變更後,您將無法復原變更。您必須再次編輯管道。若您在儲存變更時,有修訂正在透過管道執行,則該執行不會完成。若您想要特定的遞交或變更透過編輯過的管道來執行,您必須透過管道手動執行之。否則,下一個遞交或變更將透過管道自動執行。

  9. 若要測試您的動作,請選擇 [發行變更] 以處理透過管線提交的通知,並將變更提交至管線的來源階段中指定的來源。或按照中的步驟手動啟動管道使用手動 AWS CLI 發行「變更」。

編輯管道 (AWS CLI)

您可以使用 update-pipeline 命令來編輯管道。

當您更新管線時,會正 CodePipeline 常地完成所有執行中的動作,然後將完成執行中動作的階段和管線執行失敗。管道更新後,您將需要重新執行管道。如需執行管線的詳細資訊,請參閱手動啟動管道

重要

雖然您可以使用 AWS CLI 編輯包含合作夥伴動作的管道,但您不得手動編輯合作夥伴動作的 JSON。若您這麼做,該合作夥伴動作會在您更新管道後失敗。

編輯管道
  1. 開啟終端機工作階段 (Linux、macOS 或 Unix) 或命令提示字元 (Windows),然後執行get-pipeline指令,將管線結構複製到 JSON 檔案中。例如,針對名為 MyFirstPipeline 的管道輸入下列命令:

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

    此命令不會傳回任何內容,但您建立的檔案應該會顯示在您執行命令的目錄中。

  2. 以讓和純文字編輯器開啟 JSON 檔案,並修改該檔案的結構以反映您要在管道上進行的變更。例如,您可以新增或移除階段,或新增另一個動作至現有階段。

    下列範例會示範如何在管線 .json 檔案中新增另一個部署階段。此階段將在第一個部署階段 (Staging (預備)) 後執行。​

    注意

    此僅為該檔案的一部分,而非整個結構。如需詳細資訊,請參閱 CodePipeline 配管結構參照

    , { "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 } ] }, { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] } ] }

    如需有關使用 CLI 為管道新增核准動作的資訊,請參閱 將手動核准動作新增至中的管道 CodePipeline

    請確認您 JSON 檔案中的 PollForSourceChanges 參數已如下所示進行設定:​

    "PollForSourceChanges": "false",

    CodePipeline 使用 Amazon CloudWatch 事件偵測 CodeCommit 來源儲存庫和分支機構或 Amazon S3 來源儲存貯體中的變更。下一步驟包括了手動建立這些資源的說明。將旗標設為 false 將停用定期檢查,在使用建議的變更偵測方法時,您不需要該項功能。

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

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

    • 使用 artifactStores 參數,為您在其中具有動作的每個區域指定成品儲存貯體。

  4. 如果您使用的是使用 get-pipeline 命令擷取的管道結構,您必須在 JSON 檔案中修改結構。您必須從檔案移除 metadata 行,以讓 update-pipeline 命令可以使用它。從 JSON 檔案的管道結構移除此區段 ("metadata": { } 行以及 "created""pipelineARN""updated" 欄位)。

    例如,從結構中移除下列幾行:

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    儲存檔案。

  5. 如果您使用 CLI 編輯管道,您必須為管道手動管理建議的變更偵測資源:

  6. 若要套用您的變更,請執行 update-pipeline 命令、指定管道 JSON 檔案:

    重要

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

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    此命令會傳回所編輯管道的整個結構。

    注意

    update-pipeline 命令將終止管道。若在您執行 update-pipeline 命令時有修訂正在透過管道執行,該執行將停止。您必須手動啟動管道,以透過更新的管道執行該修訂。

  7. 打開 CodePipeline 控制台,然後選擇剛剛編輯的管道。

    此管道會顯示您的變更。下次您變更來源位置時,管道會透過修訂過的管道結構來執行該修訂。

  8. 若要透過修訂的管道結構手動執行最新的修訂,請執行 start-pipeline-execution​ 命令。如需詳細資訊,請參閱 手動啟動管道

有關管道結構和預期值的詳細資訊,請參閱CodePipeline 配管結構參照AWS CodePipeline API 參考