

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

# CreateDatasetExportJob 用于场景发现
<a name="sd-export-job"></a>

## 先决条件
<a name="sd-export-job-prereqs"></a>

### 具有服务访问权限的目标 S3 存储桶
<a name="sd-export-job-bucket-policy"></a>

在导出数据之前，必须将存储桶策略附加到目标 S3 存储桶，允许该 Amazon IoT SiteWise 服务写入对象。将以下策略应用于您的存储桶（`{yourbucketname}`替换为您的实际存储桶名称）：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowServiceToWriteObjects",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotsitewise.amazonaws.com"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::{yourbucketname}/*"
        }
    ]
}
```

**注意**  
对于生产环境，可以考虑将操作范围缩小到仅限于服务所需的 S3 操作（例如，`s3:GetBucketLocation`）`s3:PutObject`，而不是使用`s3:*`的。

### 呼叫者的 IAM 权限
<a name="sd-export-job-caller-permissions"></a>

您的调用身份必须有权调用和描述导出任务 API。至少：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InvokeDatasetExportJob",
            "Effect": "Allow",
            "Action": [
                "iotsitewise:CreateDatasetExportJob",
                "iotsitewise:DescribeDatasetExportJob"
            ],
            "Resource": "*"
        }
    ]
}
```

## 请求形状
<a name="sd-export-job-request-shape"></a>

### 端点
<a name="sd-export-job-endpoint"></a>

```
POST /workspaces/{workspaceName}/dataset-export-jobs HTTP/1.1
```

### URI 参数
<a name="sd-export-job-uri-params"></a>


| 参数 | Type | 约束 | 必填 | 
| --- | --- | --- | --- | 
| workspaceName | 字符串 | 1—64 个字符，模式：^[a-zA-Z0-9\_-]\+$ | 是 | 

### 请求正文
<a name="sd-export-job-request-body"></a>


| 参数 | Type | 约束 | 必填 | 注意 | 
| --- | --- | --- | --- | --- | 
| destinationS3Uri | 字符串 | 模式：s3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.\+ | 是 | 写入导出数据的完整 S3 URI | 
| input | ProcessingInput （工会） | 只指定了一个成员 | 是 | 用于处理的输入源 — 仅指定一个选项 | 
| errorReportLocation | 对象 | 必须包含s3Uri（字符串，S3 URI） | 是 | 写入错误报告的 Amazon S3 URI | 
| clientToken | 字符串 | 36—64 个字符，无空格 | 否 | 等效性标记。使用相同的令牌重新提交相同的请求会返回原始任务，而不会创建副本。 | 
| processingInput.trimSettings | 对象 | — | 否 | 用于修剪导出的数据段的配置。控制导出内容的起点和终点边界。 | 
| processingInput.formatSettings | 对象 | — | 否 | 导出数据的输出格式的配置。指定文件格式首选项和编码选项。 | 

### 响应
<a name="sd-export-job-response"></a>

```
{
    "jobId": "string",
    "workspaceName": "string"
}
```

成功时的 HTTP 状态：200 正常。


| 字段 | Type | 约束 | 
| --- | --- | --- | 
| jobId | 字符串 | 36 个字符的固定长度，模式：[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} | 
| workspaceName | 字符串 | 1—64 个字符，模式：^[a-zA-Z0-9\_-]\+$ | 

## 请求负载示例
<a name="sd-export-job-example"></a>

将其另存为 `export-job-request.json`：

```
{
    "destinationS3Uri": "s3://your-export-bucket/scenario-discovery/exports/car_120/2026-07-14/",
    "input": {
        "datasetId": "your-dataset-id"
    },
    "errorReportLocation": {
        "s3Uri": "s3://my-bucket/export-errors/"
    }
}
```

## Amazon CLI
<a name="sd-export-job-cli"></a>

命令（使用输入文件）：

```
aws iotsitewise create-dataset-export-job \
    --region us-east-1 \
    --workspace-name scenario_discovery_car120 \
    --cli-input-json file://export-job-request.json
```

等效的行内表单：

```
aws iotsitewise create-dataset-export-job \
    --region us-east-1 \
    --workspace-name scenario_discovery_car120 \
    --destination-s3-uri "s3://your-export-bucket/scenario-discovery/exports/car_120/2026-07-14/" \
    --input '{"datasetId":"your-dataset-id"}' \
    --error-report-location '{"s3Uri":"s3://my-bucket/export-errors/"}'
```

CLI-only 标志：
+ `--region <name>`（或`AWS_REGION`环境变量）— 必填项
+ `--profile <name>`— 从中选择一个已命名的个人资料 `~/.aws/config`
+ `--cli-input-json file://...`— 从 JSON 文件中读取请求正文
+ `--generate-cli-skeleton`— 打印空白的请求模板

示例输出：

```
{
    "jobId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
    "workspaceName": "scenario_discovery_car120"
}
```

## boto3 (Python)
<a name="sd-export-job-boto3"></a>

```
import boto3

client = boto3.client("iotsitewise", region_name="us-east-1")

response = client.create_dataset_export_job(
    workspaceName="scenario_discovery_car120",
    destinationS3Uri="s3://your-export-bucket/scenario-discovery/exports/car_120/2026-07-14/",
    input={
        "datasetId": "your-dataset-id"
    },
    errorReportLocation={
        "s3Uri": "s3://my-bucket/export-errors/"
    },
)

print(response["jobId"], response["workspaceName"])
```

boto3 特定注意事项：
+ `region_name`— 必填项、传递给`boto3.client()`或通过`AWS_REGION`/`AWS_DEFAULT_REGION`
+ 通过标准的 boto3 链（环境变量、角色`~/.aws/credentials`、 instance/task SSO）解析证书
+ 所有请求参数都使用与 API 模型相匹配的 camelCase 名称。`workspaceName`以 kwarg 的形式传递；boto3 会将其放在 URL 路径上供你使用。
+ 打包调用`try / except botocore.exceptions.ClientError`以处理潜在错误。

## curl（原始 HTTPS）
<a name="sd-export-job-curl"></a>

`CreateDatasetExportJob``POST /workspaces/{workspaceName}/dataset-export-jobs`位于 Amazon IoT SiteWise 数据平面端点上。每个请求都必须使用 Amazon 签名版本 4 (SigV4) 进行签名。

### 端点
<a name="sd-export-job-curl-endpoint"></a>

```
https://data.iotsitewise.<region>.amazonaws.com/workspaces/<workspaceName>/dataset-export-jobs
```

### HTTP 必填元素
<a name="sd-export-job-curl-http"></a>


| Element | 值 | 
| --- | --- | 
| 方法 | POST | 
| 路径 | /workspaces/<workspaceName>/dataset-export-jobs | 
| 主机标头 | data.iotsitewise.<region>.amazonaws.com | 
| Content-Type 标题 | application/json | 
| X-Amz-Date 标题 | ISO 8601 基本格式（例如，）20260714T170000Z | 
| X-Amz-Security-Token | 仅在使用临时证书 (STS) 时才需要 | 
| Authorization 标头 | SigV4 签名（服务 = iotsitewise） | 
| Body | JSON 请求负载 | 

### 推荐：awscurl
<a name="sd-export-job-curl-awscurl"></a>

```
awscurl \
    --service iotsitewise \
    --region us-east-1 \
    -X POST \
    -H "Content-Type: application/json" \
    -d @export-job-request.json \
    https://data.iotsitewise.us-east-1.amazonaws.com/workspaces/scenario_discovery_car120/dataset-export-jobs
```

### Plain curl — 预签名请求框架
<a name="sd-export-job-curl-plain"></a>

```
curl -v -X POST \
    "https://data.iotsitewise.us-east-1.amazonaws.com/workspaces/scenario_discovery_car120/dataset-export-jobs" \
    -H "Host: data.iotsitewise.us-east-1.amazonaws.com" \
    -H "Content-Type: application/json" \
    -H "X-Amz-Date: 20260714T170000Z" \
    -H "X-Amz-Security-Token: <SESSION_TOKEN_IF_TEMP_CREDS>" \
    -H "Authorization: AWS4-HMAC-SHA256 \
Credential=<ACCESS_KEY_ID>/20260714/us-east-1/iotsitewise/aws4_request, \
SignedHeaders=content-type;host;x-amz-date;x-amz-security-token, \
Signature=<COMPUTED_HEX_SIGNATURE>" \
    --data-binary @export-job-request.json
```

有关完整的 SigV4 派生版本，请参阅有关签名 Amazon API 请求的 Amazon 文档。

示例 HTTP 响应：

```
HTTP/1.1 200 OK
Content-Type: application/json

{
    "jobId": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
    "workspaceName": "scenario_discovery_car120"
}
```

## S3 存储桶策略参考
<a name="sd-export-job-bucket-policy-ref"></a>

在调用之前，您必须将此存储桶策略应用于您的目标存储桶`CreateDatasetExportJob`。没有它，该服务将无法将导出的数据写入您的存储桶。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowServiceToWriteObjects",
            "Effect": "Allow",
            "Principal": {
                "Service": "iotsitewise.amazonaws.com"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::{yourbucketname}/*"
        }
    ]
}
```

`{yourbucketname}`替换为您的实际的 S3 存储桶名称。