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 datos de un mensaje MQTT a una aplicación o servicio web.

Requisitos

Esta regla tiene los siguientes requisitos:

Parámetros

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

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 de 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 confirmationUrl se proporciona, tratamos implícitamente el url campo como. confirmationUrl AWS IoT crea un tema de destino para la regla. url

  • Si url y confirmationUrl están codificados, url deben empezar confirmationUrl por. AWS IoT crea un tema de destino para confirmationUrl la regla.

  • 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

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}" } ] } } ] } }

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