HTTP - AWS IoT Core

HTTP

La acción HTTPS (http) envía datos de un mensaje MQTT a una aplicación o servicio web.

Requisitos

Esta regla tiene los siguientes requisitos:

Parámetros

Cuando cree una regla AWS IoT con esta acción, debe especificar la información siguiente:

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 dirección IPv4. No se admiten direcciones IPv6.

Admite plantillas de sustitución: Sí

confirmationUrl

(Opcional) Si se especifica, AWS IoT utiliza la dirección URL de confirmación para crear un destino de regla del tema 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 se proporciona confirmationUrl, tratamos implícitamente el campo url como confirmationUrl. AWS IoT crea un destino de regla del tema para url.

  • Si url y confirmationUrl están codificados, url debe comenzar por confirmationUrl. AWS IoT crea un destino de regla del tema para confirmationUrl.

  • 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 del tema para confirmationUrl.

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

Ejemplos

El siguiente ejemplo JSON define una regla AWS IoT 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}" } ] } } ] } }

Lógica de reintento de acciones HTTP

El motor de reglas AWS IoT reintenta 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