

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

# 将数据集添加到 AWS Data Exchange
<a name="add-data-sets"></a>

**注意**  
通过类型为 `AddDataSets` 的 Catalog API 更改集添加的数据集默认为产品的发布方法。

要向您的 AWS Data Exchange 产品添加数据集，请开始更改类型集`AddDataSets`。为此，您可以使用 `StartChangeSet` API 操作并指定更改类型、产品标识符、产品类型以及包括数据集 Amazon 资源名称 (ARN) 在内的详细信息。

## 教程：向已发布的数据产品添加新数据集
<a name="add-data-sets-tutorial"></a>

本教程将引导您完成向已发布产品添加新 AWS Data Exchange 数据集的详细步骤。本教程包含以下概括步骤：

**Topics**
+ [设置 IAM 权限](#data-set-catalog-iam-permissions)
+ [访问 AWS Marketplace 目录 API](#data-set-access-catalog-api)
+ [从 AWS Data Exchange 控制台获取您的产品 ID](#get-data-set-exchange-product-id)
+ [启动更改请求](#start-data-set-change-request)
+ [检查更改集的状态](#check-data-set-change-status)

### 设置 IAM 权限
<a name="data-set-catalog-iam-permissions"></a>

在开始之前，你需要 AWS Identity and Access Management (IAM) 权限才能使用 AWS Marketplace 目录 API。这些权限是您使用所需的权限之外的额外权限 AWS Data Exchange。

1. 将您的浏览器导航到 IAM 控制台，然后使用 AWS 账户 可以管理 IAM 权限的登录。

1. 在左侧导航窗格中，选择**策略**。

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

1. 选择 **JSON** 选项卡，并提供以下权限。这提供了对 AWS Marketplace 目录 API 的完全访问权限。您可以根据自己的使用案例限制访问权限。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "aws-marketplace:CancelChangeSet",
           "aws-marketplace:ListChangeSets",
           "aws-marketplace:DescribeEntity",
           "aws-marketplace:StartChangeSet",
           "aws-marketplace:ListEntities",
           "aws-marketplace:DescribeChangeSet",
           "dataexchange:PublishDataSet"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

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

1. 为策略输入名称（例如 **CatalogAPIFullAccess**），然后选择**创建策略**。

1. 使用 IAM 控制台时，选择要将该策略附加到的用户、组或角色。

### 访问 AWS Marketplace 目录 API
<a name="data-set-access-catalog-api"></a>

要访问 AWS Marketplace 目录 API，请使用以下 HTTP 客户端端点。

```
catalog.marketplace.us-east-1.amazonaws.com
```

### 从 AWS Data Exchange 控制台获取您的产品 ID
<a name="get-data-set-exchange-product-id"></a>

在使用 AWS Marketplace 目录 API 发布新数据集之前，请先从 AWS Data Exchange 控制台获取您的产品 ID。导航到**产品控制面板**，然后复制您要为其发布数据集的产品 ID。您也可以使用 [AWS Marketplace Catalog API](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html)，通过 `ListEntities` 操作并指定 **DataProduct@1.0** 实体类型，来查找您的产品 ID。

### 启动更改请求
<a name="start-data-set-change-request"></a>

**要启动更改请求以在测试产品中添加数据集，请按以下步骤操作：**

1. 按照[从 AWS Data Exchange 控制台获取您的产品 ID](#get-data-set-exchange-product-id)中的说明复制您获得的实体 ID。

1. 使用 `AddDataSets` 更改类型提出 `StartChangeSet` 请求。

**注意**  
有关在 Catalo AWS Marketplace g API 中使用变更集的信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html#working-with-change-sets)。有关使用实体标识符的更多信息，请参阅[标识符](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html#identifier)。

**示例请求**

```
https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet
```

**示例请求正文**

```
{
    "Catalog": "AWSMarketplace",
    "ChangeSetName": "Adding Data Set to my test Data Product",
    "ChangeSet": [
        {
            "ChangeType": "AddDataSets",
            "Entity": {
                "Identifier": "entity-id@1",
                "Type": "DataProduct@1.0"
            },
            "Details": "{ \"DataSets\": [ { \"Arn\": \"data-set-arn\" } ] }"
        }
    ]
}
```

**响应示例**

```
{
  "ChangeSetId": "cs-bnEXAMPLE4mkz9oh",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:account-id:AWSMarketplace/ChangeSet/cs-bnEXAMPLE4mkz9oh"
}
```

### 检查更改集的状态
<a name="check-data-set-change-status"></a>

使用 `StartChangeSet` API 操作启动更改请求后，您可以使用 `DescribeChangeSet` 操作来检查其状态。提供 `StartChangeSet` API 响应中返回的更改集 ID。

**示例请求**

```
https://catalog.marketplace.us-east-1.amazonaws.com/DescribeChangeSet?catalog=AWSMarketplace&changeSetId=cs-bnEXAMPLE4mkz9oh
```

**示例请求正文**

```
{
"changeSetId":"cs-bnEXAMPLE4mkz9oh"
}
```

**响应示例**

```
{
    "ChangeSetId": "cs-bnEXAMPLE4mkz9oh",
    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:account-id:AWSMarketplace/ChangeSet/cs-bnEXAMPLE4mkz9oh",
    "ChangeSetName": "Adding Data Set to my test Data Product",
    "StartTime": "2018-09-20T19:45:03.115+0000",
    "EndTime": "2018-09-20T19:48:12.517+0000",
    "Status": "SUCCEEDED",
    "FailureDescription": null,
    "ChangeSet": [
        {
            "ChangeType": "AddDataSets",
            "Entity": {
                "Type": "DataProduct@1.0",
                "Identifier": "entity-id@1"
            },
            "ErrorList": []
        }
    ]
}
```

## AddDataSets 例外
<a name="catalog-exceptions-data-sets"></a>

将 AWS Marketplace 目录 API 与配合使用时，可能会出现以下异常 AWS Data Exchange：

**DATA\$1SET\$1NOT\$1FOUND**  
当找不到请求的数据集时，就会发生这种情况。要解决此问题，请确保数据集 ARN 中没有错字，并且 AWS 账户 您拥有该数据集，然后重试。

**INVALID\$1INPUT**  
由于输入无效，无法处理该请求。要解决此问题，请确保该请求中没有错别字，并且该产品不超过允许的数据集的最大数量。

**DATA\$1SET\$1ALREADY\$1PUBLISHED**  
当数据集之前已添加到该产品中时，就会发生这种情况。

**DATA\$1SET\$1DUPLICATE\$1PROVIDED**  
 当该请求中多次提供相同的数据集时，就会发生这种情况。