HTTP - AWS IoT Core

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

HTTP

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

要求

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

參數

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

url

使用 HTTPPOST方法傳送訊息的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 格式時,預設內容類型為應用程式/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狀態碼。

注意

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

另請參閱