使用 HTTP 主题规则目标 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 HTTP 主题规则目标

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

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

HTTP 主题规则目标概述

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

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

已启用

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

DISABLED

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

进行中

正在确认目标。

错误

目标确认超时。

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

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

创建 HTTP 主题规则目标

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

创建目标后, Amazon 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

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

enableUrl

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

messageType

消息类型。

确认 HTTP 主题规则目的地

要完成终端节点确认流程,如果您使用的是 Amazon CLI,则必须在确认网址收到确认请求后执行以下步骤。

  1. 确认目标是否愿意接收消息

    要确认主题规则目标是否愿意接收 IoT 消息,请在确认请求enableUrl中调用,或者执行 ConfirmTopicRuleDestination API 操作并传递确认请求confirmationToken中的消息。

  2. 将主题规则状态设置为已启用

    确认目标可以接收消息后,必须执行 UpdateTopicRuleDestination API 操作才能将主题规则的状态设置为ENABLED

如果您使用的是 Amazon IoT 控制台,请将其复制confirmationToken并粘贴到控制 Amazon IoT 台中目标的确认对话框中。然后,您可以启用主题规则。

发送新确认请求

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

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

禁用并删除主题规则目标

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

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