

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

# 將資料集新增至 AWS Data Exchange
<a name="add-data-sets"></a>

**注意**  
透過目錄 API 變更集新增的資料集類型`AddDataSets`預設為產品的發佈方法。

若要將資料集新增至您的 AWS Data Exchange 產品，請啟動類型 的變更集`AddDataSets`。若要這樣做，您可以使用 `StartChangeSet` API 操作並指定變更類型、產品識別符、產品類型和詳細資訊，包括資料集 Amazon Resource Name (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 主控台，並使用可管理 IAM 許可 AWS 帳戶 的 登入。

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) 來尋找您的產品 ID，並使用 `ListEntities`動作搭配 **DataProduct@1.0** 實體類型。

### 啟動變更請求
<a name="start-data-set-change-request"></a>

**若要開始變更請求，以在測試產品中新增資料集**

1. 遵循 中的指示，複製您取得的實體 ID[從 AWS Data Exchange 主控台取得您的產品 ID](#get-data-set-exchange-product-id)。

1. 使用 `AddDataSets` 變更類型提出`StartChangeSet`請求。

**注意**  
如需在 AWS Marketplace 目錄 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**  
 當在請求中提供相同的資料集多次時，就會發生這種情況。