

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# HTTP
<a name="https-rule-action"></a>

A ação HTTPS (`http`) envia dados de uma mensagem MQTT para um endpoint HTTPS, que pode apontar para um aplicativo ou serviço web.

## Requisitos
<a name="https-rule-action-requirements"></a>

Esta ação de regra tem os seguintes requisitos:
+ Você deve confirmar e ativar os endpoints HTTPS antes que o mecanismo de regras possa usá-los. Para obter mais informações, consulte [Destinos de ação HTTP](http-action-destination.md).

## Parâmetros
<a name="https-rule-action-parameters"></a>

Ao criar uma AWS IoT regra com essa 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](iot-substitution-templates.md): Sim

`confirmationUrl`  
(Opcional) Se especificado, AWS IoT usa o URL de confirmação para criar um destino de regra de tópico correspondente. Você deve habilitar o destino da ação HTTP antes de usá-la em uma ação HTTP. Para obter mais informações, consulte [Destinos de ação HTTP](http-action-destination.md). Se você usar modelos de substituição, deverá criar manualmente um destino de ação HTTP antes que a `http` ação possa ser usada. `confirmationUrl`deve ser um prefixo de. `url`  
A relação entre `url` e `confirmationUrl` é descrita pelo seguinte:  
+ Se `url` estiver codificado e não `confirmationUrl` for fornecido, tratamos implicitamente o `url` campo como o. `confirmationUrl` AWS IoT cria um destino de regra de tópico para`url`.
+ Se `url` e `confirmationUrl` estiverem codificados, `url` deve começar com. `confirmationUrl` 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 um destino de ação HTTP antes que a `http` ação possa ser usada. Se `confirmationUrl` não contiver modelos de substituição, AWS IoT cria um destino de regra de tópico para`confirmationUrl`.
Compatível com [modelos de substituição](iot-substitution-templates.md): 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](iot-substitution-templates.md): Não  
`value`  
O valor do cabeçalho.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Sim
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](https://docs.aws.amazon.com/iot/latest/apireference/API_HttpAuthorization.html).  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não

`enableBatching`  
(Opcional) Se as mensagens de ação HTTP devem ser processadas em uma única solicitação para um determinado URL. O valor pode ser verdadeiro ou falso. Para obter mais informações sobre agrupamento em lotes, consulte Mensagens de [ação HTTP em lotes](http_batching.md).  
Valor booleano  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não

`batchConfig`  
(Opcional) Configurações para agrupamento em lotes. Depois de ativados, `batchConfig` os parâmetros devem ser especificados. Se `batchConfig` os parâmetros não forem especificados, os valores padrão serão usados.    
`maxBatchOpenMs`  
O tempo máximo (em milissegundos) que uma mensagem de saída espera até que outras mensagens criem o lote. Quanto maior a configuração, maior a latência da ação HTTP em lote.  
Valor mínimo: 5 ms. Valor máximo: 200 ms.  
Valor padrão: 20 ms  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não  
`maxBatchSize`  
O número máximo de mensagens que são agrupadas em lotes em uma única execução de ação.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não  
Valor mínimo: 2 mensagens. Valor máximo: 10 mensagens  
Valor padrão: 10 mensagens  
`maxBatchSizeBytes`  
Tamanho máximo de um lote de mensagens, em bytes.  
Valor mínimo: 100 bytes. Valor máximo: 131.072 bytes  
Valor padrão: 5.120 bytes  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não  
`batchAcrossTopics`  
Se é permitido o agrupamento de mensagens de diferentes tópicos do MQTT em uma única solicitação HTTP. Por padrão, somente mensagens do mesmo tópico são agrupadas em lotes. Ative esse parâmetro para casos de uso de roteamento em que mensagens de vários tópicos de dispositivos são destinadas ao mesmo endpoint HTTP.  
Valor padrão: false  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não
As mensagens são sempre agrupadas dentro do escopo da mesma conta, nome da regra, URL do endpoint HTTP de destino e grupo de cobrança. As mensagens que diferem em qualquer um desses atributos nunca são combinadas no mesmo lote, independentemente da `batchAcrossTopics` configuração.
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). 

## Exemplos
<a name="https-rule-action-examples"></a>

O exemplo de JSON a seguir define uma AWS IoT regra 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}" 
                        }
                    ] 
                } 
            }
        ]
    }
}
```

```
"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 repetição da ação HTTP
<a name="https-rule-action-retry-logic"></a>

O mecanismo de AWS IoT regras tenta novamente a ação HTTP de acordo com 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](https://aws.amazon.com/ec2/pricing/on-demand/) se aplicam a novas tentativas.

## Consulte também
<a name="https-rule-action-see-also"></a>
+ [Agrupar mensagens de ação HTTP em lote](http_batching.md)
+ [Destinos de ação HTTP](http-action-destination.md)
+ [Encaminhe dados diretamente AWS IoT Core para seus serviços da Web](https://aws.amazon.com/blogs/iot/route-data-directly-from-iot-core-to-your-web-services/) na *Internet das Coisas no AWS* blog