一般問題

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

問:為什麼要使用 AWS CodePipeline?
AWS CodePipeline 藉由將您的建置、測試和發行程序自動化,透過一組一致的品質檢查執行所有新變更,讓您能夠提高軟體更新的速度和品質。
 
問:什麼是持續交付?
持續交付是一項軟體開發實務,這項實務會自動建置、測試和準備程式碼變更以發行到生產環境。AWS CodePipeline 是協助您實作持續交付的服務。請在 這裡進一步了解持續交付。

概念

下圖說明本節所討論的概念。

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

問:什麼是修訂版?
修訂版是對管道定義的來源位置所做的變更。它可包括原始程式碼、建置輸出、設定或資料。管道可同時有多個進行中的修訂版。
 
問:什麼是階段?
階段是一或多個動作的群組。一個管道可以有兩個或更多階段。
 
問:什麼是動作?
動作是在修訂版上執行的任務。管道動作會以階段設定中決定的指定順序 (連續或平行) 發生。如需詳細資訊,請參閱 Edit a PipelineAction Structure Requirements in 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 Lambda 函數實際操作持續交付嗎?
您可以在原始程式碼儲存庫中包含 AWS 無伺服器應用程式模型範本及其對應的檔案,以發行無伺服器應用程式的更新。您可以在管道中使用 AWS CodeBuild 來封裝用於部署的程式碼。接著使用 AWS CloudFormation 動作建立一個 變更集和部署無伺服器應用程式。您可以選擇使用其他步驟 (如手動核准或自動化測試) 來擴展工作流程。在 這裡進一步了解。
 
問:我可以透過發行工作流程程序來佈建和管理 AWS 資源嗎?
您使用 AWS CodePipeline 和 AWS CloudFormation,即可在將 AWS CloudFormation 堆疊提升到生產堆疊之前,使用持續交付自動地組建和測試對其所做的變更。這個發行程序讓您以快速可靠的方式來變更 AWS 基礎設施。您可以使用其他動作 (如手動核准、測試動作或叫用 AWS Lambda 動作) 來擴展工作流程。有關詳細資訊,請參閱 Continuous Delivery with AWS CloudFormation 頁面。
 
問:AWS CodePipeline 有哪些可用的產品整合?
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 CodePipeline API 呼叫歷史記錄,用於安全分析和操作故障排除,只需在 AWS 管理主控台中開啟 AWS CloudTrail 即可。如需詳細資訊,請參閱 Logging AWS CodePipeline API calls by Using AWS CloudTrail
 
問:使用 AWS CodePipeline 時有哪些服務限制?
有關服務限制的資訊,請參閱 Limits

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

合作夥伴

問:與 AWS CodePipeline 整合需要做些什麼?
如果您想成為將開發人員服務與 AWS CodePipeline 整合的 AWS 合作夥伴,請聯絡 codepipeline-request@amazon.com。

安全性

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

問:是否可啟用一個 AWS 帳戶中的管道,讓另一個 AWS 帳戶中的 IAM 使用者存取?
是。您可以在擁有管道的 AWS 帳戶中建立 IAM 角色,將管道和任何相關資源的存取權限委派給另一個帳戶中的 IAM 使用者。如需啟用這種跨帳戶存取的逐步解說,請參閱 Walkthrough: Delegating Access Across AWS Accounts For Accounts You Own Using IAM RolesConfigure Cross-Account Access to a Pipeline

區域

問:AWS CodePipeline 支援哪些區域?
請參閱區域性產品和服務,了解 CodePipeline 在不同區域的具體提供情況。

計費

問:AWS CodePipeline 的費用是多少?
如需 AWS CodePipeline 費用的詳細資訊,請參閱定價頁面

進一步了解 AWS CodePipeline 定價

瀏覽定價頁面
準備好開始建立?
開始使用 AWS CodePipeline
還有其他問題嗎?
聯絡我們