添加传播属性以丰富消息 - 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_properties 函数来检索丰富的数据,以便基于该数据进行消息路由或处理。

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

重要

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

注意

如果您尝试在控制台内使用 MQTT 测试客户端测试此功能,它可能无法工作,因为此功能要求 MQTT 客户端使用关联的证书进行身份验证。

Amazon Web Services 管理控制台

要使用 Amazon Web Services 管理控制台 为消息丰富添加传播属性
  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" } }

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