本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 AWS IoT Core 规则引擎用于 AWS IoT Events
以下规则将 AWS IoT Core MQTT消息重新发布为影子更新请求消息。我们假设 AWS IoT Core 为由探测器模型控制的每个区域定义了加热装置和冷却装置。在此示例中,我们定义了名为 "Area51HeatingUnit"
和 "Area51CoolingUnit"
的元素。
CLI命令:
aws iot create-topic-rule --cli-input-json file://ADMShadowCoolOffRule.json
ADMShadowCoolOffRule.json
文件:
{ "ruleName": "ADMShadowCoolOff", "topicRulePayload": { "sql": "SELECT topic(3) as state.desired.command FROM 'hvac/Cooling/Off'", "description": "areaDetectorModel mqtt topic publish to cooling unit shadow request", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "$$aws/things/${payload.detector.keyValue}CoolingUnit/shadow/update", "roleArn": "arn:aws:iam::123456789012:role/service-role/ADMShadowRole" } } ] } }
响应:[空]
CLI命令:
aws iot create-topic-rule --cli-input-json file://ADMShadowCoolOnRule.json
ADMShadowCoolOnRule.json
文件:
{ "ruleName": "ADMShadowCoolOn", "topicRulePayload": { "sql": "SELECT topic(3) as state.desired.command FROM 'hvac/Cooling/On'", "description": "areaDetectorModel mqtt topic publish to cooling unit shadow request", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "$$aws/things/${payload.detector.keyValue}CoolingUnit/shadow/update", "roleArn": "arn:aws:iam::123456789012:role/service-role/ADMShadowRole" } } ] } }
响应:[空]
CLI命令:
aws iot create-topic-rule --cli-input-json file://ADMShadowHeatOffRule.json
ADMShadowHeatOffRule.json
文件:
{ "ruleName": "ADMShadowHeatOff", "topicRulePayload": { "sql": "SELECT topic(3) as state.desired.command FROM 'hvac/Heating/Off'", "description": "areaDetectorModel mqtt topic publish to heating unit shadow request", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "$$aws/things/${payload.detector.keyValue}HeatingUnit/shadow/update", "roleArn": "arn:aws:iam::123456789012:role/service-role/ADMShadowRole" } } ] } }
响应:[空]
CLI命令:
aws iot create-topic-rule --cli-input-json file://ADMShadowHeatOnRule.json
ADMShadowHeatOnRule.json
文件:
{ "ruleName": "ADMShadowHeatOn", "topicRulePayload": { "sql": "SELECT topic(3) as state.desired.command FROM 'hvac/Heating/On'", "description": "areaDetectorModel mqtt topic publish to heating unit shadow request", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "$$aws/things/${payload.detector.keyValue}HeatingUnit/shadow/update", "roleArn": "arn:aws:iam::123456789012:role/service-role/ADMShadowRole" } } ] } }
响应:[空]