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

使用 HTTP 主题规则目标

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

Amazon IoT Core 可以将数据发送到另一个 Web 服务之前,必须确认可以访问该服务的端点。

HTTP 主题规则目标概述

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

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

已启用

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

已禁用

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

IN_PROGRESS

正在确认目标。

ERROR (错误)

目标确认超时。

确认并启用 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

消息类型。

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

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

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

  • 复制 confirmationToken 然后粘贴到 Amazon IoT 控制台的目标确认对话框。

发送新确认请求

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

发送新的确认请求后,您需要重复确认过程

禁用并删除主题规则目标

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

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