

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

# 從 GitHub、GitHub Enterprise 或 Bitbucket 將產品同步至範本檔案
<a name="git-synced-sc-products"></a>

AWS Service Catalog 可讓您將產品同步至透過外部儲存庫提供者管理的範本檔案。 AWS Service Catalog 是指具有此類範本連線的產品，做為 *Git 同步*產品。儲存庫選項包括 GitHub、GitHub Enterprise 或 Bitbucket。使用外部儲存庫帳戶授權 AWS 帳戶 之後，您可以建立新的 AWS Service Catalog 產品或更新現有產品，以同步至儲存庫中的範本檔案。當對範本檔案進行變更並在儲存庫中遞交時 （例如，使用 git-push)， AWS Service Catalog 會自動偵測變更並建立新的產品版本 （成品）。

**Topics**
+ [將產品同步至外部範本檔案所需的許可](#required-perms-synced-repo)
+ [建立帳戶連線](#create-synced-product)
+ [檢視 Git 同步產品連線](#view-repo-sync)
+ [更新 Git 同步產品連線](#update-repo-sync)
+ [刪除 Git 同步產品連線](#delete-repo-sync)
+ [從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案](#git-synced-Terraform)
+ [AWS 區域 支援 Git 同步產品](git-sync-supported-regions.md)

## 將產品同步至外部範本檔案所需的許可
<a name="required-perms-synced-repo"></a>

您可以使用下列 AWS Identity and Access Management (IAM) 政策做為範本，讓 AWS Service Catalog 管理員從外部儲存庫將產品同步至範本檔案。此政策包含 CodeConnections 和 的必要許可 AWS Service Catalog。 AWS Service Catalog 建議您複製以下範本政策，並在 AWS Service Catalog `AWSServiceCatalogAdminFullAccess`啟用儲存庫同步產品時使用 [受管政策](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-iam-awsmanpol)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeStarAccess",
            "Effect": "Allow",
            "Action": [
            "codestar-connections:UseConnection",
            "codestar-connections:PassConnection",
            "codestar-connections:CreateConnection",
            "codestar-connections:DeleteConnection",
            "codestar-connections:GetConnection",
            "codestar-connections:ListConnections",
            "codestar-connections:ListInstallationTargets",
            "codestar-connections:GetInstallationUrl",
            "codestar-connections:StartOAuthHandshake",
            "codestar-connections:UpdateConnectionInstallation",
            "codestar-connections:GetIndividualAccessToken"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        },
        {
        "Sid": "CreateSLR",
        "Effect": "Allow",
        "Action": "iam:CreateServiceLinkedRole",
        "Resource": "arn:aws:iam::*:role/aws-service-role/sync.servicecatalog.amazonaws.com/AWSServiceRoleForServiceCatalogArtifactSync",
        "Condition": {
        "StringLike": {
        "iam:AWSServiceName": "sync.servicecatalog.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## 建立帳戶連線
<a name="create-synced-product"></a>

將範本檔案同步至 AWS Service Catalog 產品之前，您必須建立並授權一次性account-to-account連線。您可以使用此連線來指定包含所需範本檔案的儲存庫詳細資訊。您可以使用 AWS Service Catalog 主控台、CodeConnections 主控台、 AWS Command Line Interface (CLI) 或 CodeConnections APIs建立連線。

建立連線後，您可以使用 AWS Service Catalog 主控台、 AWS Service Catalog API 或 CLI 來建立同步 AWS Service Catalog 產品。 AWS Service Catalog 管理員可以根據儲存庫和分支中的範本檔案建立新的或更新現有 AWS Service Catalog 產品。如果在儲存庫中遞交變更， AWS Service Catalog 會自動偵測變更並建立新的產品版本。先前的產品版本會維持在規定的版本限制，並指派**已棄用**的狀態。

此外，在建立連線之後 AWS Service Catalog ， 會自動建立服務連結角色 (SLR)。此 SLR AWS Service Catalog 允許 偵測遞交至儲存庫的任何範本檔案變更。SLR 也允許 AWS Service Catalog 自動為同步產品建立新的產品版本。如需 SLR 許可和功能的詳細資訊，請參閱 [的服務連結角色 AWS Service Catalog](#required-perms-synced-repo)。

**建立新的 Git 同步產品**

1. 在左側導覽面板中，選擇**產品清單**，然後選擇**建立產品**。

1. 輸入**產品詳細資訊**。

1. 在版本詳細資訊中，選擇**使用 AWS CodeStar 提供者指定程式碼儲存庫**，然後選擇**建立新的 AWS CodeStar 連線**連結。

1. 建立連線後，請重新整理連線清單，然後選取新的連線。指定儲存庫詳細資訊，包括**儲存庫**、**分支**和**範本檔案路徑**。

   如需使用 Terraform 組態檔案的資訊，請參閱 [從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案](#git-synced-Terraform)。

   1. （建立新的 AWS Service Catalog 產品資源時為選用） 在**支援詳細資訊**區段中，新增產品的中繼資料。

   1. （建立新的 AWS Service Catalog 產品資源時選用） 在**標籤**區段中，選擇**新增標籤**，然後輸入**金鑰**和**值**對。

1. 選擇**建立新產品**。

**建立多個 Git 同步產品**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選擇**建立多個 git 受管產品**。

1. 輸入**常見產品詳細資訊**。

1. 在外部儲存庫詳細資訊中，選取**AWS CodeStar 連線**，然後指定**儲存庫**和**分支**。

1. 在新增產品窗格中，輸入**範本檔案路徑**和**產品名稱**。選擇**新增項目**，並視需要繼續新增產品。

1. 新增所有必要的產品後，請選擇**大量建立產品**。

**將現有 AWS Service Catalog 產品連線至外部儲存庫**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選擇**將產品連線至外部儲存庫**。

1. 在選取產品頁面上，選取您要連線至外部儲存庫的產品，然後選擇**下一步**。

1. 在指定來源詳細資訊頁面上，選取現有的 AWS CodeStar 連線，然後指定**儲存庫**、**分支**和**範本檔案路徑**。

1. 選擇**下一步**。

1. 在檢閱和提交頁面上，驗證連線詳細資訊，然後選擇**將產品連線至外部儲存庫**。

## 檢視 Git 同步產品連線
<a name="view-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、API 或 AWS CLI 來檢視儲存庫連線詳細資訊。對於連結至範本檔案 AWS Service Catalog 的產品，您可以從上次同步**狀態**擷取有關儲存庫連線以及範本上次與產品同步的資訊。

**注意**  
您可以在產品層級檢視儲存庫資訊和**上次同步狀態**。使用者必須在 CodeConnections APIs 中擁有 IAM 許可，才能檢視儲存庫詳細資訊。如需這些 IAM [許可所需政策的詳細資訊，請參閱將 AWS Service Catalog 產品同步至範本檔案](#required-perms-synced-repo)的必要許可。

**使用 檢視連線和儲存庫詳細資訊 AWS 管理主控台**

1. 在左側導覽面板中，選擇**產品清單**。

1. 從清單中選擇產品。

1. 在**產品**頁面上，導覽至**產品來源詳細資訊**區段。

1. 若要檢視產品版本的來源修訂 ID，請選擇**建立的最後一個版本**連結。**版本詳細資訊**區段會顯示來源修訂版 ID。

**使用 檢視連線和儲存庫詳細資訊 AWS CLI**

從 中 AWS CLI，執行下列命令：

`$ aws servicecatalog describe-product-as-admin`

`$ aws servicecatalog describe-provisioning-artifact`

`$ aws servicecatalog search-product-as-admin`

`$ aws servicecatalog list-provisioning-artifacts`

## 更新 Git 同步產品連線
<a name="update-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、 AWS Service Catalog API 或 更新現有的帳戶連線和 Git 同步產品 AWS CLI。

若要了解如何將現有 AWS Service Catalog 產品連線至範本檔案，請參閱[建立新的 Git 同步產品連線](#create-synced-product)。

**將現有產品更新為 Git 同步產品**

1. 在左側導覽面板中，選擇**產品清單**，然後選擇下列其中一個選項：
   + 若要更新**單一產品**，請選取產品，導覽至**產品來源詳細資訊**區段，然後選擇**編輯詳細資訊**。
   + 若要更新**多個產品**，請選擇**將產品連接到外部儲存庫**，選取最多十個產品，然後選擇**下一步**。

1. 在**產品來源詳細資訊**區段中，執行下列更新：
   + 指定連線。
   + 指定儲存庫。
   + 指定分支。
   + 為範本檔案命名。

1. 選擇**儲存變更**。

**注意**  
對於尚未連接到外部儲存庫的產品，您可以在選取產品後，使用在產品資訊頁面頂端的提醒中顯示的**連接到外部儲存庫**選項。

您也可以使用 AWS Service Catalog 主控台或 AWS CLI 來 
+ 將現有 AWS Service Catalog 產品連接到外部儲存庫中的範本檔案
+ 更新產品中繼資料，包括產品名稱、描述和標籤。
+ 重新設定 （更新同步以使用不同的儲存庫來源） 先前連線 AWS Service Catalog 產品的連線。

**使用 AWS Service Catalog 主控台更新連線和儲存庫詳細資訊**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選取目前連線至外部儲存庫的產品。

1. 在**產品來源詳細資訊**區段中，選擇**編輯產品來源**。

1. 在**產品來源詳細資訊**區段中，指定新的所需儲存庫。

1. 選擇**儲存變更**。

**使用 更新連線和儲存庫詳細資訊 AWS CLI**

從 AWS CLI 執行 `$ aws servicecatalog update-product`和 `$ aws servicecatalog update-provisioning-artifact`命令。

## 刪除 Git 同步產品連線
<a name="delete-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、CodeConnections API 或 刪除 AWS Service Catalog 產品和範本檔案之間的連線 AWS CLI。當您中斷產品與範本檔案的連線時，同步 AWS Service Catalog 產品會切換到定期受管產品。中斷連線產品後，如果範本檔案已變更並遞交至先前連線的儲存庫，則*不會*反映變更。若要將 AWS Service Catalog 產品重新連線至外部儲存庫中的範本檔案，請參閱[更新連線和同步 AWS Service Catalog 產品]()。

**使用 AWS Service Catalog 主控台中斷連接 Git 同步產品**

1. 在 中 AWS 管理主控台，從左側導覽面板中選擇**產品清單**。

1. 從清單中選擇產品。

1. 在**產品**頁面上，導覽至**產品來源詳細資訊**區段。

1. 選擇**中斷連線**。

1. 確認動作，然後選擇**中斷連線**。

**使用 中斷連接 Git 同步產品 AWS CLI**

從 AWS CLI執行 `$ aws servicecatalog update-product`命令。在`ConnectionParameters`輸入中，移除指定的連線。

**使用 CodeConnections API 或 刪除連線 AWS CLI**

在 CodeConnections API 或 中 AWS CLI，執行 `$ aws codestar-connections delete-connection`命令。

## 從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案
<a name="git-synced-Terraform"></a>

使用 Terraform 組態檔案建立 Git 同步產品時，檔案路徑只接受 tar.gz 格式。檔案路徑中不接受 Terraform 資料夾格式。

# AWS 區域 支援 Git 同步產品
<a name="git-sync-supported-regions"></a>

AWS Service Catalog 支援 中的 Git 同步 produtc， AWS 區域 如下表所示。


****  

| AWS 區域 名稱 | AWS 區域 身分 | 支援 Git 同步產品 | 
| --- | --- | --- | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 是 | 
| 美國東部 (俄亥俄) | us-east-2 | 是 | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | 是 | 
| 美國西部 (奧勒岡) | us-west-2 | 是 | 
| Africa (Cape Town) | af-south-1 | 否 | 
| 亞太地區 (香港) | ap-east-1 | 否 | 
| 亞太地區 (雅加達) | ap-southeast-3 | 否 | 
| 亞太區域 (孟買) | ap-south-1 | 是 | 
| 亞太區域 (大阪) | ap-northeast-3 | 否 | 
| 亞太區域 (首爾) | ap-northeast-2 | 是 | 
| 亞太區域 (新加坡) | ap-southeast-1 | 是 | 
| 亞太區域 (雪梨) | ap-southeast-2 | 是 | 
| 亞太區域 (東京) | ap-northeast-1 | 是 | 
| 加拿大 (中部) | ca-central-1 | 是 | 
| 歐洲 (法蘭克福) | eu-central-1 | 是 | 
| 歐洲 (愛爾蘭) | eu-west-1 | 是 | 
| 歐洲 (倫敦) | eu-west-2 | 是 | 
| 歐洲 (米蘭) | eu-south-1 | 否 | 
| Europe (Paris) | eu-west-3 | 是 | 
| Europe (Stockholm) | eu-north-1 | 是 | 
| Middle East (Bahrain) | me-south-1 | 否 | 
| 南美洲 (聖保羅) | sa-east-1 | 是 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 否 | 