HTTP - AWS IoT Core

HTTP

A ação HTTPS (http) envia dados de uma mensagem MQTT para um aplicativo ou serviço web.

Requisitos

Esta ação de regra tem os seguintes requisitos:

Parâmetros

Ao criar uma regra AWS IoT com esta ação, você deve especificar as seguintes informações:

url

O endpoint HTTPS para o qual a mensagem é enviada usando o método HTTP POST. Se você usar um endereço IP no lugar de um nome de host, ele deverá ser um endereço IPv4. Os endereços IPv6 elásticos não são compatíveis.

Compatível com modelos de substituição: Sim

confirmationUrl

(Opcional) Se especificado, a AWS IoT usa o URL de confirmação para criar um destino de regra de tópico correspondente. Você deve ativar o destino da regra de tópico antes de usá-lo em uma ação HTTP. Para obter mais informações, consulte Como trabalhar com destinos de regra de tópico HTTP. Se você usar modelos de substituição, deverá criar manualmente destinos de regra de tópico antes que a ação http possa ser usada. confirmationUrl Deve ser um prefixo de url.

A relação entre url e confirmationUrl é descrita pelo seguinte:

  • Se url for codificado e confirmationUrl não for fornecido, tratamos implicitamente o campo url como confirmationUrl. A AWS IoT cria um destino de regra de tópico para url.

  • Se url e confirmationUrl forem codificados, url deverá começar com confirmationUrl. A AWS IoT cria um destino de regra de tópico para confirmationUrl.

  • Se url contiver um modelo de substituição, você deverá especificar confirmationUrl e url deverá começar com confirmationUrl. Se confirmationUrl contiver modelos de substituição, você deverá criar manualmente destinos de regra de tópico antes que a ação http possa ser usada. Se confirmationUrl não contiver modelos de substituição, a AWS IoT criará um destino de regra de tópico para confirmationUrl.

Compatível com modelos de substituição: Sim

headers

(Opcional) A lista de cabeçalhos a serem incluídos nas solicitações HTTP para o endpoint. Cada cabeçalho deve conter as seguintes informações:

key

A chave do cabeçalho.

Compatível com modelos de substituição: Não

value

O valor do cabeçalho.

Compatível com modelos de substituição: Sim

nota

O tipo de conteúdo padrão é application/json quando a carga está no formato JSON. Caso contrário, é application/octet-stream. Você pode substituí-lo especificando o tipo de conteúdo exato no cabeçalho com o tipo de conteúdo da chave (sem distinção entre maiúsculas e minúsculas).

auth

(Opcional) A autenticação usada pelo mecanismo de regras para se conectar ao URL do endpoint especificado no argumento url. Atualmente, o Signature versão 4 é o único tipo de autenticação suportado. Para obter mais informações, consulte Autorização HTTP.

Compatível com modelos de substituição: Não

Exemplos

O exemplo JSON a seguir define uma regra AWS IoT com uma ação 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 repetição da ação HTTP

O mecanismo de regras AWS IoT tenta novamente a ação HTTP conforme estas regras:​

  • O mecanismo de regras tenta enviar uma mensagem pelo menos uma vez.

  • O mecanismo de regras tenta novamente no máximo duas vezes. O número máximo de tentativas é três.

  • O mecanismo de regras não fará uma nova tentativa se:

    • A tentativa anterior tiver fornecido uma resposta maior do que 16.384 bytes.

    • O serviço ou aplicativo web downstream fechar a conexão TCP após a tentativa.

    • O tempo total para concluir uma solicitação com repetições tiver excedido o limite de tempo limite da solicitação.

    • A solicitação retorna um código de status HTTP diferente de 429, 500–599.

nota

Custos padrão de transferência de dados se aplicam a novas tentativas.

Consulte também