为消息丰富添加传播属性 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为消息丰富添加传播属性

在中 Amazon IoT Core,您可以通过添加传播属性来丰富来自设备的 MQTT 消息,这些属性是来自事物属性或连接详细信息的上下文元数据。这个过程被称为消息扩充,在各种场景中都很有用。例如,您可以为每个入站发布操作丰富消息,而无需进行任何设备端更改或使用规则。通过利用传播属性,您可以受益于一种更高效、更具成本效益的方法来丰富您的物联网数据,而无需复杂地配置规则或管理重新发布配置。

消息充实功能可供使用基本采集和消息代理的 Amazon IoT Core 客户使用。值得注意的是,虽然发布设备可以使用任何 MQTT 版本,但订阅者(使用消息的应用程序或服务)必须支持 MQTT 5 才能接收具有传播属性的丰富消息。丰富消息将作为 MQTT 5 用户属性添加到从设备发布的每条消息中。如果您使用规则,则可以利用 get_user_propertie s 函数来检索丰富数据,以便根据这些数据进行消息路由或处理。

在中 Amazon IoT Core,您可以使用或在创建或更新事物类型时添加传播属性。 Amazon Web Services Management Console Amazon CLI

重要

添加传播属性时,必须确保发布消息的客户端已通过证书进行身份验证。有关更多信息,请参阅 客户端身份验证

注意

如果您尝试在控制台中使用 MQTT 测试客户端测试此功能,则该功能可能无法运行,因为此功能需要使用关联证书对 MQTT 客户端进行身份验证。

Amazon Web Services Management Console

要添加用于丰富消息的传播属性,请使用 Amazon Web Services Management Console
  1. 在 Amazon IoT 控制台中打开Amazon IoT 主页。在左侧导航栏中,从 “管理” 中选择 “所有设备”。然后选择事物类型

  2. 事物类型页面上,选择创建事物类型

    要通过更新事物类型来配置消息丰富,请选择一种事物类型。然后在事物类型详细信息页面上,选择更新

  3. 创建事物类型页面上,在事物类型属性中选择或输入事物类型信息。

    如果您选择更新事物类型,则在上一步中选择更新后,您将看到事物类型属性

  4. 在 “其他配置” 中,展开 “传播属性”。然后选择事物属性并输入要填充到已发布 MQTT5 消息的事物属性。使用控制台,您最多可以添加三个事物属性。

    传播属性部分,选择连接属性,然后输入属性类型和属性名称(可选)。

  5. (可选)添加标签。然后选择 “创建事物类型”

    如果您选择更新事物类型,请选择更新事物类型

Amazon CLI

  1. 要通过使用创建新的事物类型来添加用于丰富消息的传播属性 Amazon CLI,请运行create-thing-type命令。命令示例如下。

    aws iot create-thing-type \ --thing-type-name "LightBulb" \ --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \

    此命令的输出可能如下所示。

    { "thingTypeName": "LightBulb", "thingTypeArn": "arn:aws:iot:us-west-2:123456789012:thingtype/LightBulb", "thingTypeId": "ce3573b0-0a3c-45a7-ac93-4e0ce14cd190" }
  2. 要使用更新事物类型来配置消息丰富 Amazon CLI,请运行update-thing-type命令。请注意,只有在运行此命令mqtt5Configuration时才能更新。命令示例如下。

    aws iot update-thing-type \ --thing-type-name "MyThingType" \ --thing-type-properties "{\"mqtt5Configuration\":{\"propagatingAttributes\":[{\"userPropertyKey\":\"iot:ClientId\", \"connectionAttribute\":\"iot:ClientId\"}, {\"userPropertyKey\":\"test\", \"thingAttribute\":\"A\"}]}}" \

    此命令不会生成任何输出。

  3. 要描述事物类型,请运行describe-thing-type命令。此命令将在thing-type-properties字段中生成包含消息丰富配置信息的输出。命令示例如下。

    aws iot describe-thing-type \ --thing-type-name "LightBulb"

    输出可能如下所示。

    { "thingTypeName": "LightBulb", "thingTypeId": "bdf72512-0116-4392-8d79-bf39b17ef73d", "thingTypeArn": "arn:aws:iot:us-east-1:123456789012:thingtype/LightBulb", "thingTypeProperties": { "mqtt5Configuration": { "propagatingAttributes": [ { "userPropertyKey": "iot:ClientId", "connectionAttribute": "iot:ClientId" }, { "userPropertyKey": "test", "thingAttribute": "attribute" } ] } }, "thingTypeMetadata": { "deprecated": false, "creationDate": "2024-10-18T17:37:46.656000+00:00" } }

有关更多信息,请参阅 事物类型