添加传播属性以丰富消息
在 AWS IoT Core 中,您可以通过添加传播属性(来自事物属性或连接详细信息的上下文元数据)来丰富来自设备的 MQTT 消息。这个过程称为消息丰富,在各种场景中都很有用。例如,您可以为每个入站发布操作丰富消息,而无需进行任何设备端更改或需要使用规则。通过利用传播属性,您可以受益于更高效和更具成本效益的方式来丰富您的物联网数据,而无需配置规则或管理重新发布配置的复杂性。
消息丰富功能适用于使用基本摄取和消息代理的 AWS IoT Core 客户。需要注意的是,虽然发布设备可以使用任何 MQTT 版本,但订阅者(使用消息的应用程序或服务)必须支持 MQTT 5
在 AWS IoT Core 中,您可以在创建或更新事物类型时,通过使用 AWS 管理控制台 或 AWS CLI 来添加传播属性。
重要
添加传播属性时,必须确保发布消息的客户端已使用证书进行身份验证。有关更多信息,请参阅 客户端身份验证。
注意
如果您尝试在控制台内使用 MQTT 测试客户端测试此功能,它可能无法工作,因为此功能要求 MQTT 客户端使用关联的证书进行身份验证。
AWS 管理控制台
要使用 AWS 管理控制台 为消息丰富添加传播属性
-
在 AWS IoT 控制台中打开 AWS IoT 主页
。在左侧导航栏中,从管理下选择所有设备。然后选择事物类型。 -
在事物类型页面上,选择创建事物类型。
要通过更新事物类型来配置消息丰富,请选择一个事物类型。然后在事物类型详细信息页面上,选择更新。
-
在创建事物类型页面上,在事物类型属性中选择或输入事物类型信息。
如果您选择更新事物类型,您将在上一步选择更新后看到事物类型属性。
-
在附加配置中,展开传播属性。然后选择事物属性并输入您希望填充到发布的 MQTT5 消息中的事物属性。使用控制台,您最多可以添加三个事物属性。
在传播属性部分,选择连接属性并输入属性类型,以及可选的属性名称。
-
可选地添加标签。然后选择创建事物类型。
如果您选择更新事物类型,请选择更新事物类型。
AWS CLI
-
要通过使用 AWS 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" } -
要通过使用 AWS 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\"}]}}" \此命令不会生成任何输出。
-
要描述一个事物类型,请运行
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" } }
有关更多信息,请参阅 事物类型。