

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

L'action HTTPS (`http`) envoie les données d'un message MQTT à un point de terminaison HTTPS, qui peut pointer vers une application ou un service Web.

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

Ce rôle d’action possède les critères suivants :
+ Vous devez confirmer et activer les points de terminaison HTTPS avant que le moteur de règles puisse les utiliser. Pour de plus amples informations, veuillez consulter [Destinations d'action HTTP](http-action-destination.md).

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

Lorsque vous créez une AWS IoT règle avec cette action, vous devez spécifier les informations suivantes :

`url`  
Point de terminaison HTTPS à l'endroit où le message est envoyé à l'aide de la méthode HTTP POST. Si vous utilisez une adresse IP à la place d'un nom d'hôte, il doit s'agir d'une IPv4 adresse. IPv6 les adresses ne sont pas prises en charge.  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Oui

`confirmationUrl`  
(Facultatif) Si cela est spécifié, AWS IoT utilise l'URL de confirmation pour créer une destination de règle de sujet correspondante. Vous devez activer la destination de l'action HTTP avant de l'utiliser dans une action HTTP. Pour de plus amples informations, veuillez consulter [Destinations d'action HTTP](http-action-destination.md). Si vous utilisez des modèles de substitution, vous devez créer manuellement une destination d'action HTTP avant de pouvoir utiliser l'`http`action. `confirmationUrl`doit être un préfixe de. `url`  
La relation entre `url` et `confirmationUrl` est décrite par les éléments suivants :  
+ S'il `url` est codé en dur et n'`confirmationUrl`est pas fourni, nous traitons implicitement le `url` champ comme le. `confirmationUrl` AWS IoT crée une destination de règle de sujet pour`url`.
+ Si `url` et `confirmationUrl` sont codés en dur, cela `url` doit commencer `confirmationUrl` par. AWS IoT crée une destination de règle de sujet pour`confirmationUrl`.
+ Si `url` contient un modèle de substitution, vous devez spécifier `confirmationUrl` et `url` doit commencer par `confirmationUrl`. S'il `confirmationUrl` contient des modèles de substitution, vous devez créer manuellement une destination d'action HTTP avant de pouvoir utiliser l'`http`action. S'il `confirmationUrl` ne contient pas de modèles de substitution, AWS IoT crée une destination de règle de sujet pour`confirmationUrl`.
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Oui

`headers`  
(Facultatif) La liste des en-têtes à inclure dans les requêtes HTTP adressées au point de terminaison. Chaque entête doit contenir les informations suivantes.    
`key`  
La clé de l'en-tête.  
Prend en charge les [modèles de substitution](iot-substitution-templates.md): Non  
`value`  
Valeur de l'en-tête.  
Prend en charge les [modèles de substitution](iot-substitution-templates.md): Oui
Le type de contenu par défaut est application/json lorsque la charge utile est au format JSON. Sinon, il s'agit de application/octet-stream. Vous pouvez le remplacer en spécifiant le type de contenu exact dans l'en-tête avec le type de contenu clé (insensible à la casse). 

`auth`  
(Facultatif) L'authentification utilisée par le moteur de règles pour se connecter à l'URL du point final spécifié dans `url` l'argument. Actuellement, Signature Version 4 est le seul type d'authentification pris en charge. Pour de plus amples informations, veuillez consulter [Autorisation HTTP](https://docs.aws.amazon.com/iot/latest/apireference/API_HttpAuthorization.html).  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Non

`enableBatching`  
(Facultatif) S'il faut traiter les messages d'action HTTP en une seule demande pour une URL donnée. La valeur peut être vraie ou fausse. Pour plus d'informations sur le traitement par lots, consultez la section Traitement par [lots des messages d'action HTTP](http_batching.md).  
Valeur booléenne  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Non

`batchConfig`  
(Facultatif) Paramètres de configuration pour le traitement par lots. Une fois activé, `batchConfig` les paramètres doivent être spécifiés. Si aucun `batchConfig` paramètre n'est spécifié, les valeurs par défaut seront utilisées.    
`maxBatchOpenMs`  
Durée maximale (en millisecondes) pendant laquelle un message sortant attend que d'autres messages créent le lot. Plus le paramètre est élevé, plus la latence de l'action HTTP par lots est longue.  
Valeur minimale : 5 ms. Valeur maximale : 200 ms.  
Valeur par défaut : 20 ms  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Non  
`maxBatchSize`  
Le nombre maximal de messages qui sont regroupés par lots lors de l'exécution d'une seule action.  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Non  
Valeur minimale : 2 messages. Valeur maximale : 10 messages  
Valeur par défaut : 10 messages  
`maxBatchSizeBytes`  
Taille maximale d'un lot de messages, en octets.  
Valeur minimale : 100 octets. Valeur maximale : 131 072 octets  
Valeur par défaut : 5 120 octets  
Prend en charge les [modèles de substitution](iot-substitution-templates.md) : Non
Le type de contenu par défaut est application/json lorsque la charge utile est au format JSON. Sinon, il s'agit de application/octet-stream. Vous pouvez le remplacer en spécifiant le type de contenu exact dans l'en-tête avec le type de contenu clé (insensible à la casse). 

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

L'exemple JSON suivant définit une AWS IoT règle avec une action 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
        }
}
```

## Logique de nouvelle tentative d'action HTTP
<a name="https-rule-action-retry-logic"></a>

Le moteur de AWS IoT règles tente à nouveau l'action HTTP conformément aux règles suivantes :
+ Le moteur de règles essaie d'envoyer un message au moins une fois.
+ Le moteur de règles effectue au plus deux nouvelles tentatives. Le nombre maximum de nouvelles tentatives est trois.
+ Le moteur de règles n'effectue pas de nouvelle tentative si :
  + L'essai précédent a fourni une réponse de plus de 16 384 octets.
  + Le service web ou l'application en aval ferme la connexion TCP après la tentative.
  + Le temps total d'exécution d'une demande avec tentatives a dépassé la limite de temporisation de la demande.
  + La requête renvoie un code d'état HTTP autre que 429, 500-599.

**Note**  
[Les coûts standard de transfert de données](https://aws.amazon.com/ec2/pricing/on-demand/) s'appliquent aux nouvelles tentatives.

## Consultez aussi
<a name="https-rule-action-see-also"></a>
+ [Traitement par lots de messages d’action HTTP](http_batching.md)
+ [Destinations d'action HTTP](http-action-destination.md)
+ [Acheminez les données directement depuis AWS IoT Core vos services Web](https://aws.amazon.com/blogs/iot/route-data-directly-from-iot-core-to-your-web-services/) dans l'*Internet des objets sur le AWS* blog