HTTP - AWS IoT Core

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:

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. confirmationUrl debe ser un prefijo de url.

La relación entre url y confirmationUrl se describe de la siguiente manera:

  • Si url está codificado y no confirmationUrl se proporciona, tratamos implícitamente el url campo como. confirmationUrl AWS IoTcrea un tema de destino para la regla. url

  • Si url y confirmationUrl están codificados, url deben empezar confirmationUrl por. AWS IoTcrea un tema, regla de destino paraconfirmationUrl.

  • Si url contiene una plantilla de sustitución, debe especificar confirmationUrl y url debe comenzar por confirmationUrl. Si confirmationUrl contiene plantillas de sustitución, debe crear manualmente destinos de reglas del tema para poder utilizar la acción http. Si confirmationUrl no 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 batchConfig los parámetros. Si no se especifican los batchConfig pará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 a los reintentos.

Véase también