

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

L'azione HTTPS (`http`) invia i dati da un messaggio MQTT a un endpoint HTTPS, che può puntare a un'applicazione o un servizio Web.

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

Questa operazione della regola presenta i seguenti requisiti:
+ È necessario confermare e abilitare gli endpoint HTTPS prima che il motore delle regole possa utilizzarli. Per ulteriori informazioni, consulta [Destinazioni di azioni HTTP](http-action-destination.md).

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

Quando create una AWS IoT regola con questa azione, dovete specificare le seguenti informazioni:

`url`  
L'endpoint HTTPS in cui il messaggio viene inviato utilizzando il metodo HTTP POST. Se si utilizza un indirizzo IP al posto di un nome host, deve essere un IPv4 indirizzo. IPv6 gli indirizzi non sono supportati.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`confirmationUrl`  
(Facoltativo) Se specificato, AWS IoT utilizza l'URL di conferma per creare una destinazione per la regola dell'argomento corrispondente. È necessario abilitare la destinazione dell'azione HTTP prima di utilizzarla in un'azione HTTP. Per ulteriori informazioni, consulta [Destinazioni di azioni HTTP](http-action-destination.md). Se si utilizzano modelli sostitutivi, è necessario creare manualmente una destinazione dell'azione HTTP prima di poter utilizzare l'`http`azione. `confirmationUrl`deve essere un prefisso di. `url`  
La relazione tra `url` ed `confirmationUrl` è descritta come segue:  
+ Se `url` è codificato e non `confirmationUrl` viene fornito, trattiamo implicitamente il `url` campo come. `confirmationUrl` AWS IoT crea una destinazione per le regole tematiche per. `url`
+ Se `url` e `confirmationUrl` sono codificati, `url` deve iniziare con. `confirmationUrl` AWS IoT crea una destinazione per le regole tematiche per. `confirmationUrl`
+ Se `url` contiene un modello di sostituzione, è necessario specificare `confirmationUrl` e `url` deve cominciare con `confirmationUrl`. Se `confirmationUrl` contiene modelli di sostituzione, è necessario creare manualmente una destinazione di azione HTTP prima di poter utilizzare l'`http`azione. Se `confirmationUrl` non contiene modelli sostitutivi, AWS IoT crea una destinazione per le regole tematiche per. `confirmationUrl`
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`headers`  
(Facoltativo) L’elenco delle intestazioni da includere nelle richieste HTTP all'endpoint. Ogni richiesta deve contenere le seguenti informazioni:    
`key`  
La chiave dell'intestazione.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no  
`value`  
Il valore dell'intestazione.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì
Il tipo di contenuto predefinito è application/json quando il payload è in formato JSON. Altrimenti, è application/octet-stream. È possibile sovrascriverlo specificando il tipo di contenuto esatto nell'intestazione con il tipo di contenuto chiave (senza distinzione tra maiuscole e minuscole). 

`auth`  
(Facoltativo) L’autenticazione utilizzata dal motore di regole per connettersi all'URL dell'endpoint specificato nell'argomento `url`. Attualmente, la versione 4 della firma è l'unico tipo di autenticazione supportato. Per ulteriori informazioni, vedere l'[Autorizzazione HTTP](https://docs.aws.amazon.com/iot/latest/apireference/API_HttpAuthorization.html).  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no

`enableBatching`  
(Facoltativo) Se elaborare i messaggi di azione HTTP in un'unica richiesta per un determinato URL. Il valore può essere vero o falso. Per ulteriori informazioni sul batch, vedere Creazione in [batch dei messaggi di azione HTTP](http_batching.md).  
Valore booleano  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no

`batchConfig`  
(Facoltativo) Impostazioni di configurazione per il batch. Una volta abilitati, è necessario specificare `batchConfig` i parametri. Se `batchConfig` i parametri non vengono specificati, verranno utilizzati i valori predefiniti.    
`maxBatchOpenMs`  
Il periodo di tempo massimo (in millisecondi) in cui un messaggio in uscita attende che altri messaggi creino il batch. Maggiore è l'impostazione, maggiore è la latenza dell'azione HTTP in batch.  
Valore minimo: 5 ms. Valore massimo: 200 ms.  
Valore predefinito: 20 ms  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no  
`maxBatchSize`  
Il numero massimo di messaggi raggruppati in un'unica esecuzione di azione.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no  
Valore minimo: 2 messaggi. Valore massimo: 10 messaggi  
Valore predefinito: 10 messaggi  
`maxBatchSizeBytes`  
Dimensione massima di un batch di messaggi, in byte.  
Valore minimo: 100 byte. Valore massimo: 131.072 byte  
Valore predefinito: 5.120 byte  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no
Il tipo di contenuto predefinito è application/json quando il payload è in formato JSON. Altrimenti, è application/octet-stream. È possibile sovrascriverlo specificando il tipo di contenuto esatto nell'intestazione con il tipo di contenuto chiave (senza distinzione tra maiuscole e minuscole). 

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

Il seguente esempio JSON definisce una AWS IoT regola con un'azione 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
        }
}
```

## Logica di ripetizione dell'operazione HTTP
<a name="https-rule-action-retry-logic"></a>

Il motore AWS IoT delle regole ritenta l'azione HTTP in base alle seguenti regole:
+ Il motore delle regole tenta di inviare un messaggio almeno una volta.
+ Il motore delle regole effettua un massimo di due tentativi. Il numero massimo di tentativi è tre.
+ Il motore delle regole non effettua un nuovo tentativo se:
  + Il tentativo precedente ha fornito una risposta maggiore di 16.384 byte.
  + Il servizio Web downstream o l'applicazione chiude la connessione TCP dopo il tentativo.
  + Il tempo totale per completare una richiesta con nuovi tentativi ha superato il limite di timeout della richiesta.
  + La richiesta restituisce un codice di stato HTTP diverso da 429, 500-599.

**Nota**  
I [costi standard di trasferimento dei dati](https://aws.amazon.com/ec2/pricing/on-demand/) si applicano ai nuovi tentativi.

## Consulta anche
<a name="https-rule-action-see-also"></a>
+ [Messaggi di azione HTTP in batch](http_batching.md)
+ [Destinazioni di azioni HTTP](http-action-destination.md)
+ [Indirizza i dati AWS IoT Core direttamente dai tuoi servizi Web](https://aws.amazon.com/blogs/iot/route-data-directly-from-iot-core-to-your-web-services/) nell'*Internet of Things sul blog AWS*