

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

# 开始使用 Terraform 产品
<a name="getstarted-Terraform"></a>

AWS Service Catalog 支持快速、自助式配置，并在其中管理您的 [ HashiCorp Terraform](https://developer.hashicorp.com/terraform/intro/terraform-editions) 配置。 AWS您可以 AWS Service Catalog 将其用作单一工具，在内部大规模组织、管理和分发 Terraform 配置。 AWS AWS Service Catalog 支持 Terraform 的多个关键功能，包括对标准化和预先批准的 Terraform 模板进行编目、访问控制、版本控制、标记以及与其他账户共享。 AWS 在中 AWS Service Catalog，您的最终用户可以看到他们有权访问的产品和版本的简单列表，然后只需一个操作即可部署这些产品。

**注意**  
*为了继续支持 HashiCorp 技术，由于最近对Terraform的许可变更，将以前对Terraform *开源的任何提法 AWS Service Catalog 更改为外部提法*。*外部产品类型包括对 Terraform 社区版（以前称为 Terraform 开源）的支持。有关将现有 Terraform 开源产品和预配置产品迁移到外部产品类型的更多信息和说明，请查看 [将现有的 Terraform 开源产品和预配置产品更新为外部产品类型](update_terraform_open_source_to_external.md)。

以下教程中的步骤将帮助您在 AWS Service Catalog中开始使用 Terraform 产品。

作为目录管理员，您使用中央管理员账户（中心账户）工作。Terraform 社区版和 Terraform 云产品都需要 Terraform 预置引擎，您可以在 [Terraform 社区版的预置引擎（外部产品类型）](getstarted-terraform-engine.md#getstarted-terraform-engine-os) 和 [Terraform 云的预置引擎](getstarted-terraform-engine.md#getstarted-terraform-engine-cloud) 中了解更多信息。

在本教程中，请使用管理员账户执行以下任务：
+ 使用 *Terraform 云*或*外部*产品类型创建 Terraform 产品。Service Catalog 使用“外部”产品类型来支持 Terraform 社区版产品。
+ 将产品与产品组合关联
+ 创建启动限制以允许您的最终用户预配置产品
+ 为产品添加标签
+ 与最终用户账户（分支账户）共享产品组合和 Terraform 产品 

在本教程中，您将在管理员中心账户中使用组织共享选项共享产品组合，该账户也是组织的管理账户。有关组织共享的更多信息，请参阅 [共享产品组合](catalogs_portfolios_sharing_how-to-share.md)。

您在教程中创建的 Terraform 产品中包含的 AWS 资源是一个简单的 Amazon S3 存储桶。

**注意**  
 开始之前，请确保您已完成 [设置 AWS Service Catalog](setup.md) 中的步骤。

**Topics**
+ [将现有的 Terraform 开源产品和预配置产品更新为外部产品类型](update_terraform_open_source_to_external.md)
+ [先决条件：配置您的 Terraform 预置引擎](getstarted-terraform-engine.md)
+ [步骤 1：下载 Terraform 配置文件](getstarted-template-Terraform.md)
+ [步骤 2：创建 Terraform 产品](getstarted-product-Terraform.md)
+ [第 3 步：创建 AWS Service Catalog 投资组合](getstarted-portfolio-Terraform.md)
+ [步骤 4：将产品添加至产品组合](getstarted-portfolio-add-product-Terraform.md)
+ [步骤 5：创建启动角色](getstarted-launchrole-Terraform.md)
+ [步骤 6：为 Terraform 产品添加启动约束](getstarted-launchconstraint-Terraform.md)
+ [步骤 7：授予最终用户访问权限](getstarted-deploy-Terraform.md)
+ [步骤 8：与最终用户共享产品组合](getstarted-share-portfolio-end-user-Terraform.md)
+ [步骤 9：测试最终用户体验](getstarted-verify-Terraform.md)
+ [步骤 10：监控 Terraform 预配置操作](getstarted-monitoring-Terraform.md)

# 将现有的 Terraform 开源产品和预配置产品更新为外部产品类型
<a name="update_terraform_open_source_to_external"></a>

*为了继续支持 HashiCorp 技术，由于最近对Terraform的许可变更，将以前对Terraform *开源的任何提法 AWS Service Catalog 更改为外部提法*。*“外部”产品类型包括对 Terraform 社区版（以前称为 Terraform 开源）的支持。 AWS Service Catalog 不再支持 Terraform 开源作为任何*新*产品或预置产品的有效产品类型。您只能更新或终止现有 Terraform 开源资源，包括产品版本和预置产品。

如果尚未这样做，则必须按照本节中的说明将所有现有 Terraform 开源产品和预置产品过渡到外部产品。

1. 更新现有的 Terraform 参考引擎 AWS Service Catalog ，使其包括对**外部**和 **Terraform 开**源产品类型的支持。[有关更新 Terraform 参考引擎的说明，请查看我们的GitHub 存储库。](https://github.com/aws-samples/service-catalog-engine-for-terraform-os)

1. 使用新的外部产品类型重新创建任何现有的 Terraform 开源产品。

1. 删除所有使用 Terraform 开源产品类型的现有产品。

1. 重新预置剩余资源以使用新的“外部”产品类型。

1. 终止所有使用 Terraform 开源产品类型的现有预配置产品。

过渡现有产品后，对于任何使用 tar.gz 配置文件的新产品，请使用“外部”产品类型。

AWS Service Catalog 将根据需要支持客户完成此更改。如果这些更改需要您的账户付出大量精力或影响关键产品工作负载，请联系您的客户代表请求帮助。

# 先决条件：配置您的 Terraform 预置引擎
<a name="getstarted-terraform-engine"></a>

作为在中创建 Terraform 产品的先决条件 AWS Service Catalog，您必须在您的 Service Catalog 管理员帐户（中心帐户）中安装和配置配置引擎。Terraform 社区版产品（使用外部产品类型）和 Terraform 云产品（使用 Terraform 云产品类型）都需要预置引擎。

**注意**  
引擎配置为一次性设置，大约需要 30 分钟。

## Terraform 社区版的预置引擎（外部产品类型）
<a name="getstarted-terraform-engine-os"></a>

AWS Service Catalog 使用*外部*产品类型来支持 Terraform 社区版产品。*外部*产品类型还支持其他预置工具，包括 Pulumi、Ansible、Chef 等，具体取决于预置引擎的配置。

对于使用 “外部” 产品类型和 “Terraform 社区版” HashiCorp 的 AWS Service Catalog 产品，您必须在 AWS Service Catalog 管理员帐户（中心帐户）中安装和配置 Terraform 配置引擎。 AWS 管理此引擎及其资源。

AWS Service Catalog 提供了一个 GitHub 存储库，其中包含有关[安装和配置 AWS提供的 Terraform](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/) 配置引擎的说明。存储库包含以下信息：
+ 必需的安装工具
+ 构建代码
+ 部署到 AWS 账户
+ 有关预配置工作流程、质量保证和限制的其他信息

## Terraform 云的预置引擎
<a name="getstarted-terraform-engine-cloud"></a>

对于使用 Terraform Cloud 产品类型和 Terraform Cloud HashiCorp 的产品，您必须在 AWS Service Catalog 管理员帐户（ AWS Service Catalog 中心帐户）中安装和配置 Terraform 配置引擎。 HashiCorp 在远程环境中管理此引擎。

HashiCorp 提供了一个 GitHub 存储库，其中包含有关为其配置 [Terraform Cloud 引擎](https://github.com/hashicorp/aws-service-catalog-engine-for-tfc)的说明。 AWS Service Catalog存储库包含以下信息：
+ 必需的安装工具
+ 构建代码
+ 部署到 AWS 账户
+ 有关预配置工作流程、质量保证和限制的其他信息

# 步骤 1：下载 Terraform 配置文件
<a name="getstarted-template-Terraform"></a>

 你可以使用 Terraform 配置文件来创建和配置 HashiCorp Terraform 产品。这些配置文件为纯文本文件，描述了要预配置的资源。您可以使用自己选择的文本编辑器来创建、更新和保存配置。要创建产品，您必须将 Terraform 配置以 **tar.gz 文件**形式上传。在本教程中， AWS Service Catalog 提供了一个简单的配置文件，以便您可以开始使用。配置文件在 Amazon S3 控制台中创建一个桶。

## 下载配置文件
<a name="template-download"></a>

AWS Service Catalog 提供了一个示例[https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true)配置文件供您在本教程中使用。

## 配置文件概述
<a name="template-overview"></a>

示例配置文件的文本如下：

```
variable "bucket_name" {
  type = string
}
provider "aws" {
}
resource "aws_s3_bucket" "bucket" {
  bucket = var.bucket_name
}
output regional_domain_name {
  value = aws_s3_bucket.bucket.bucket_regional_domain_name
}
```

**配置资源**

配置文件声明置备产品时 AWS Service Catalog 要创建的资源。它包含以下部分：
+ **变量**（可选） - 管理员用户（中心账户管理员）可以分配的，用于自定义配置的值定义。变量为更改给定配置的行为提供了一致接口。变量关键字之后的标签是变量名称，该名称在同一模块的所有变量中必须是唯一的。此名称用于为变量分配外部值和从模块内部引用变量值。
+ **提供商**（可选）-用于资源配置的云服务提供商，即`AWS`。 AWS Service Catalog 仅支持`AWS`作为提供者。因此，Terraform 预配置引擎会覆盖任何其他列出的提供商，预配置为 `AWS`。
+ **资源**（必需）-用于配置 AWS 的基础架构资源。在本教程中，Terraform 配置文件指定为 Amazon S3。
+ **输出**（可选） - 返回的信息或值，类似于编程语言中的返回值。您可使用输出数据，通过自动化工具来配置基础架构工作流程。

# 步骤 2：创建 Terraform 产品
<a name="getstarted-product-Terraform"></a>

安装 Terraform 配置引擎后，你就可以在中创建 HashiCorp Terraform 产品了。 AWS Service Catalog在本教程中，您将创建包含简单 Amazon S3 存储桶的 Terraform 产品。

**创建 Terraform 产品**

1. 在打开 AWS Service Catalog 控制台[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)并以管理员用户身份登录。

1. 导航到**管理**部分，然后选择**产品列表**。

1. 选择**创建产品**。

1. 在“产品详细信息”部分的**创建产品**页面上，选择**外部**或 **Terraform 云**产品类型。Service Catalog 使用*外部*产品类型来支持 Terraform 社区版产品。

1. 输入以下产品详细信息：
   + **产品名称** – **Simple S3 bucket**
   + **产品描述** - 包含 Amazon S3 桶的 Terraform 产品。
   + **拥有者** – **IT**
   + **分销商** – *（空白）*

1. 在**版本详细信息**页面上，依次选择**上传模板文件**和**选择文件**。在 [步骤 1：下载 Terraform 配置文件](getstarted-template-Terraform.md) 中选择您下载的文件。

1. 输入以下信息：
   + **版本名称** – **v1.0**
   + **版本描述** – **Base Version**

1. 在**支持详细信息**部分，输入以下内容，然后选择**创建产品**。
   + **联系电子邮件** – **ITSupport@example.com**
   + **支持链接** – **https://wiki.example.com/IT/support**
   + **支持描述** – **Contact the IT department for issues deploying or connecting to this product.**

1. 选择**创建产品**。

成功创建产品后， AWS Service Catalog 将在产品页面上显示确认横幅。

# 第 3 步：创建 AWS Service Catalog 投资组合
<a name="getstarted-portfolio-Terraform"></a>

您可以在 AWS Service Catalog 管理员帐户（中心帐户）中创建产品组合，以便于产品组织和分发给最终用户帐户（分支账户）。

**创建产品组合**

1. 在打开 AWS Service Catalog 控制台[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)并以管理员身份登录。

1. 在左侧的导航窗格中，选择**产品组合**，然后选择**创建产品组合**。

1. 输入以下值：
   + **产品组合名称** – **S3 bucket**
   + **产品组合描述** — **Sample portfolio for Terraform configurations. ** 
   + **拥有者** – **IT (it@example.com)** 

1. 选择**创建**。

# 步骤 4：将产品添加至产品组合
<a name="getstarted-portfolio-add-product-Terraform"></a>

创建投资组合后，您可以添加在步骤 2 中创建的 HashiCorp Terraform 产品。

**要将产品添加到产品组合**

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

1.  选择您在步骤 2 中创建的简单 S3 桶 Terraform 产品，然后选择**操作**。从下拉菜单中选择**添加产品到产品组合**。 AWS Service Catalog 显示了向**投资组合添加简单 S3 存储桶**窗格。

1. 选择 S3 存储桶产品组合，然后关闭**创建启动约束**。本教程的后面部分中您将创建启动约束。

1. 选择**将产品添加到产品组合**。

成功将产品添加到产品组合后， AWS Service Catalog 将在产品列表页面上显示确认横幅。

# 步骤 5：创建启动角色
<a name="getstarted-launchrole-Terraform"></a>

在此步骤中，您将创建一个 IAM 角色（启动角色），指定 Terraform 配置引擎在最终用户启动 Terra HashiCorp form 产品时 AWS Service Catalog 可以承担的权限。

 您稍后分配给简单 Amazon S3 桶 Terraform 产品作为启动约束的 IAM 角色（启动角色）必须具有以下权限：
+ 访问您的 Terraform 产品的底层 AWS 资源。在本教程中，这包括对 `s3:CreateBucket*`、`s3:DeleteBucket*`、`s3:Get*`、`s3:List*` 和 `s3:PutBucketTagging` Amazon S3 操作的访问权限。
+ 在 AWS Service Catalog自有的 Amazon S3 存储桶中读取对亚马逊 S3 模板的访问权限 
+ 对 `CreateGroup`、`ListGroupResources`、`DeleteGroup` 和 `Tag` 资源组操作的访问权限。这些操作 AWS Service Catalog 允许管理资源组和标签

**在 AWS Service Catalog 管理员帐户中创建启动角色**

1. 登录 AWS Service Catalog 管理员账户后，按照 *IAM 用户指南*中 [JSON 选项卡上创建新策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的说明进行操作。

1. 为您的简单 Amazon S3 存储桶 Terraform 产品创建**策略**。此策略必须在创建启动角色之前创建，并且包含以下权限：
   +  `s3`— 允许列出、读取、写入、配置和标记 Amazon S3 产品的 AWS Service Catalog 全部权限。
   +  `s3`— 允许访问拥有的 Amazon S3 存储桶。 AWS Service Catalog要部署产品， AWS Service Catalog 需要预配置构件的访问权限。
   +  `resourcegroups`— AWS Service Catalog 允许创建、列出、删除和标记 AWS Resource Groups。
   +  `tag`— 允许 AWS Service Catalog 标记权限。
**注意**  
 根据您要部署的基础资源，您可能需要修改示例 JSON 策略。

   在 JSON 策略文档中，粘贴以下内容：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                   }
               }
           },
           {
               "Action": [
                   "s3:CreateBucket*",
                   "s3:DeleteBucket*",
                   "s3:Get*",
                   "s3:List*",
                   "s3:PutBucketTagging"
               ],
               "Resource": "arn:aws:s3:::*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "resource-groups:CreateGroup",
                   "resource-groups:ListGroupResources",
                   "resource-groups:DeleteGroup",
                   "resource-groups:Tag"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "tag:GetResources",
                   "tag:GetTagKeys",
                   "tag:GetTagValues",
                   "tag:TagResources",
                   "tag:UntagResources"
               ],
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. 

   1. 请选择**下一步**，**标签**。

   1. 选择**下一步，****审核**。

   1. 在**查看策略**页面上，输入 **S3ResourceCreationAndArtifactAccessPolicy** 作为**名称**。

   1. 选择**创建策略**。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于**选择可信实体**，选择**自定义信任策略**，然后输入以下 JSON 策略：

1. 选择**下一步**。

1. 在**策略**列表中，选择您刚才创建的 `S3ResourceCreationAndArtifactAccessPolicy`。

1. 选择**下一步**。

1. 对于**角色名称**，输入 **SCLaunch-S3product**。
**重要**  
启动角色名称**必须**以 “SCLaunch” 开头，后跟所需的角色名称。

1. 选择**创建角色**。
**重要**  
在 AWS Service Catalog 管理员帐户中创建启动角色后，还必须在 AWS Service Catalog 最终用户帐户中创建相同的启动角色。最终用户账户中的角色必须与管理员账户中的角色同名并包含相同的策略。

**在 AWS Service Catalog 最终用户账户中创建启动角色**

1. 以管理员身份登录最终用户账户，遵照 *IAM 用户指南*中[在 JSON 选项卡上创建新策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的说明进行操作。

1. 重复上述在* AWS Service Catalog 管理员帐户中创建启动角色中的*步骤 2-10。

**注意**  
在 AWS Service Catalog 最终用户账户中创建启动角色时，请确保在自定义信任策略**AccountId**中使用相同的管理员。

现在您已经在管理员账户和最终用户账户中创建了启动角色，可以向产品添加启动约束了。

# 步骤 6：为 Terraform 产品添加启动约束
<a name="getstarted-launchconstraint-Terraform"></a>

**重要**  
您必须为 HashiCorp Terraform 产品创建启动约束。如果没有启动约束，最终用户就无法预配置产品。

在管理员账户中创建启动角色后，您就可以关联启动角色和外部或 Terraform 云产品的启动约束了。

此启动约束让最终用户可以启动产品，并在启动之后将其作为预配置产品进行管理。有关更多信息，请参阅 [AWS Service Catalog 启动约束](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html)。

借助使用启动约束，您可以遵循 IAM 最佳实践，将最终用户 IAM 权限保持在最低限度。有关更多信息，请参阅 *IAM 用户指南* 中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

**为产品分配启动约束**

1. 在 [https://console.aws.amazon.com/servic](https://console.aws.amazon.com/servicecatalog.) e AWS Service Catalog catalog 上打开控制台。

1. 从左侧导航控制台中，选择**产品组合**。

1. 选择 **S3 存储桶**产品组合。

1. 在**产品组合详细信息页面**上，选择**约束**选项卡，然后选择**创建约束**。

1. 对于**产品**，选择**简单 S3 存储桶**。 AWS Service Catalog 会自动选择**启动**约束类型。

1. 选择 “**输入角色名称**”，然后选择 **SCLaunch-s** 3Product。

1. 选择**创建**。

**注意**  
在创建启动约束的账户中，以及使用此启动约束启动产品的用户账户中，都必须存在给定的角色名称。

# 步骤 7：授予最终用户访问权限
<a name="getstarted-deploy-Terraform"></a>

将启动限制应用于您的 HashiCorp Terraform 产品后，您就可以向分支账户中的最终用户授予访问权限了。

在本教程中，您会使用主体名称共享，将访问权限授予最终用户。主体名称是群组、角色和用户的名称，管理员可以在产品组合中指定这些名称，然后与产品组合共享。当您共享投资组合时，请 AWS Service Catalog 验证这些委托人名称是否已经存在。如果确实存在，则 AWS Service Catalog 自动将匹配的 IAM 委托人与共享产品组合关联以向最终用户授予访问权限。有关更多信息，请查看[共享产品组合](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing_how-to-share)。

**先决条件**  
如果您还没有为最终用户创建 IAM 群组，请参阅 [向 AWS Service Catalog 最终用户授予权限](getstarted-iamenduser.md)。

**提供对产品组合的访问权限**

1. 导航到**产品组合**页面并选择 **S3 存储桶**产品组合。

1. 选择**访问权限**选项卡，然后选择**授予访问权限**。

1. 在**访问权限类型**窗格中，选择**主体名称**。

1. 在**主体名称**窗格中，选择**主体名称**类型，然后输入分支账户中所需最终用户的主体**名称**。

1. 选择**授予访问权限**。

# 步骤 8：与最终用户共享产品组合
<a name="getstarted-share-portfolio-end-user-Terraform"></a>

 AWS Service Catalog 管理员可以使用 account-to-account共享或 AWS Organizations 共享方式使用最终用户帐户分发电子档案夹。在本教程中，您将使用管理员账户（中心账户）与组织共享您的产品组合，该账户也是组织的管理账户。

**从管理员中心账户共享产品组合**

1. 打开 AWS Service Catalog 控制台，网址为[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)。

1. 在**产品组合**页面上，选择 S3 存储桶产品组合。在**操作**菜单中，选择**共享**。

1. 选择 **AWS Organizations**，然后筛选到您的组织结构。

1. 在 **AWS 组织**窗格中，选择最终用户账户（分支账户）。

   您还可以根据您的组织结构选择**根节点**与整个组织、**父级组织单位（OU）** 或组织内的**子组织单位**共享产品组合。有关更多信息，请查看 [共享产品组合](catalogs_portfolios_sharing_how-to-share.md)。

1. 在**共享设置**窗格中，选择**主体共享**。

1. 选择**共享**。

成功与最终用户共享产品组合后，下一步要验证最终用户体验并预配置 Terraform 产品。

# 步骤 9：测试最终用户体验
<a name="getstarted-verify-Terraform"></a>

要验证最终用户能否成功访问最终用户控制台视图并启动您的**Simple S3 bucket**产品，请以最终用户 AWS 身份登录并执行以下任务。

**验证最终用户可以访问最终用户控制台**
+ 打开 AWS Service Catalog 控制台，[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)查看：
  + **产品** - 用户可使用的产品。
  + **预配置产品** - 用户已启动的预配置产品。

**要验证最终用户是否可以启动 Terraform 产品**

1. 在控制台的**产品**部分，选择**简单 S3 存储桶**。

1. 选择**启动产品**，启动配置产品的向导。

1. 在**启动简单 S3 存储桶**页面上，输入 **Amazon S3 product** 用作预配置产品名称。

1. 在**参数**页面上，输入以下内容，然后选择**下一步**：
   +  **bucket\$1name** — 为 Amazon S3 存储桶提供唯一名称。例如 **terraform-s3-product**。

1. 选择**启动产品**。控制台会显示 Amazon S3 产品启动的堆栈详细信息页面。产品的初始状态是**更改中**。启动该产品需要几分钟。 AWS Service Catalog 要查看当前状态，请刷新您的浏览器。成功启动产品后，状态为**可用**。

   AWS Service Catalog 创建名为的新 Amazon S3 存储桶**terraform-s3-product**。

# 步骤 10：监控 Terraform 预配置操作
<a name="getstarted-monitoring-Terraform"></a>

如果您想监控配置操作，可以查看 Amazon CloudWatch 日志和 AWS Step Functions 任何配置工作流程。

配置工作流程中包含两台状态机：
+ `ManageProvisionedProductStateMachine`— 在配置新的 Terraform 产品和更新现有 Terraform 预配置产品时 AWS Service Catalog 调用此状态机。
+ `TerminateProvisionedProductStateMachine`— 在终止现有 Terraform 预配置产品时 AWS Service Catalog 调用此状态机。

**要执行监控状态机**

1. 打开 AWS 管理控制台，在安装了 Terraform 配置引擎的管理员中心帐户中以管理员身份登录。

1. 打开 **AWS Step Functions**。

1. 在左侧导航面板中，选择**状态机**。

1. 选择 **ManageProvisionedProductStateMachine**。

1. 在**执行**列表中，输入预配置的产品 ID 以找到您要执行的项。
**注意**  
AWS Service Catalog 在配置产品时创建预配置的产品 ID。预配置产品 ID 的格式如下：**pp-1111pwtn[ID number]**。

1. 选择**执行 ID**。

在生成的**执行详细信息**页面上，您可以查看预配置工作流程中的所有步骤。您也可以查看任何失败的步骤以确定失败原因。