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:
-
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.
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 deurl
.La relación entre
url
yconfirmationUrl
se describe de la siguiente manera:-
Si
url
está codificado y no se proporcionaconfirmationUrl
, tratamos implícitamente el campourl
comoconfirmationUrl
. AWS IoT crea un destino de regla del tema paraurl
. -
Si
url
yconfirmationUrl
están codificados,url
debe comenzar porconfirmationUrl
. AWS IoT crea un destino de regla del tema paraconfirmationUrl
. -
Si
url
contiene una plantilla de sustitución, debe especificarconfirmationUrl
yurl
debe comenzar porconfirmationUrl
. SiconfirmationUrl
contiene plantillas de sustitución, debe crear manualmente destinos de reglas del tema para poder utilizar la acciónhttp
. SiconfirmationUrl
no contiene plantillas de sustitución, AWS IoT crea un destino de regla del tema 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 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
Véase también
-
Enrute los datos directamente desde AWS IoT Core a sus servicios web
en el blog de Internet de las cosas AWS