Git 同步的工作原理 - AWS CloudFormation

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

Git 同步的工作原理

本主題說明 Git 同步的運作方式,並介紹使用它所需的關鍵概念。

Git 同步的工作原理

若要使用 Git 同步,您必須先將 Git 提供者連線至 CloudFormation 使用該CodeConnections服務。在本指南的程序中,連線是透過 CodeConnections 主控台建立的。或者,您可以使用 AWS CLI。 您可以使用下列任何 Git 提供者:

接下來,您會建立定義堆疊的 CloudFormation 範本,並將其新增至您的儲存庫。此範本檔案受到監控。 CloudFormation 當更改提交到堆棧時自動更新堆棧。

在 CloudFormation 主控台中,您可以建立新的堆疊,然後選擇「從 Git 同步」 CloudFormation 來告知使用 Git 同步。您將指定要 CloudFormation 監視的存儲庫和分支,並在定義堆棧的存儲庫中指定 CloudFormation 模板。

在設定過程中,您可以從儲存庫提供自己的堆疊部署檔案,也可以讓 Git 同步為您生成一個檔案。堆疊部署檔案包含設定堆疊中資源的參數和值。此堆疊部署檔案會受到監控。 CloudFormation 當更改提交到堆棧時自動更新堆棧。

Git sync 會在您的儲存庫中建立一個提取要求,以便將您的堆疊與 CloudFormation範本檔案和堆疊部署檔案同步。如果 Git 同步為您生成堆疊部署檔案,則檔案會透過 Git 同步提交到您的儲存庫。

然後將提取要求合併到儲存庫,以便 CloudFormation 佈建堆疊、使用您的部署參數設定堆疊,並開始監視儲存庫中的變更。

從那時起,每當您對模板文件或堆棧部署文件進行更改並將其提交到存儲庫時,都 CloudFormation 會自動檢測更改並創建提取請求。然後,您的團隊成員可以在部署變更之前檢閱並核准變更。一旦接受提取請求,就 CloudFormation 會部署您的變更。

您可以監視堆棧的 Git 同步配置的狀態,並在 CloudFormation 控制台中查看應用於堆棧的提交歷史記錄。主控台也提供重新設定 Git 同步和疑難排解問題的工具。

提取請求的註解

您可以開啟主控台中的 [在提取要求上啟用註解] 選項,選擇透過 CodeConnections 服務 CloudFormation 建立提取要求中程式碼變更的摘要。提供提取請求中的變更摘要,表示專案團隊成員可以在合併提取請求之前,輕鬆檢閱並瞭解提議修改的影響。如需詳細資訊,請參閱 CloudFormation 可在提取要求中張貼堆疊變更摘要

堆疊部署檔案

堆疊部署檔案是 JavaScript 物件符號 (JSON) 或YAML標準格式化檔案,其中包含管理 CloudFormation 堆疊的參數和值。它受到是否有任何變更的監控。當檔案的變更遞交至儲存庫時,關聯的堆疊會自動更新。

堆疊部署檔案包含鍵值組及兩部字典:

  • template-file-path

    這是 CloudFormation 範本檔案的完整儲存庫路徑。模板文件聲明與此部署文件關聯的 CloudFormation 堆棧的資源。

  • parameters

    參數字典包含堆疊中設定資源的鍵值組。堆疊部署檔案最多可以有 50 個參數。

  • tags

    標籤字典包含選用鍵值組,您可以用來識別和分類堆疊中的資源。堆疊部署檔案最多可以有 50 個標籤。

您可以提供自己的堆疊部署檔案,或讓 Git 同步為您建立一個檔案,然後自動將提取要求提交至您的儲存庫。您可以透過編輯堆疊部署檔案並將變更遞交至儲存庫的方式來管理參數和標籤。

以下是 Git 同步堆疊部署檔案的範例:

template-file-path: ./fargate-srvc/my-stack-template.yaml parameters: image: public.ecr.aws/lts/nginx:latest task_size: x-small max_capacity: 5 port: 8080 env: production tags: cost-center: '123456' org: 'AWS'

CloudFormation 樣板檔

範本檔案包含 AWS 構成 CloudFormation堆棧的資源。運用 Git 同步,範本檔案會儲存在 Git 儲存庫中,並由堆疊部署檔案參照。您可以透過編輯範本檔案並將變更遞交至儲存庫的方式來管理堆疊。

如需詳細資訊,請參閱使用 CloudFormation 範本

範本定義儲存庫

模板定義存儲庫是 CloudFormation通過 Git 同步鏈接到的 Git 存儲庫。系統會監視存放庫是否有 CloudFormation 範本和堆疊部署檔案的變更。當您遞交對檔案的變更時,關聯的堆疊會自動更新。

重要

當您在 Git 同步主控台中設定範本定義儲存庫時,請從 Git 連線選取正確的儲存庫分支。Git sync 僅監視配置的存儲庫和分支是否對 CloudFormation 模板和堆棧部署文件的更改。