

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

# 创建产品
<a name="productmgmt-cloudresource"></a>

 您可以从 AWS Service Catalog 管理员控制台的 “**产品**” 页面创建产品。

**注意**  
创建 Terraform 产品需要额外配置，包括 Terraform 预配置引擎和启动角色。有关更多信息，请查看 [开始使用 Terraform 产品](getstarted-Terraform.md)。

**创建新 AWS Service Catalog 产品**

1. 导航**产品列表**页面。

1. 选择**创建产品**，然后选择**创建产品**。

1. **产品详情**-允许您选择要创建的产品类型。 AWS Service Catalog 支持 CloudFormation、Terraform Cloud 和 External（支持 Terraform 社区版）产品类型。产品详细信息还包含您在列表或详细信息页面中搜索和查看产品时显示的元数据。输入以下信息：
   + **产品名称** - 产品的名称。
   +  **产品描述** - 描述显示在产品列表中，可帮助您选择正确的产品。
   + **所有者** - 发布此产品的个人或组织。所有者可以是您 IT 组织或管理员的名称。
   + **分销商**（可选） – 应用程序发布者的名称。利用此字段，您可以对其产品列表进行排序，以便更轻松地找到产品。

1. **版本详细信息**使您可以添加模板文件并构建产品。输入以下信息：
   +  **选择方法** - 有四种方法可以添加模板文件。
     + **使用本地模板文件**-从本地驱动器上传 CloudFormation 模板或 Terraform tar.gz 配置文件。
     + **使用 Amazon S3 URL** - 指定 URL，该 URL 指向 CloudFormation 模板或存储在 Amazon S3 中的 Terraform tar.gz 配置文件。如果指定的是 Amazon S3 URL，则它必须以 `https://` 开头。
     + **使用外部存储库**-指定您的 GitHub、 GitHub 企业版或 Bitbucket 代码存储库。 AWS Service Catalog 允许您将产品同步到模板文件。对于 Terraform 产品，模板文件格式必须是在 Tar 中存档并在 Gzip 中压缩的单个文件。
     + **使用现有 CloudFormation 堆栈**-输入现有 CloudFormation 堆栈的 ARN。此方法不支持 Terraform 云或外部产品。
   +  **版本名称**（可选） – 产品版本的名称（例如，“v1”、“v2beta”）。不允许使用空格。
   +  **描述**（可选） – 产品版本的描述，包括此版本与其他版本的区别。
   +  **指南** - 在**产品详细信息**页面的版本选项卡中进行管理。创建产品版本时（在创建产品工作流程中），该版本的指南设置为默认值。要了解有关指南的更多信息，请参阅[管理版本](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/managing-versions.html)。

1. **支持详细信息**可确定贵公司内部的组织，并提供支持联系人。输入以下信息：
   + **Email contact** （可选） – 用于报告与产品有关的问题的电子邮件地址。
   + **支持链接**（可选） – 用户可从中找到支持信息或文件票证的站点的 URL。URL 必须以 `http://` 或 `https://` 开头。管理员负责维护支持信息的准确性和可访问性。
   + **支持描述**（可选） – 有关用户应如何使用**联系电子邮件**和**支持**链接的描述。

1.  **管理标签**（可选） - 除了使用标签对资源进行分类外，您还可以使用标签来验证您创建此资源的权限。

1. **创建产品** - 填写完表格后，选择**创建产品**。几秒钟后，产品会显示在**产品列表**页面上。您可能需要刷新浏览器来查看产品。

您还可以使用 CodePipeline 创建和配置管道，将产品模板部署到源存储库 AWS Service Catalog 并交付您在源存储库中所做的更改。有关更多信息，请参阅[教程：创建部署到 AWS Service Catalog的管道](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-S3-servicecatalog.html)。

您可以在 CloudFormation 或 Terraform 模板中定义参数属性，并在配置期间强制执行这些规则。这些属性可以定义最小和最大长度、最小值和最大值、允许值以及该值的正则表达式。 AWS Service Catalog 如果提供的值不符合参数属性，则在置备期间发出警告。要了解有关参数属性的更多信息，请参阅*《CloudFormation 用户指南》*中的[参数](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)。

## 问题排查
<a name="productmgmt-cloudresource-troubleshooting"></a>

 您必须拥有从 Amazon S3 存储桶中检索对象的权限。否则，启动或更新产品时，您可能会遇到以下错误。

```
Error: failed to process product version s3 access denied exception
```

 如果您遇到此消息，请确保您拥有从以下存储桶中检索对象的权限：
+  存储桶储存着预配置构件模板。
+  以 “***cf-templates-\$1***” 开头的存储桶，用于 AWS Service Catalog 存储配置项目模板。
+  以 “***sc-\$1***” 开头的内部存储桶，用于 AWS Service Catalog 存储元数据。您将无法在您的账户中看到此存储桶。

 以下示例策略展示了在前述存储桶检索对象所需的最低权限。

```
{
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": "s3:GetObject*",
          "Resource": [
              "arn:aws:s3:::YOUR_TEMPLATE_BUCKET",
              "arn:aws:s3:::YOUR_TEMPLATE_BUCKET/*",
              "arn:aws:s3:::cf-templates-*",
              "arn:aws:s3:::cf-templates-*/*",
              "arn:aws:s3:::sc-*",
              "arn:aws:s3:::sc-*/*"
          ]
      }
```