HTTP - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

HTTP

HTTPS (http) 動作會將資料從 MQTT 訊息傳送至 Web 應用程式或服務。

要求

此規則動作具有下列需求:

參數

使用此動作建立 AWS IoT 規則時,必須指定下列資訊:

url

使用 HTTP POST 方法傳送訊息的 HTTPS 端點。若您使用 IP 地址取代主機名稱,其必須為 IPv4 地址。不支援 IPv6 地址。

支援替代範本:是

confirmationUrl

(選擇性) 如果有指定, AWS IoT 會使用確認 URL 來建立相符的主題規則目的地。您必須先啟用主題規則目的地,才能在 HTTP 動作中進行使用。如需詳細資訊,請參閱 使用 HTTP 主題規則目的地。如果您使用替代範本,則必須手動建立主題規則目的地,然後才能使用 http 動作。confirmationUrl 必須是 url 的字首。

urlconfirmationUrl 之間的關係如下所述:

  • 如果url是硬式編碼confirmationUrl且未提供,我們會隱含地將url欄位視為. confirmationUrl AWS IoT 會建立的主題規則目標url

  • 如果urlconfirmationUrl是硬編碼的,則url必須以confirmationUrl. AWS IoT 會建立的主題規則目標confirmationUrl

  • 如果 url 包含替代範本,則您必須指定 confirmationUrlurl 必須以 confirmationUrl 開頭。如果 confirmationUrl 包含替代範本,則您必須手動建立主題規則目的地,然後才能使用 http 動作。如果confirmationUrl不包含替代範本,請 AWS IoT 建立的主題規則目標confirmationUrl

支援替代範本:是

headers

(選用) 要包含於端點之 HTTP 請求中的標頭清單。每個標頭必須包含下列資訊:

key

標頭的金鑰。

支援替代範本:否

value

標頭的值。

支援替代範本:是

注意

當承載採用 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 狀態碼。

注意

標準資料傳輸成本適用於重試。

另請參閱