Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
HTTP
La acción HTTPS (http) envía los datos de un mensaje MQTT a un punto final HTTPS, que puede apuntar a una aplicación o servicio web.
Requisitos
Esta regla tiene los siguientes requisitos:
-
Debe confirmar y habilitar los puntos de conexión HTTPS antes de que el motor de reglas pueda usarlos. Para obtener más información, consulte Trabajar con destinos de reglas temática HTTP.
Parameters
Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:
url-
El punto de conexión HTTPS al que se envía el mensaje mediante el método HTTP POST. Si utiliza una dirección IP en lugar de un nombre de host, debe ser una IPv4 dirección. IPv6 no se admiten direcciones.
Admite plantillas de sustitución: Sí
confirmationUrl-
(Opcional) Si se especifica, AWS IoT utiliza la URL de confirmación para crear un destino de regla temática coincidente. Debe habilitar el destino de la regla del tema para poder usarlo en una acción HTTP. Para obtener más información, consulte Trabajar con destinos de reglas temática HTTP. Si utiliza plantillas de sustitución, debe crear manualmente destinos de reglas de tema para poder utilizar la acción
http.confirmationUrldebe ser un prefijo deurl.La relación entre
urlyconfirmationUrlse describe de la siguiente manera:-
Si
urlestá codificado y noconfirmationUrlse proporciona, tratamos implícitamente elurlcampo como.confirmationUrlAWS IoTcrea un tema de destino para la regla.url -
Si
urlyconfirmationUrlestán codificados,urldeben empezarconfirmationUrlpor. AWS IoTcrea un tema, regla de destino paraconfirmationUrl. -
Si
urlcontiene una plantilla de sustitución, debe especificarconfirmationUrlyurldebe comenzar porconfirmationUrl. SiconfirmationUrlcontiene plantillas de sustitución, debe crear manualmente destinos de reglas del tema para poder utilizar la acciónhttp. SiconfirmationUrlno contiene plantillas de sustitución, AWS IoT crea un destino de regla temática paraconfirmationUrl.
Admite plantillas de sustitución: Sí
-
headers-
(Opcional) La lista de encabezados que se van a incluir en las solicitudes HTTP al punto de conexión. Cada encabezado debe contener la siguiente información:
key-
La clave del encabezado.
Admite plantillas de sustitución: No
value-
El valor del encabezado.
Admite plantillas de sustitución: Sí
nota
El tipo de contenido predeterminado es application/json cuando la carga útil está en formato JSON. De lo contrario, es application/octet-stream. Puede sobrescribirlo especificando el tipo de contenido exacto en el encabezado con el tipo de contenido de la clave (sin distinción entre mayúsculas y minúsculas).
auth-
(Opcional) Autenticación utilizada por el motor de reglas para conectarse a la dirección URL del punto de conexión especificada en el argumento
url. Actualmente, Signature Version 4 es el único tipo de autenticación admitido. Para obtener más información, consulte Autorización HTTP.Admite plantillas de sustitución: No
enableBatching-
(Opcional) Si se deben procesar los mensajes de acción HTTP en una sola solicitud para una URL determinada. El valor puede ser verdadero o falso. Para obtener más información sobre el procesamiento por lotes, consulte Procesamiento por lotes de mensajes de acción HTTP.
Valor booleano
Admite plantillas de sustitución: No
batchConfig-
(Opcional) Ajustes de configuración para el procesamiento por lotes. Una vez habilitados, se deben especificar
batchConfiglos parámetros. Si no se especifican losbatchConfigparámetros, se utilizarán los valores predeterminados.maxBatchOpenMs-
El tiempo máximo (en milisegundos) que un mensaje saliente espera a que otros mensajes creen el lote. Cuanto más alta sea la configuración, mayor será la latencia de la acción HTTP agrupada en lotes.
Valor mínimo: 5 ms. Valor máximo: 200 ms.
Valor predeterminado: 20 ms
Admite plantillas de sustitución: No
maxBatchSize-
El número máximo de mensajes que se agrupan en lotes en la ejecución de una sola acción.
Admite plantillas de sustitución: No
Valor mínimo: 2 mensajes. Valor máximo: 10 mensajes
Valor predeterminado: 10 mensajes
maxBatchSizeBytes-
Tamaño máximo de un lote de mensajes, en bytes.
Valor mínimo: 100 bytes. Valor máximo: 131.072 bytes
Valor predeterminado: 5.120 bytes
Admite plantillas de sustitución: No
nota
El tipo de contenido predeterminado es application/json cuando la carga útil está en formato JSON. De lo contrario, es application/octet-stream. Puede sobrescribirlo especificando el tipo de contenido exacto en el encabezado con el tipo de contenido de la clave (sin distinción entre mayúsculas y minúsculas).
Ejemplos
El siguiente ejemplo de JSON define una AWS IoT regla con una acción 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 } }
Lógica de reintento de acciones HTTP
El motor de AWS IoT reglas vuelve a intentar la acción HTTP de acuerdo con estas reglas:
-
El motor de reglas intenta enviar un mensaje al menos una vez.
-
El motor de reglas realiza como máximo dos reintentos. El número máximo de intentos es tres.
-
El motor de reglas no realiza un reintento si:
-
El intento anterior proporcionó una respuesta mayor de 16.384 bytes.
-
El servicio o la aplicación web de salida cierra la conexión TCP después del intento.
-
El tiempo total para completar una solicitud con reintentos superó el límite de tiempo de espera de la solicitud.
-
La solicitud devuelve un código de estado HTTP distinto de 429, 500-599.
-
nota
Se aplican costos estándar de transferencia de datos
Véase también
-
Enrute los datos directamente desde AWS IoT Core sus servicios web
en el blog de Internet de las AWS cosas