

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

# 使用 Amazon S3 添加 AWS IoT SiteWise 缓冲目的地
<a name="destinations-buffered"></a>

 AWS IoT SiteWise 如果您不需要实时数据，则缓冲目标类型允许您节省摄取成本。它允许您在将物联网数据导入 Amazon S3 存储桶之前将其临时存储在 Amazon S3 存储桶中 AWS IoT SiteWise。或者，无论您是否计划将其导入，您都可以简单地将数据上传到 S3 进行存储 AWS IoT SiteWise。这对于在将设备和网关的数据摄取到之前对其进行批处理和缓冲非常有用。 AWS IoT SiteWise使用此选项，数据将以配置的频率以 Parquet 格式上传到指定的 S3 存储桶。然后，您可以将这些数据导入 AWS IoT SiteWise 存储器以进行进一步的分析和处理。

**添加使用 Amazon S3 缓冲的目标**

使用 AWS IoT SiteWise 控制台或 AWS CLI 将使用 Amazon S3 缓冲数据的目标添加到您的 SiteWise Edge 网关。

------
#### [ Console ]

使用 AWS 管理控制台 添加使用 Amazon S3 缓冲的 AWS IoT SiteWise 目标。

1. 打开 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在导航窗格中，选择 **Edge 网关**。

1. 选择要向其添加目的地的网关。

1. 在 “**目的地**” 部分中，选择**添加目的地**。

1. 在**添加目的地**页面上，输入**目的地详细信息**：

   1. 目的地名称字段中的**目的地名称**。

   1. 为**目标类型**选择**使用 Amazon S3 进行AWS IoT SiteWise 缓冲**。 AWS IoT SiteWise 使用 Amazon S3 缓冲以 Parquet 格式将数据分批发送到亚马逊简单存储服务，然后将数据导入 AWS IoT SiteWise 存储。

1. 输入您要存储网关数据的位置的 Amazon S3 网址。您可以通过选择 “浏览 **S3” 来浏览**路径。添加存储桶后，您还可以通过选择 “查看” 来**查看**该存储桶。

1. 通过输入时间范围并选择数据上传频率的时间增量，指定网关应多久**将数据上传到 Amazon S3 的频率**。频率值应大于 0 且小于或等于 30 天。

1. 在**数据存储设置**中，确定将网关数据导入后如何处理网关数据 AWS IoT SiteWise。关于数据存储，需要做出两个决定：
   + 如果要将导入的数据复制到 AWS IoT SiteWise 存储中，请选中 “将**数据复制到存储**” 复选框。此选项会将导入的数据从您配置的 Amazon S3 存储桶复制到 AWS IoT SiteWise 存储中。
   + 如果您选择将数据从 Amazon S3 存储桶导入 AWS IoT SiteWise 存储，则还可以指定是否应在导入完成后删除导入的数据。选中 “**从 Amazon S3 中删除数据**” 复选框，在将导入的日期导入到存储空间后，将其从配置的 Amazon S3 AWS IoT SiteWise 存储桶中删除。

1. 为您的目的地添加路径过滤器。有关更多信息，请参阅[向 AWS IoT SiteWise Edge 目标添加路径过滤器](destinations-add-path-filters.md)。

------
#### [ AWS CLI ]

**Example : 创建一个使用 Amazon S3 进行缓冲的新 AWS IoT SiteWise 目标**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html)API 配置发布者。  
将 `capabilityNamespace` 参数设置为 `iotsitewise:publisher:3`。  

```
{
    "sources": [
      {
        "type": "MQTT"
      }
    ],
    "destinations": [
      {
        "type": "SITEWISE_BUFFERED",
        "name": "your-s3-destination-name",
        "config": {
          "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/Optional/SomeFolder",
          "publishPolicy": {
            "publishFrequency": "15m",
            "localSizeLimitGB": 10
          },
          "siteWiseImportPolicy": {
            "enableSiteWiseStorageImport": true,
            "enableDeleteAfterImport": true,
            "bulkImportJobRoleArn": "arn:aws:iam::123456789012:role/your-role-name"
          }
        },
        "filters": [
          {
            "type": "PATH",
            "config": {
              "paths": [
                "#"
              ]
            }
          }
        ]
      }
    ]
  }
```

**Example : 更新使用 Amazon S3 缓冲的 AWS IoT SiteWise 目标**  
要更新现有的 AWS IoT SiteWise 实时目的地，请先使用 `DescribeGatewayCapabilityConfiguration` API 查找`destinationId`。  
发布者命名空间：`iotsitewise:publisher:3`  

```
{
    "sources": [
      {
        "type": "MQTT"
      }
    ],
    "destinations": [
      {
        "id": "your-existing-destination-id",
        "type": "SITEWISE_BUFFERED",
        "name": "your-s3-destination-name",
        "config": {
          "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/Optional/SomeFolder",
          "publishPolicy": {
            "publishFrequency": "15m",
            "localSizeLimitGB": 10
          },
          "siteWiseImportPolicy": {
            "enableSiteWiseStorageImport": true,
            "enableDeleteAfterImport": true,
            "bulkImportJobRoleArn": "arn:aws:iam::123456789012:role/your-role-name"
          }
        },
        "filters": [
          {
            "type": "PATH",
            "config": {
              "paths": [
                "#"
              ]
            }
          }
        ]
      }
    ]
  }
```

以下配置选项特定于使用命名空间的启用 MQTT 的网关。`iotsitewise:publisher:3`

`sources`  
定义要将数据从工业设备传输到的数据源 AWS IoT SiteWise。对于支持 MQTT 的网关，请使用。`MQTT`  
类型： 对象数组  
是否必需：是

`destinations`  
定义向何处发送数据。目的地要么是实时的，要么是使用 Amazon S3 进行缓冲的。至少需要一个目标对象，但你可以添加一个空数组。每个网关可以有一个实时目的地。有关更多信息，请参阅 [了解 AWS IoT SiteWise 边缘目的地](gw-destinations.md#source-destination)。  
类型： 对象数组  
是否必需：是    
`id`  
目的地的唯一标识符。您可以提供现有的目的地 ID，也可以将其留空，以便为目的地自动生成新 ID。  
类型：字符串  
必需：否  
`type`  
目标类型。选项包括：`SITEWISE_REALTIME`和`SITEWISE_BUFFERED`。选择 `SITEWISE_BUFFERED`。  
+ `SITEWISE_REALTIME`（默认）-实时将数据直接发送到 AWS IoT SiteWise 存储器。有关更多信息，请参阅 [添加 AWS IoT SiteWise Edge 实时目的地](destinations-real-time.md)。
+ `SITEWISE_BUFFERED`— 以 Parquet 格式将数据批量发送到 Amazon S3，然后导入 AWS IoT SiteWise 存储。
类型：字符串  
是否必需：是  
`name`  
目的地的唯一名称。  
类型：字符串  
是否必需：是  
`config`  
特定于目标类型的配置，采用 JSON 格式。配置因实时目的地和缓冲目的地而异。  
类型：对象  
是否必需：是    
`targetBucketArn`  
要发布到的 ARN 存储桶。 AWS 区域 为两者 AWS IoT SiteWise 和 Amazon S3 选择相同的选项。如果选择了前缀，则其长度必须介于 1-255 个字符之间。  
AWS IoT SiteWise（包括网关）将有权访问整个指定的 S3 存储桶。我们建议使用专用的存储桶进行缓冲数据摄取。
类型：字符串  
是否必需：是  
`publishPolicy`  
发布政策的详细信息。  
类型：对象  
是否必需：是    
`publishFrequency`  
 SiteWise 边缘网关向 Amazon S3 存储桶发布内容的频率。向 Amazon S3 上传数据的频率必须大于 0 分钟且小于或等于 30 天。在指定发布频率期`d`限时，可以使用`m``h`、和。请注意，`m` 表示分钟，`h` 表示小时，`d` 表示天。默认值为 15 分钟。  
类型：字符串  
是否必需：是  
`localSizeLimitGB`  
写入本地磁盘的文件的最大大小，以 GB 为单位。如果突破此阈值，则发布者会将所有缓冲的数据发布到其目的地。  
类型：整数  
是否必需：是  
`siteWiseImportPolicy`  
用于将数据导入的导入策略的详细信息 AWS IoT SiteWise。  
类型：对象  
是否必需：是    
`enableSiteWiseStorageImport`  
将其设置为可`true`将数据从 Amazon S3 存储桶导入 AWS IoT SiteWise 存储。它最初会复制中的数据 AWS IoT SiteWise。然后，如果您设置`enableDeleteAfterImport`为 true，则 S3 中的数据将在复制到后删除 AWS IoT SiteWise。定价影响适用。默认值为 `true`。  
类型：布尔值  
是否必需：是  
`enableDeleteAfterImport`  
将其设置为，`true`以便在将文件提取到存储空间后删除 Amazon S3 存储桶中的文件。 AWS IoT SiteWise 默认值为 `true`。  
类型：布尔值  
是否必需：是  
`bulkImportJobRoleArn`  
 AWS IoT SiteWise 假设在数据摄取期间从 Amazon S3 读取缓冲数据的 IAM 角色的 ARN。当边缘设备调用 AWS IoT SiteWise APIs 以启动批量导入过程时，将使用此角色。  
如果设置`enableSiteWiseStorageImport`为`true`，则此参数为必填项。
类型：字符串  
必需：否

------

为您的目的地添加路径过滤器。有关更多信息，请参阅 [向 AWS IoT SiteWise Edge 目标添加路径过滤器](destinations-add-path-filters.md)。