

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将产品同步到 GitHub、 GitHub 企业版或 Bitbucket 中的模板文件
<a name="git-synced-sc-products"></a>

AWS Service Catalog 允许您将产品同步到通过外部存储库提供商管理的模板文件。 AWS Service Catalog 将具有此类模板连接的产品称为 *Git 同步产品*。存储库选项包括 GitHub “ GitHub 企业版” 或 “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)
+ [将 Terraform 产品同步到来自 GitHub、Enterpr GitHub ise 或 Bitbucket 的模板文件](#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 检测提交到存储库的任何模板文件更改。单反相机还 AWS Service Catalog 允许自动为同步产品创建新的产品版本。有关 SLR 权限和功能的更多信息，请参阅 [AWS Service Catalog的服务相关角色](#required-perms-synced-repo)。

**要创建新的 Git 同步产品**

1. 在左侧导航面板中，选择**产品列表**，然后选择**创建产品**。

1. 输入**产品详细信息**。

1. 在 “版本详细信息” 中，选择 “**使用 AWS CodeStar 提供程序指定您的代码存储库**”，然后选择 “**创建新 AWS CodeStar 连接**” 链接。

1. 创建连接后，刷新连接列表，然后选择新连接。指定存储库详细信息，包括**存储库**、**分支**和**模板文件路径**。

   有关使用 Terraform 配置文件的更多信息，请参阅 [将 Terraform 产品同步到来自 GitHub、Enterpr GitHub ise 或 Bitbucket 的模板文件](#git-synced-Terraform)。

   1. （创建新 AWS Service Catalog 产品资源时可选）在 Suppor **t Det** ails 部分，添加产品的元数据。

   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 产品，您可以从 “上次**同步状态” 中检索有关存储库连接以及模板上次与产品同步**的时间的信息。

**注意**  
您可以在产品级别查看存储库信息和**上次同步状态**。用户必须在中拥有 IAM 权限 CodeConnections APIs 才能查看存储库的详细信息。有关这些 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]()产品。

**使用控制台断开 Git 同步产品的连接 AWS Service Catalog**

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`命令。

## 将 Terraform 产品同步到来自 GitHub、Enterpr GitHub ise 或 Bitbucket 的模板文件
<a name="git-synced-Terraform"></a>

使用 Terraform 配置文件创建 Git 同步产品时，文件路径仅接受 tar.gz 格式。在文件路径中不能接受 Terraform 文件夹格式。

# AWS 区域 支持 Git 同步产品
<a name="git-sync-supported-regions"></a>

AWS Service Catalog 支持中 AWS 区域 与 Git 同步的产品，如下表所示。


****  

| AWS 区域 名字 | AWS 区域 身份 | 支持与 Git 同步的产品 | 
| --- | --- | --- | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 是 | 
| 美国东部（俄亥俄州） | us-east-2 | 是 | 
| 美国西部（北加利福尼亚） | us-west-1 | 是 | 
| 美国西部（俄勒冈州） | us-west-2 | 是 | 
| 非洲（开普敦） | 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 | 否 | 
| 欧洲地区（巴黎） | eu-west-3 | 是 | 
| 欧洲地区（斯德哥尔摩） | eu-north-1 | 是 | 
| 中东（巴林） | me-south-1 | 否 | 
| 南美洲（圣保罗） | sa-east-1 | 是 | 
| AWS GovCloud （美国东部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美国西部） | us-gov-west-1 | 否 | 