

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

# Edge 上的 EMQX 代理的消息有效载荷格式 Amazon IoT SiteWise
<a name="connect-broker-payload-format"></a>

要让 IoT SiteWise 发布者组件使用来自外部应用程序的数据并将其发布到 Amazon IoT SiteWise 云端，发送到代理的有效负载必须满足特定要求。

了解有效载荷格式是成功与 Amazon IoT SiteWise Edge 进行 MQTT 通信的关键。虽然连接设置过程将在后面的章节中介绍，但我们将首先介绍有效负载要求，以帮助您规划实施。

## MQTT 主题要求
<a name="connect-broker-mqtt-requirements"></a>

对 MQTT 主题结构没有限制，包括使用的关卡数量或字符数。但是，我们建议主题与有效载荷中的`propertyAlias`字段相匹配。

**Example 属性别名示例**  
如果 MQTT 主题是`site1/line1/compressor1/temperature`，请确保`propertyAlias`匹配。  

```
{
  "assetId": "compressor_asset_01",
  "propertyAlias": "site1/line1/compressor1/temperature",
  "propertyId": "temperature_sensor_01",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1683000000
      },
      "value": {
        "doubleValue": 23.5
      }
    }
  ]
}
```

## JSON 负载结构
<a name="connect-broker-json-payload"></a>

MQTT 消息负载以 JSON 编写，并遵循 [Amazon IoT SiteWise API 参考](https://docs.amazonaws.cn/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html)中定义的`PutAssetPropertyValueEntry`消息格式。

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**注意**  
要使消息被视为有效，只能满足以下条件之一：  
`propertyAlias`已设置，或者
`assetId`和`propertyId`都设置好了
`PutAssetPropertyValueEntry`有一个在此上下文中不是必填的`entryId`字段。