本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
程式碼管線概觀
該配置包需要 Amazon Simple Storage Service (Amazon S3) 和 AWS CodePipeline. 組態套件包含下列項目:
-
清單文件
-
隨附的一組範本
-
用於JSON描述和實作 AWS Control Tower 環境自訂的其他檔案
依預設,_custom-control-tower-configuration.zip
組態套件會以下列命名慣例載入 Amazon S3 儲存貯體中:
custom-control-tower-configuration-
.accountID
-region
注意
根據預設,CFCT 會建立一個 Amazon S3 儲存貯體來存放管道來源。大多數客戶都會使用此預設值。如果您有現有的 AWS CodeCommit 存放庫,則可以將來源位置變更為存 AWS CodeCommit 放庫。如需詳細資訊,請參閱《AWS CodePipeline 使用指南》 CodePipeline中的〈編輯管線〉。
資訊清單檔案是一個文字檔案,描述您可以部署以自訂 landing zone 的 AWS 資源。 CodePipeline 執行以下任務:
-
擷取資訊清單檔案、隨附的範本集和其他檔JSON案
-
執行清單和模板驗證
-
調用清單文件中的部分以運行特定的管道階段。
當您透過自訂資訊清單檔案並從組態封裝檔案名稱中移除底線 (_) 來更新組態封裝時,它會自動啟動 AWS CodePipeline。
記住下劃線
範例組態套件檔案名稱以底線 (_) 開頭,因此 AWS CodePipeline 不會自動觸發。完成組態套件的自訂後,請上傳custom-control-tower-configuration.zip
不帶底線 (_) 的檔案,以便在中觸發部署 AWS CodePipeline。
AWS CodePipeline 階段
CFCT 管道需要幾個 AWS CodePipeline 階段來實施和更新您的 AWS Control Tower 環境。
-
來源階段
來源階段是初始階段。您的自訂組態套件會啟動此管線階段。的來源 AWS CodePipeline 可以是 Amazon S3 儲存貯體或 AWS CodeCommit 儲存庫,可以在其中託管組態套件。
-
構建階段
構建階段需 AWS CodeBuild 要驗證配置包的內容。這些檢查包括測試
manifest.yaml
檔案語法和結構描述,以及包含在套件中或遠端託管的所有 AWS CloudFormation 範本,使用 AWS CloudFormationvalidate-template
和cfn_nag
。如果資訊清單檔案和 AWS CloudFormation 範本通過測試,管線會繼續進入下一個階段。如果測試失敗,您可以檢閱 CodeBuild 記錄檔以識別問題,並視需要編輯組態來源檔案。 -
手動核准階段 (選擇性)
手動核准階段是選擇性的。如果啟用此階段,它會提供對組態管線的額外控制。它會在部署期間暫停管線,直到獲得核准為止。您可以在啟動堆疊時,將「管線核准階段」參數編輯為 「是」,以選擇手動核准。
-
服務控制政策階段
服務控制原則階段會呼叫服務控制原則狀態機器,以呼叫 AWS Organizations APIs建立服務控制原則 (SCPs)。
-
AWS CloudFormation 資源階段
資 AWS CloudFormation 源階段會呼叫堆疊集狀態機器,以部署您在資訊清單檔案中提供的帳號或組織單位 (OUs) 清單中指定的資源。狀態機按照 AWS CloudFormation 資訊清單檔案中指定的順序建立資源。若要指定資源相依性,請排列資源在資訊清單檔案中指定的順序。清單文件中的資源順序是指定依賴關係的唯一方法。