View a markdown version of this page

CreateDatasetExportJob 用于场景发现 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

CreateDatasetExportJob 用于场景发现

先决条件

具有服务访问权限的目标 S3 存储桶

在导出数据之前,必须将存储桶策略附加到目标 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:GetBucketLocations3:PutObject,而不是使用s3:*的。

呼叫者的 IAM 权限

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

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

请求形状

端点

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

URI 参数

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

请求正文

参数 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 对象 导出数据的输出格式的配置。指定文件格式首选项和编码选项。

响应

{ "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_-]+$

请求负载示例

将其另存为 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

命令(使用输入文件):

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)

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)

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

端点

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

HTTP 必填元素

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

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 — 预签名请求框架

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 存储桶策略参考

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

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

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