本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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請求中的標頭清單。每個標頭必須包含下列資訊:
注意
當承載為 JSON 格式時,預設內容類型為應用程式/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 服務