

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à.

# API MQTT di provisioning del dispositivo
<a name="fleet-provision-api"></a><a name="provision-mqtt-api"></a>

Il servizio Fleet Provisioning supporta le seguenti operazioni dell'API MQTT:
+ `CreateCertificateFromCsr`
+ `CreateKeysAndCertificate`
+ `RegisterThing`

Questa API supporta buffer di risposta in formato Concise Binary Object Representation (CBOR) e JavaScript Object Notation (JSON), a seconda dell'argomento. *payload-format* Per maggiore chiarezza, gli esempi di risposta e richiesta in questa sezione sono mostrati in formato JSON.


| *payload-format* | Tipo di dati del formato della risposta | 
| --- | --- | 
| cbor | Concise Binary Object Representation (CBOR) | 
| json | JavaScript Notazione di oggetti (JSON) | 

**Importante**  
Prima di pubblicare un argomento del messaggio di richiesta, sottoscrivere gli argomenti di risposta per ricevere la risposta. I messaggi utilizzati da questa API utilizzano il protocollo di pubblicazione/sottoscrizione di MQTT per fornire un'interazione di richiesta e risposta.   
Se non ti iscrivi agli argomenti di risposta *prima di* pubblicare una richiesta, potresti non ricevere i risultati di quella richiesta.  
IoT Core Fleet Provisioning restituisce i risultati dell'API MQTT di provisioning del dispositivo tramite la stessa connessione MQTT utilizzata per pubblicare la richiesta API.

## CreateCertificateFromCsr
<a name="create-cert-csr"></a>

Crea un certificato da una richiesta di firma del certificato (CSR). AWS IoT fornisce certificati client firmati dall'autorità di certificazione Amazon Root (CA). Il nuovo certificato ha uno stato `PENDING_ACTIVATION`. Quando si chiama `RegisterThing` per eseguire il provisioning di un oggetto con questo certificato, lo stato del certificato cambia in `ACTIVE` o `INACTIVE` come descritto nel modello.

Per ulteriori informazioni sulla creazione di un certificato client utilizzando il certificato dell'autorità di certificazione e una richiesta di firma del certificato, consulta [Creare un certificato client utilizzando il certificato CA](create-device-cert.md).

**Nota**  
Per sicurezza, il valore `certificateOwnershipToken` restituito da `CreateCertificateFromCsr` scade dopo un'ora. `RegisterThing` deve essere chiamato prima della scadenza di `certificateOwnershipToken`. Se il certificato creato da `CreateCertificateFromCsr` non è stato attivato e allegato a una politica o a un oggetto entro la scadenza del token, il certificato viene eliminato. Se il token scade, il dispositivo può chiamare `CreateCertificateFromCsr` per generare un nuovo certificato.

### CreateCertificateFromCsr richiesta
<a name="create-cert-csr-request"></a>

Pubblicare un messaggio con l'argomento `$aws/certificates/create-from-csr/payload-format`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

#### CreateCertificateFromCsr richiedere un payload
<a name="create-cert-csr-request-payload"></a>

```
{
    "certificateSigningRequest": "string"
}
```

`certificateSigningRequest`  
La CSR, in formato PEM.

### CreateCertificateFromCsr risposta
<a name="create-cert-csr-response"></a>

Sottoscrizione ad `$aws/certificates/create-from-csr/payload-format/accepted`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

#### CreateCertificateFromCsr carico utile di risposta
<a name="create-cert-csr-response-payload"></a>

```
{
    "certificateOwnershipToken": "string",
    "certificateId": "string",
    "certificatePem": "string"
}
```

`certificateOwnershipToken`  
Il token per dimostrare la proprietà del certificato durante il provisioning. 

`certificateId`  
ID del certificato. Le operazioni di gestione dei certificati accettano solo un parametro certificateId. 

`certificatePem`  
Dati del certificato, in formato PEM.

### CreateCertificateFromCsr errore
<a name="create-cert-csr-error"></a>

Per ricevere risposte di errore, iscriviti a `$aws/certificates/create-from-csr/payload-format/rejected`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

#### CreateCertificateFromCsr payload di errore
<a name="create-cert-csr-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
Il codice di stato.

`errorCode`  
Il codice di errore.

`errorMessage`  
Messaggio di errore.

## CreateKeysAndCertificate
<a name="create-keys-cert"></a>

Crea nuove chiavi e un certificato. AWS IoT fornisce certificati client firmati dall'autorità di certificazione Amazon Root (CA). Il nuovo certificato ha uno stato `PENDING_ACTIVATION`. Quando si chiama `RegisterThing` per eseguire il provisioning di un oggetto con questo certificato, lo stato del certificato cambia in `ACTIVE` o `INACTIVE` come descritto nel modello.

**Nota**  
Per sicurezza, il valore `certificateOwnershipToken` restituito da `CreateKeysAndCertificate` scade dopo un'ora. `RegisterThing` deve essere chiamato prima della scadenza di `certificateOwnershipToken`. Se il certificato creato da `CreateKeysAndCertificate` non è stato attivato e allegato a una politica o a un oggetto entro la scadenza del token, il certificato viene eliminato. Se il token scade, il dispositivo può chiamare `CreateKeysAndCertificate` per generare un nuovo certificato.

### CreateKeysAndCertificate richiesta
<a name="create-keys-cert-request"></a>

Pubblicare un messaggio su `$aws/certificates/create/payload-format` con un payload di messaggio vuoto.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

### CreateKeysAndCertificate risposta
<a name="create-keys-cert-response"></a>

Sottoscrizione ad `$aws/certificates/create/payload-format/accepted`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

#### CreateKeysAndCertificate risposta
<a name="create-keys-cert-response-payload"></a>

```
{
    "certificateId": "string",
    "certificatePem": "string",
    "privateKey": "string",
    "certificateOwnershipToken": "string"
}
```

`certificateId`  
ID certificato.

`certificatePem`  
Dati del certificato, in formato PEM.

`privateKey`  
Chiave privata.

`certificateOwnershipToken`  
Il token per dimostrare la proprietà del certificato durante il provisioning.

### CreateKeysAndCertificate errore
<a name="create-keys-cert-error"></a>

Per ricevere risposte di errore, iscriviti a `$aws/certificates/create/payload-format/rejected`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

#### CreateKeysAndCertificate payload di errore
<a name="create-keys-cert-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
Il codice di stato.

`errorCode`  
Il codice di errore.

`errorMessage`  
Messaggio di errore.

## RegisterThing
<a name="register-thing"></a>

Esegue il provisioning di un oggetto utilizzando un modello predefinito.

### RegisterThing richiesta
<a name="register-thing-request"></a>

Pubblicare un messaggio su `$aws/provisioning-templates/templateName/provision/payload-format`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

`templateName`  
Il nome del modello di provisioning.

#### RegisterThing richiedere un payload
<a name="register-thing-request-payload"></a>

```
{
    "certificateOwnershipToken": "string",
    "parameters": {
        "string": "string",
        ...
    }
}
```

`certificateOwnershipToken`  
Il token per dimostrare la proprietà del certificato. AWS IoT genera il token quando si crea un certificato su MQTT.

`parameters`  
Opzionale. Coppie chiave-valore dal dispositivo utilizzato dagli [hook di pre-provisioning](pre-provisioning-hook.md) per valutare la richiesta di registrazione.

### RegisterThing risposta
<a name="register-thing-response"></a>

Sottoscrizione ad `$aws/provisioning-templates/templateName/provision/payload-format/accepted`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

`templateName`  
Il nome del modello di provisioning.

#### RegisterThing carico utile di risposta
<a name="register-thing-response-payload"></a>

```
{
    "deviceConfiguration": {
        "string": "string",
        ...
    },
    "thingName": "string"
}
```

`deviceConfiguration`  
La configurazione del dispositivo definita nel modello.

`thingName`  
Il nome dell'oggetto IoT creato durante il provisioning.

### RegisterThing risposta all'errore
<a name="register-thing-error"></a>

Per ricevere risposte di errore, iscriviti a `$aws/provisioning-templates/templateName/provision/payload-format/rejected`.

`payload-format`  
Formato di payload del messaggio come `cbor` o `json`.

`templateName`  
Il nome del modello di provisioning.

#### RegisterThing payload di risposta agli errori
<a name="register-thing-error-payload"></a>

```
{
    "statusCode": int,
    "errorCode": "string",
    "errorMessage": "string"
}
```

`statusCode`  
Il codice di stato.

`errorCode`  
Il codice di errore.

`errorMessage`  
Messaggio di errore.