Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
HTTP
Die Aktion HTTPS (http) sendet Daten aus einer MQTT-Nachricht an einen HTTPS-Endpunkt, der auf eine Webanwendung oder einen Dienst verweisen kann.
Voraussetzungen
Diese Regelaktion hat die folgenden Anforderungen:
-
Sie müssen die HTTPS-Endpunkte bestätigen und aktivieren, bevor sie von der Regel-Engine verwendet werden können. Weitere Informationen finden Sie unter HTTP-Aktionsziele.
Parameters
Wenn Sie eine AWS IoT Regel mit dieser Aktion erstellen, müssen Sie die folgenden Informationen angeben:
url-
Der HTTPS-Endpunkt, an den die Nachricht mithilfe der HTTP-POST-Methode gesendet wird. Wenn Sie eine IP-Adresse anstelle eines Hostnamens verwenden, muss es sich um eine IPv4-Adresse handeln. IPv6-Adressen werden nicht unterstützt.
Unterstützt Ersatzvorlagen: Ja
confirmationUrl-
(Optional) Falls angegeben, wird die Bestätigungs-URL AWS IoT verwendet, um ein passendes Themen-Regelziel zu erstellen. Sie müssen das HTTP-Aktionsziel aktivieren, bevor Sie es in einer HTTP-Aktion verwenden können. Weitere Informationen finden Sie unter HTTP-Aktionsziele. Wenn Sie Substitutionsvorlagen verwenden, müssen Sie manuell ein HTTP-Aktionsziel erstellen, bevor die
httpAktion verwendet werden kann.confirmationUrlmuss ein Präfix vonurlsein.Das Verhältnis zwischen
urlundconfirmationUrlwird wie folgt beschrieben:-
Wenn
urlfest codiert und nicht angegebenconfirmationUrlist, behandeln wir dasurlFeld implizit als.confirmationUrlAWS IoT erstellt ein Ziel für eine Themenregel für.url -
Wenn
urlund fest codiertconfirmationUrlsind,urlmüssen Sie mitconfirmationUrlbeginnen. AWS IoT erstellt ein Ziel für eine Themenregel fürconfirmationUrl. -
Wenn
urleine Ersetzungsvorlage enthält, müssen SieconfirmationUrlangeben undurlmuss mitconfirmationUrlbeginnen. Wenn SubstitutionsvorlagenconfirmationUrlenthalten sind, müssen Sie manuell ein HTTP-Aktionsziel erstellen, bevor diehttpAktion verwendet werden kann. WennconfirmationUrlkeine Substitutionsvorlagen enthält, AWS IoT wird ein Thema-Regelziel für erstellt.confirmationUrl
Unterstützt Ersatzvorlagen: Ja
-
headers-
(Optional) Die Liste der Header, die in HTTP-Anfragen an den Endpunkt aufgenommen werden sollen. Jeder Header muss die folgenden Informationen enthalten:
key-
Der Schlüssel des Headers.
Unterstützt Ersatzvorlagen: Nein
value-
Der Wert des Headers
Unterstützt Ersatzvorlagen: Ja
Anmerkung
Der Standard-Inhaltstyp ist application/json , wenn die Nutzlast im JSON-Format ist. Andernfalls ist es application/octet -stream. Sie können ihn überschreiben, indem Sie im Header den genauen Inhaltstyp mit dem Schlüsselinhaltstyp angeben (ohne Berücksichtigung von Groß- und Kleinschreibung).
auth-
(Optional) Die vom Regelmodul verwendete Authentifizierung, um eine Verbindung mit der im
urlArgument angegebenen Endpunkt-URL herzustellen. Derzeit ist Signature Version 4 der einzige unterstützte Authentifizierungstyp. Weitere Informationen finden Sie unter HTTP-Autorisierung.Unterstützt Ersatzvorlagen: Nein
enableBatching-
(Optional) Ob die HTTP-Aktionsnachrichten in einer einzigen Anfrage für eine bestimmte URL verarbeitet werden sollen. Der Wert kann wahr oder falsch sein. Weitere Informationen zum Batching finden Sie unter Batching von HTTP-Aktionsnachrichten.
Boolescher Wert
Unterstützt Ersatzvorlagen: Nein
batchConfig-
(Optional) Konfigurationseinstellungen für die Stapelverarbeitung. Nach der Aktivierung müssen
batchConfigParameter angegeben werden. Wenn keinebatchConfigParameter angegeben werden, werden die Standardwerte verwendet.maxBatchOpenMs-
Die maximale Zeit (in Millisekunden), die eine ausgehende Nachricht darauf wartet, dass andere Nachrichten den Stapel erstellen. Je höher die Einstellung, desto länger ist die Latenz der Batch-HTTP-Aktion.
Mindestwert: 5 ms. Maximalwert: 200 ms.
Standardwert: 20 ms
Unterstützt Ersatzvorlagen: Nein
maxBatchSize-
Die maximale Anzahl von Nachrichten, die in einer einzigen Aktionsausführung gebündelt werden.
Unterstützt Ersatzvorlagen: Nein
Mindestwert: 2 Nachrichten. Maximalwert: 10 Nachrichten
Standardwert: 10 Nachrichten
maxBatchSizeBytes-
Maximale Größe eines Nachrichtenstapels in Byte.
Mindestwert: 100 Byte. Höchstwert: 131.072 Byte
Standardwert: 5.120 Byte
Unterstützt Ersatzvorlagen: Nein
batchAcrossTopics-
Ob das Stapeln von Nachrichten aus verschiedenen MQTT-Themen in einer einzigen HTTP-Anfrage zulässig ist. Standardmäßig werden nur Nachrichten desselben Themas gebündelt. Aktivieren Sie diesen Parameter für Routing-Anwendungsfälle, in denen Nachrichten aus mehreren Gerätethemen für denselben HTTP-Endpunkt bestimmt sind.
Standardwert: false
Unterstützt Ersatzvorlagen: Nein
Anmerkung
Nachrichten werden immer im Rahmen desselben Kontos, desselben Regelnamens, derselben HTTP-Zielendpunkt-URL und derselben Abrechnungsgruppe gebündelt. Nachrichten, die sich in einem dieser Attribute unterscheiden, werden niemals zu demselben Stapel zusammengefasst, unabhängig von der
batchAcrossTopicsEinstellung.Anmerkung
Der Standard-Inhaltstyp ist application/json , wenn die Nutzlast im JSON-Format vorliegt. Andernfalls ist es application/octet -stream. Sie können ihn überschreiben, indem Sie im Header den genauen Inhaltstyp mit dem Schlüsselinhaltstyp angeben (ohne Berücksichtigung von Groß- und Kleinschreibung).
Beispiele
Das folgende JSON-Beispiel definiert eine AWS IoT Regel mit einer HTTP-Aktion.
{ "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": { "url": "https://www.example.com/subpath", "confirmationUrl": "https://www.example.com", "headers": [ { "key": "Content-Type", "value": "application/json" } ], "enableBatching": true, "batchConfig": { "maxBatchOpenMs": 123, "maxBatchSize": 5, "maxBatchSizeBytes": 131072, } }, "errorAction": { "http": { "url": "https://www.example.com/subpath", "confirmationUrl": "https://www.example.com" // batchConfig is not allowed here } }
Logik zur Wiederholung von HTTP-Aktionen
Die AWS IoT Regel-Engine versucht die HTTP-Aktion gemäß diesen Regeln erneut:
-
Die Regel-Engine versucht mindestens einmal, eine Nachricht zu senden.
-
Die Regel-Engine wiederholt den Versuch höchstens zweimal. Die maximale Anzahl von Versuchen ist drei.
-
Die Regel-Engine unternimmt in folgenden Fällen keinen Wiederholungsversuch:
-
Der vorherige Versuch lieferte eine Antwort mit einer Größe von über 16.384 Bytes.
-
Der nachgeschaltete Webdienst oder die nachgeschaltete Anwendung schließt die TCP-Verbindung nach dem Versuch.
-
Die Gesamtzeit zum Abschließen einer Anforderung mit Wiederholungsversuchen hat das Zeitlimit für die Anforderung überschritten.
-
Die Anforderung gibt einen anderen HTTP-Statuscode als 429, 500–599 zurück.
-
Anmerkung
Für Wiederholungen fallen die Standardkosten für die Datenübertragung
Weitere Informationen finden Sie auch unter
-
Leiten Sie Daten direkt von AWS IoT Core Ihren Webdiensten
im Internet der Dinge im Blog weiter AWS