本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
HTTP
HTTPS(http
) 操作将MQTT消息中的数据发送到 Web 应用程序或服务。
要求
此规则操作具有以下要求:
-
您必须先确认并启用HTTPS端点,然后规则引擎才能使用它们。有关更多信息,请参阅 使用HTTP主题规则目的地。
参数
使用此操作创建 AWS IoT 规则时,必须指定以下信息:
url
-
使用HTTPPOST方法发送消息的HTTPS终端节点。如果使用 IP 地址代替主机名,则必须是IPv4地址。 IPv6不支持地址。
支持替换模板:是
confirmationUrl
-
(可选)如果指定,则 AWS IoT 使用确认信息URL创建匹配的主题规则目标。您必须先启用主题规则目标,然后才能在 HTTP 操作中它。有关更多信息,请参阅 使用HTTP主题规则目的地。如果您使用替换模板,则必须先手动创建主题规则目标,然后才能使用
http
操作。confirmationUrl
必须是url
的前缀。url
和confirmationUrl
之间的关系由以下内容描述:-
如果
url
是硬编码且confirmationUrl
未提供,则我们会隐式地将该url
字段视为.confirmationUrl
AWS IoT 为创建主题规则目标url
。 -
如果
url
和confirmationUrl
是硬编码,则url
必须以开头。confirmationUrl
AWS IoT 为创建主题规则目标confirmationUrl
。 -
如果
url
包含替换模板,则必须指定confirmationUrl
并且url
必须以confirmationUrl
开头。如果confirmationUrl
包含替换模板,则必须先手动创建主题规则目标,然后才能使用http
操作。如果confirmationUrl
不包含替换模板,则为 AWS IoT 创建主题规则目标confirmationUrl
。
支持替换模板:是
-
headers
-
(可选)要包含在对终端节点的HTTP请求中的标头列表。每个标头都必须包含以下信息:
注意
默认内容类型为 application/json when the payload is in JSON format. Otherwise, it is application/octet-stream。您可以在标头中,使用键内容类型(不区分大小写)指定确切的内容类型来覆盖它。
auth
-
(可选)规则引擎用于连接到
url
参数中URL指定的端点的身份验证。目前,Signature Version 4 是唯一支持的身份验证类型。有关更多信息,请参阅HTTP授权。支持替换模板:否
示例
以下JSON示例定义了带有HTTP操作的 AWS IoT 规则。
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "http": { "url": "https://www.example.com/subpath", "confirmationUrl": "https://www.example.com", "headers": [ { "key": "static_header_key", "value": "static_header_value" }, { "key": "substitutable_header_key", "value": "${value_from_payload}" } ] } } ] } }
HTTP操作重试逻辑
AWS IoT 规则引擎将根据以下规则重试该HTTP操作:
-
规则引擎尝试至少发送一次消息。
-
规则引擎最多重试两次。最大尝试次数为三次。
-
在下列情况中,规则引擎不会尝试重试:
-
之前的尝试提供了大于 16384 字节的响应。
-
下游 Web 服务或应用程序将在尝试后关闭TCP连接。
-
完成包括重试在内的请求总用时超过了请求超时限制。
-
该请求返回的HTTP状态码不是 429、500-599。
-
注意
标准数据传输费用
另请参阅
-
通过 AWS博客上的物联网将数据直接路由 AWS IoT Core 到您的 Web 服务