AWS CodePipeline 常見問答集

一般問題

AWS CodePipeline 是一種持續交付的服務,讓您能夠將發行軟體所需的步驟模型化、視覺化和自動化。使用 AWS CodePipeline 時,您要針對建置程式碼、部署到進入生產階段前的環境、測試應用程式與發行到生產環境,製作完整的發行程序模型。然後,AWS CodePipeline 會在每次程式碼發生變更時,根據定義的工作流程建置、測試和部署您的應用程式。您可以將合作夥伴工具和您自己的自訂工具整合到發行程序的任一階段中,形成端對端持續交付解決方案。

AWS CodePipeline 藉由將您的建置、測試和發行程序自動化,透過一組一致的品質檢查執行所有新變更,讓您能夠提高軟體更新的速度和品質。

持續交付是一項軟體開發實務,這項實務會自動建置、測試和準備程式碼變更以發行到生產環境。AWS CodePipeline 是協助您實作持續交付的服務。請在這裡進一步了解持續交付。

概念

管道是一個工作流程架構,描述軟體變更如何進行發行程序。您利用一系列的階段和動作來定義工作流程。

修訂版是對管道定義的來源位置所做的變更。它可包括原始程式碼、建置輸出、設定或資料。管道可同時有多個進行中的修訂版。

階段是一或多個動作的群組。一個管道可以有兩個或更多階段。

動作是在修訂版上執行的任務。管道動作會以階段設定中決定的指定順序 (連續或平行) 發生。如需詳細資訊,請參閱編輯管道AWS CodePipeline 中的動作結構需求

動作執行時,它是在一個檔案或一組檔案上採取動作。這些檔案稱為成品。管道中的後續動作可以在這些成品上運作。例如,來源動作將最新的程式碼版本做為來源成品輸出,建置動作將讀入此來源成品。編譯之後,建置動作將建置輸出做為另一個成品上傳,之後的部署動作將讀取此成品。

管道中的階段由轉換加以連接,在 AWS CodePipeline 主控台中以箭頭表示。階段中成功完成動作的修訂版會自動傳送到轉換箭頭所指示的下一個階段。轉換可以在階段之間停用或啟用。

使用 AWS CodePipeline

您可以登入 AWS 管理主控台、建立管道,然後開始使用此服務。如果需要 AWS CodePipeline 的簡介,請參閱包含逐步教學的入門。 

建立管道之後,它會自動觸發執行,以發行原始程式碼的最新修訂版。從那時開始,每次對來源位置進行變更,就會觸發新的執行。此外,您可以使用管道主控台中的發行變更按鈕,透過管道重新執行最新的修訂版。

要停止管道,您可以停用從一個階段到另一個階段的轉換。停用之後,您的管道會透過動作繼續執行修訂版,但從已停用的轉換到之後階段都不會提升修訂版。如需更多詳細資訊,請參閱 AWS CodePipeline 中的停用或啟用轉換。

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

是。您可以使用 get-pipeline AWS CLI 命令,取得現有管道的 JSON 架構。然後使用該 JSON 和 create-pipeline AWS CLI 命令,建立與現有管道相同架構的新管道。

是。您可以將一或多個動作設定為在任何指定階段平行執行。

您可以在原始程式碼儲存庫中包含 AWS 無伺服器應用程式模型範本及其對應的檔案,以發行無伺服器應用程式的更新。您可以在管道中使用 AWS CodeBuild 來封裝用於部署的程式碼。接著使用 AWS CloudFormation 動作建立一個變更集和部署無伺服器應用程式。您可以選擇使用其他步驟 (如手動核准或自動化測試) 來擴展工作流程。在這裡進一步了解。

您使用 AWS CodePipeline 和 AWS CloudFormation,即可在將 AWS CloudFormation 堆疊提升到生產堆疊之前,使用持續交付自動地組建和測試對其所做的變更。這個發行程序讓您以快速可靠的方式來變更 AWS 基礎設施。您可以使用其他動作 (如手動核准、測試動作或叫用 AWS Lambda 動作) 來擴展工作流程。有關詳細資訊,請參閱使用 AWS CloudFormation 持續交付頁面。

AWS CodePipeline 與 AWS CodeCommit、Amazon S3、AWS CodeBuild、AWS CodeDeploy、AWS Elastic Beanstalk、AWS CloudFormation、AWS OpsWorks、Amazon ECS 和 AWS Lambda 等 AWS 服務整合。此外,AWS CodePipeline 也與一些合作夥伴工具整合。如需詳細資訊,請參閱產品整合頁面。最後,您可以撰寫自己的自訂動作,並將任何現有的工具與 CodePipeline 整合。如需更多有關自訂動作的詳細資訊,請參閱 Create and Add a Custom Action in AWS CodePipeline 頁面

是。要取得從您的帳戶發出的 AWS CodePipeline API 呼叫歷史記錄,用於安全分析和操作故障排除,只需在 AWS 管理主控台中開啟 AWS CloudTrail 即可。如需詳細資訊,請參閱 Logging AWS CodePipeline API calls by Using AWS CloudTrail

有關服務限制的資訊,請參閱 Limits

您可以針對影響您管道的事件建立通知。通知會以 Amazon SNS 通知的形式傳送。每則通知都會包括狀態訊息,以及生成該通知的事件資源連結。通知不需額外付費,但您可能需要支付通知所使用的其他 AWS 服務費用,例如 Amazon SNS。如需了解如何開始使用通知功能,請參閱通知功能使用指南。此外,使用 AWS Chatbot 的客戶可以設定要傳送至 Slack 頻道或 Amazon Chime 聊天室的通知。如需更多詳細資訊,請按一下這裡

合作夥伴

如果您想成為將開發人員服務與 AWS CodePipeline 整合的 AWS 合作夥伴,請聯絡 [email protected]

安全性

是。AWS CodePipeline 支援資源級許可。您可以指定哪位使用者可在管道上執行什麼動作。例如,如果您希望使用者看見管道狀態但不能修改管道,可以提供管道唯讀存取權限給使用者。您也可以針對管道中的任何階段或動作設定許可。有關 IAM 與 AWS CodePipeline 搭配使用的更多資訊,請參閱 Access Permissions Reference

是。您可以在擁有管道的 AWS 帳戶中建立 IAM 角色,將管道和任何相關資源的存取權限委派給另一個帳戶中的 IAM 使用者。有關啟用這種跨帳戶存取權的逐步解說,請參閱逐步解說:使用 IAM 角色在 AWS 帳戶中為您擁有的帳戶委派存取權限,以及設定管道的跨帳戶存取權

區域

請參閱區域性產品和服務,了解 CodePipeline 在不同區域的具體提供情況。

計費

如需 AWS CodePipeline 費用的詳細資訊,請參閱定價頁面