使用 HTTP 主题规则目标 - AWS IoT Core

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

使用 HTTP 主题规则目标

HTTP 主题规则目标是规则引擎可以将数据从主题规则路由到的 Web 服务。 AWS IoT Core 资源描述了 Web 服务 AWS IoT。主题规则目标资源可以通过不同的规则共享。

在向其他 Web 服务发送数据之前 AWS IoT Core ,它必须确认自己可以访问该服务的终端节点。

HTTP 主题规则目标概述

HTTP 主题规则目标指的是支持确认 URL 和一个或多个数据收集 URL 的网络服务。HTTP 主题规则目标资源包含 Web 服务的确认 URL。配置 HTTP 主题规则操作时,您可以指定应该接收数据的端点的实际 URL 以及网络服务的确认 URL。确认目标后,主题规则会将 SQL 语句的结果发送到 HTTPS 端点(而不是发送到确认 URL)。

HTTP 主体规则目标可以处于以下状态之一:

已启用

已经确认目标,可以由规则操作使用。目标必须处于 ENABLED 状态才能在规则中使用。您只能启用处于 DISABLED 状态的目标。

DISABLED

已经确认目标,但规则操作无法使用。如果您希望暂时阻止流入终端节点的流量而无需再次完成确认流程,则此功能非常有用。您只能禁用处于 ENABLED 状态的目标。

进行中

正在确认目标。

ERROR

目标确认超时。

确认并启用 HTTP 主题规则目标后,可以与帐户中的任何规则一起使用。

以下各节介绍了对 HTTP 主题规则目标的常见操作。

创建和确认 HTTP 主题规则目标

您可以通过调用 CreateTopicRuleDestination 操作或使用 AWS IoT 控制台来创建 HTTP 主题规则目标。

创建目标后, AWS IoT 向确认 URL 发送确认请求。确认请求的格式如下:

HTTP POST {confirmationUrl}/?confirmationToken={confirmationToken} Headers: x-amz-rules-engine-message-type: DestinationConfirmation x-amz-rules-engine-destination-arn:"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4" Content-Type: application/json Body: { "arn":"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4", "confirmationToken": "AYADeMXLrPrNY2wqJAKsFNn-…NBJndA", "enableUrl": "https://iot.us-east-1.amazonaws.com/confirmdestination/AYADeMXLrPrNY2wqJAKsFNn-…NBJndA", "messageType": "DestinationConfirmation" }

确认请求的内容包含以下信息:

arn

要确认的主题规则目标的 Amazon Resource Name (ARN)。

confirmationToken

发送的确认令牌 AWS IoT Core。示例中是已截断的令牌。您的令牌会更长。您需要使用此令牌来确认目的地 AWS IoT Core。

enableUrl

您需要浏览以确认主题规则目标的 URL。

messageType

消息类型。

要完成端点确认过程,必须在确认 URL 收到确认请求后执行以下操作之一。

  • 在确认请求中调用 enableUrl,然后调用 UpdateTopicRuleDestination 将主题规则的状态设置为 ENABLED

  • 调用 ConfirmTopicRuleDestination 操作并从确认请求中传递 confirmationToken

  • 复制confirmationToken并粘贴到 AWS IoT 控制台中目标的确认对话框中。

发送新确认请求

要为目标激活新的确认消息,请调用 UpdateTopicRuleDestination 并将主题规则目标的状态设置为 IN_PROGRESS

发送新的确认请求后,重复确认过程。

禁用并删除主题规则目标

要禁用目标,请调用 UpdateTopicRuleDestination 并将主题规则目标的状态设置为 DISABLED。可以再次启用处于 DISABLED 状态的主题规则,而无需发送新的确认请求。

要删除主题规则目标,请调用 DeleteTopicRuleDestination