Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
HTTP
L'azione HTTPS (http) invia i dati da un messaggio MQTT a un endpoint HTTPS, che può puntare a un'applicazione o un servizio web.
Requisiti
Questa operazione della regola presenta i seguenti requisiti:
-
È necessario confermare e abilitare gli endpoint HTTPS prima che il motore delle regole possa utilizzarli. Per ulteriori informazioni, consulta Destinazioni dell’azione HTTP.
Parameters
Quando si crea una AWS IoT regola con questa azione, è necessario specificare le seguenti informazioni:
url-
L'endpoint HTTPS in cui il messaggio viene inviato utilizzando il metodo HTTP POST. Se si utilizza un indirizzo IP al posto di un nome host, questo deve essere un indirizzo IPv4. Gli indirizzi IPv6 non sono supportati.
Supporta modelli di sostituzione: sì
confirmationUrl-
(Facoltativo) Se specificato, AWS IoT utilizza l'URL di conferma per creare una destinazione corrispondente alla regola dell'argomento. È necessario abilitare la destinazione dell'azione HTTP prima di utilizzarla in un'azione HTTP. Per ulteriori informazioni, consulta Destinazioni dell’azione HTTP. Se si utilizzano modelli di sostituzione, è necessario creare manualmente una destinazione dell'azione HTTP prima che l'
httpazione possa essere utilizzata.confirmationUrldeve essere il prefisso di.urlLa relazione tra
urledconfirmationUrlè descritta come segue:-
Se
urlè codificato e nonconfirmationUrlviene fornito, consideriamo implicitamente ilurlcampo come.confirmationUrlAWS IoT crea una regola tematica di destinazione per.url -
Se
urleconfirmationUrlsono codificati,urldeve iniziare con.confirmationUrlAWS IoT crea una regola tematica di destinazione per.confirmationUrl -
Se
urlcontiene un modello di sostituzione, è necessario specificareconfirmationUrleurldeve cominciare conconfirmationUrl. SeconfirmationUrlcontiene modelli di sostituzione, è necessario creare manualmente una destinazione dell'azione HTTP prima che l'httpazione possa essere utilizzata. SeconfirmationUrlnon contiene modelli di sostituzione, AWS IoT crea una regola tematica di destinazione per.confirmationUrl
Supporta modelli di sostituzione: sì
-
headers-
(Facoltativo) L’elenco delle intestazioni da includere nelle richieste HTTP all'endpoint. Ogni richiesta deve contenere le seguenti informazioni:
key-
La chiave dell'intestazione.
Supporta modelli di sostituzione: no
value-
Il valore dell'intestazione.
Supporta modelli di sostituzione: sì
Nota
Il tipo di contenuto predefinito è application/json quando il payload è in formato JSON. Altrimenti, è application/octet -stream. È possibile sovrascriverlo specificando il tipo di contenuto esatto nell'intestazione con il tipo di contenuto chiave (senza distinzione tra maiuscole e minuscole).
auth-
(Facoltativo) L’autenticazione utilizzata dal motore di regole per connettersi all'URL dell'endpoint specificato nell'argomento
url. Attualmente, la versione 4 della firma è l'unico tipo di autenticazione supportato. Per ulteriori informazioni, vedere l'Autorizzazione HTTP.Supporta modelli di sostituzione: no
enableBatching-
(Facoltativo) Se elaborare i messaggi di azione HTTP in un'unica richiesta per un determinato URL. Il valore può essere vero o falso. Per ulteriori informazioni sul batch, consulta Creazione in batch dei messaggi di azione HTTP.
Valore booleano
Supporta modelli di sostituzione: no
batchConfig-
(Facoltativo) Impostazioni di configurazione per il batch. Una volta abilitato, è necessario specificare
batchConfigi parametri. SebatchConfigi parametri non sono specificati, verranno utilizzati i valori predefiniti.maxBatchOpenMs-
Il tempo massimo (in millisecondi) in cui un messaggio in uscita attende che altri messaggi creino il batch. Maggiore è l'impostazione, maggiore è la latenza dell'azione HTTP in batch.
Valore minimo: 5 ms. Valore massimo: 200 ms.
Valore predefinito: 20 ms
Supporta modelli di sostituzione: no
maxBatchSize-
Il numero massimo di messaggi raggruppati in un'unica azione.
Supporta modelli di sostituzione: no
Valore minimo: 2 messaggi. Valore massimo: 10 messaggi
Valore predefinito: 10 messaggi
maxBatchSizeBytes-
Dimensione massima di un batch di messaggi, in byte.
Valore minimo: 100 byte. Valore massimo: 131.072 byte
Valore predefinito: 5.120 byte
Supporta modelli di sostituzione: no
batchAcrossTopics-
Se consentire il raggruppamento in batch di messaggi provenienti da diversi argomenti MQTT in un'unica richiesta HTTP. Per impostazione predefinita, solo i messaggi dello stesso argomento vengono raggruppati insieme. Abilita questo parametro per il routing dei casi d'uso in cui i messaggi provenienti da più argomenti del dispositivo sono destinati allo stesso endpoint HTTP.
Valore predefinito: false
Supporta modelli di sostituzione: no
Nota
I messaggi vengono sempre raggruppati nell’ambito dello stesso account, nome della regola, URL dell’endpoint HTTP di destinazione e gruppo di fatturazione. I messaggi che differiscono in uno di questi attributi non vengono mai combinati nello stesso batch, indipendentemente dall'
batchAcrossTopicsimpostazione.Nota
Il tipo di contenuto predefinito è application/json quando il payload è in formato JSON. Altrimenti, è application/octet -stream. È possibile sovrascriverlo specificando il tipo di contenuto esatto nell'intestazione con il tipo di contenuto chiave (senza distinzione tra maiuscole e minuscole).
Esempi
Il seguente esempio JSON definisce una AWS IoT regola con un'azione HTTP.
{ "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 } }
Logica di ripetizione dell'operazione HTTP
Il motore AWS IoT delle regole riprova l'azione HTTP in base alle seguenti regole:
-
Il motore delle regole tenta di inviare un messaggio almeno una volta.
-
Il motore delle regole effettua un massimo di due tentativi. Il numero massimo di tentativi è tre.
-
Il motore delle regole non effettua un nuovo tentativo se:
-
Il tentativo precedente ha fornito una risposta maggiore di 16.384 byte.
-
Il servizio Web downstream o l'applicazione chiude la connessione TCP dopo il tentativo.
-
Il tempo totale per completare una richiesta con nuovi tentativi ha superato il limite di timeout della richiesta.
-
La richiesta restituisce un codice di stato HTTP diverso da 429, 500-599.
-
Nota
I costi standard di trasferimento dei dati
Consulta anche
-
Indirizza i dati direttamente AWS IoT Core ai tuoi servizi web
nell'Internet of Things sul blog AWS