本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
HTTP
HTTPS (http
) 動作會將資料從 MQTT 訊息傳送至 Web 應用程式或服務。
要求
此規則動作具有下列需求:
-
您必須先確認並啟用 HTTPS 端點,才可讓規則引擎使用它們。如需詳細資訊,請參閱 使用 HTTP 主題規則目的地。
參數
使用此動作建立 AWS IoT 規則時,必須指定下列資訊:
url
-
使用 HTTP POST 方法傳送訊息的 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 請求中的標頭清單。每個標頭必須包含下列資訊:
注意
當承載採用 JSON 格式時,預設內容類型為 application/json。否則,它是 application/octet-stream。您可以在標頭中使用重要的 content-type 指定確切的內容類型 (不區分大小寫) 來覆寫它。
auth
-
(選用) 規則引擎用來連線至
url
引數中所指定端點 URL 的身分驗證。目前,Signature 第 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 動作:
-
規則引擎會嘗試傳送訊息至少一次。
-
規則引擎最多重試兩次。嘗試次數上限為三次。
-
在下列情況下,規則引擎不會嘗試重試:
-
上一次嘗試提供了大於 16,384 個位元組的回應。
-
下游 Web 服務或應用程式在嘗試之後關閉 TCP 連線。
-
完成請求的總時間超過請求逾時限制。
-
請求傳回了 429、500-599 以外的 HTTP 狀態碼。
-
注意
標準資料傳輸成本
另請參閱
-
在 AWS部落格上的物聯網中, AWS IoT Core 將資料直接從您的網路服務
路由傳送至您的 Web