

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

# AFT 中原始程式碼版本控制的替代方案
<a name="aft-alternative-vcs"></a>

AFT AWS CodeCommit 用於原始程式碼版本控制系統 (VCS)，並允許其他 [CodeConnections](https://docs.aws.amazon.com//dtconsole/latest/userguide/supported-versions-connections.html) 符合您業務需求或現有架構。

如果您是第一次部署 AFT，而且沒有現有的 CodeCommit 儲存庫，則必須指定外部 VCS 供應商，做為 AFT 部署先決條件的一部分。

**AFT 支援下列原始程式碼控制替代方案：**
+ GitHub
+ GitHub Enterprise Server
+ BitBucket
+ GitLab
+ GitLab 自我管理

**注意**  
如果您將 指定 AWS CodeCommit 為 VCS，則不需要其他步驟。AFT 會在您的環境中使用預設名稱建立必要的`git`儲存庫。不過，您可以視需要覆寫 CodeCommit 的預設儲存庫名稱，以符合您的組織標準。

## 使用 AFT 設定替代原始程式碼版本控制系統 （自訂 VCS)
<a name="aft-alternate-vcs-steps"></a>

若要為您的 AFT 部署設定替代原始程式碼版本控制系統，請遵循下列步驟。

**步驟 1：在支援的第三方版本控制系統 (VCS) 中建立`git`儲存庫。**

如果您未使用 AWS CodeCommit，則必須在 AFT 支援的第三方 VCS 提供者環境中為下列項目建立`git`儲存庫。
+ **AFT 帳戶請求。**[可用的範本程式碼](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request) 。如需 AFT 帳戶請求的詳細資訊，請參閱 [使用 AFT 佈建新帳戶](aft-provision-account.md)。
+ **AFT 帳戶佈建自訂。**[可用的範本程式碼](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations) 。如需 AFT 帳戶佈建自訂的詳細資訊，請參閱 [建立您的 AFT 帳戶佈建自訂狀態機器](aft-provisioning-framework.md#aft-create-customizations)。
+ **AFT 全域自訂。**[可用的範本程式碼](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations) 。如需 AFT 全域自訂的詳細資訊，請參閱 [帳戶自訂](aft-account-customization-options.md)。
+ **AFT 帳戶自訂。**[可用的範本程式碼](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations) 。如需 AFT 帳戶自訂的詳細資訊，請參閱 [帳戶自訂](aft-account-customization-options.md)。

**步驟 2：指定 AFT 部署所需的 VCS 組態參數**

需要下列輸入參數，才能將 VCS 提供者設定為 AFT 部署的一部分。
+ **vcs\$1provider**：如果您未使用 AWS CodeCommit，`"gitlab"`請根據您的使用案例將 VCS 提供者指定為 `"bitbucket"`、`"githubenterprise"`、 `"github"`或 。
+ **github\$1enterprise\$1url**：僅限 GitHub Enterprise 客戶，請指定 GitHub URL。
+ **account\$1request\$1repo\$1name**：對於 AWS CodeCommit 使用者，此值設定為 `aft-account-request`。在 AFT 支援的第三方 VCS 提供者環境中，使用實際儲存庫名稱更新此輸入值。對於 BitBucket、Github、GitHub Enterprise、GitLab 和 GitLab 自我管理，儲存庫名稱的格式必須是 `[Org]/[Repo]`。
+ **account\$1customizations\$1repo\$1name**：對於 AWS CodeCommit 使用者，此值設定為 `aft-account-customizations`。在 AFT 支援的第三方 VCS 提供者環境中，使用儲存庫名稱更新此輸入值。對於 BitBucket、Github、GitHub Enterprise、GitLab 和 GitLab 自我管理，儲存庫名稱的格式必須是 `[Org]/[Repo]`。
+ **account\$1provisioning\$1customizations\$1repo\$1name**：對於 AWS CodeCommit 使用者，此值設定為 `aft-account-provisioning-customizations`。在 AFT 支援的第三方 VCS 提供者環境中，使用儲存庫名稱更新此輸入值。對於 BitBucket、Github、GitHub Enterprise、GitLab 和 GitLab 自我管理，儲存庫名稱的格式必須是 `[Org]/[Repo]`。
+ **global\$1customizations\$1repo\$1name**：對於 AWS CodeCommit 使用者，此值設定為 `aft-global-customizations`。在 AFT 支援的第三方 VCS 提供者環境中，使用儲存庫名稱更新此輸入值。對於 BitBucket、Github、GitHub Enterprise、GitLab 和 GitLab 自我管理，儲存庫名稱的格式必須是 `[Org]/[Repo]`。
+ **account\$1request\$1repo\$1branch**：分支`main`預設為 ，但值可以覆寫。

根據預設，來自每個`git`儲存庫`main`分支的 AFT 來源。您可以使用額外的輸入參數覆寫分支名稱值。如需輸入參數的詳細資訊，請參閱 [AFT Terraform 模組](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md#inputs)中的 README 檔案。

**對於現有 AWS CodeCommit 客戶**  
 如果您使用 AFT 的新名稱建立 CodeCommit 儲存庫，您可以透過更新這些輸入參數的值來更新儲存庫名稱。

**步驟 3：完成第三方 VCS 提供者的 AWS CodeCommit 連線**

當您的部署執行時，AFT 會建立所需的 AWS CodeCommit 儲存庫，或者為您選擇的第三方 VCS 提供者建立 AWS CodeCommit 連線。如果是後者，您必須手動登入 AFT 管理帳戶的主控台，以完成待定的 CodeCommit 連線。如需[AWS CodeCommit 完成 CodeCommit 連線的進一步說明，請參閱 文件](https://docs.aws.amazon.com//dtconsole/latest/userguide/connections-update.html)。 CodeCommit 

# 將 AFT 從 AWS CodeCommit 移至另一個 VCS 供應商
<a name="move-a-vcs"></a>

本節提供如何將 AWS Control Tower Account Factory for Terraform (AFT) 從 AWS CodeCommit 做為版本控制系統 (VCS) 移至另一個 VCS 供應商的概觀。

**步驟 1. ** 在您選擇的 VCS 中設定新的儲存庫。

**步驟 2.** 在 中將這些儲存庫新增為新的遠端`git`。

**步驟 3.** 執行`git push`至新的 VCS 提供者。

**注意**  
您建立的儲存庫結構應與 in AWS CodeCommit 相同。變更結構會阻礙 AFT 執行所需程式碼的能力。  
aft-account-request
 aft-account-customizations
 aft-global-customizations
aft-account-provisioning-customizations

**步驟 4.** 在您的 AWS Control Tower 管理帳戶中，更新 Terraform 模組 （引導） 以指向您的 VCS 供應商，如下列範例所示：

**範例：**[GitLab 搭配 Terraform OSS](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/examples/gitlab%2Btf_oss/main.tf)

– 執行 `terraform plan`以預覽變更，然後執行 `terraform apply`。

**步驟 5.** 完成步驟以完成 CodeConnection （先前稱為 CodeStar) 的設定：

1. 登入您的 AFT 管理帳戶

1. 找到並完成新 VCS 供應商的 pending AWS CodeConnections，如[更新待定連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html)或 AWS 主控台 【`https://us-east-1.console.aws.amazon.com/codesuite/settings/connections`】 所述。

1. 參考：[部署後步驟](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html)

**注意**  
帳戶管道會保留先前的來源，直到叫用 `aft-invoke-customizations` *Step Functions* 為止。此調用可以作為升級的一部分或作為下一次自訂調用的一部分來完成。

如需詳細資訊，請參閱此部落格：[如何將 AWS CodeCommit 儲存庫遷移至另一個 Git 供應商](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider)。