

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

# Scrivi istantanee Amazon EBS con EBS direct APIs
<a name="writesnapshots"></a>

I passaggi seguenti descrivono come utilizzare EBS Direct per APIs scrivere snapshot incrementali:

1. Utilizzate l' StartSnapshot azione e specificate un ID snapshot principale per avviare un'istantanea come istantanea incrementale di una esistente, oppure omettete l'ID dello snapshot principale per iniziare una nuova istantanea. Questa operazione restituisce il nuovo ID snapshot, che è in sospeso.

1. Utilizzate l' PutSnapshotBlock azione e specificate l'ID dell'istantanea in sospeso per aggiungervi dati sotto forma di singoli blocchi. È necessario specificare un checksum con codifica Base64 per il SHA256 blocco di dati trasmesso. Il servizio calcola il checksum dei dati ricevuti e lo convalida con il checksum specificato. L'operazione ha esito negativo se i checksum non corrispondono.

1. Quando hai finito di aggiungere dati allo snapshot in sospeso, usa l' CompleteSnapshotazione per avviare un flusso di lavoro asincrono che sigilla l'istantanea e la sposta in uno stato completo.

Ripeti queste fasi per creare un nuovo snapshot incrementale utilizzando lo snapshot creato in precedenza come padre.

Nel diagramma seguente, ad esempio, lo snapshot A è il primo nuovo snapshot avviato. Lo snapshot A viene utilizzato come snapshot padre per avviare lo snapshot B. Lo snapshot B viene utilizzato come snapshot padre per avviare e creare lo snapshot C. Gli snapshot A, B e C sono snapshot incrementali. Lo snapshot A viene utilizzato per creare il volume EBS 1. Lo snapshot D viene creato dal volume EBS 1. Lo snapshot D è uno snapshot incrementale di A; non è uno snapshot incrementale di B o C.

![\[EBS direct utilizzato per creare istantanee incrementali. APIs\]](http://docs.aws.amazon.com/it_it/ebs/latest/userguide/images/ebs-apis-write.png)


I seguenti esempi mostrano come scrivere istantanee utilizzando EBS Direct. APIs

**Topics**
+ [Avvio di uno snapshot](#start-snapshot)
+ [Inserimento dei dati in uno snapshot](#put-data)
+ [Completamento di uno snapshot](#complete-snapshot)

## Avvio di uno snapshot
<a name="start-snapshot"></a>

------
#### [ AWS CLI ]

Il seguente comando di esempio [start-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/start-snapshot.html) avvia uno snapshot `8` GiB utilizzando lo snapshot `snap-123EXAMPLE1234567` come snapshot padre. Il nuovo snapshot sarà uno snapshot incrementale dello snapshot padre. Lo snapshot viene impostato in stato di errore se non vengono effettuate richieste di inserimento o completamento per lo snapshot entro il periodo di timeout di `60` minuti specificato. Il token client `550e8400-e29b-41d4-a716-446655440000` garantisce l'idempotenza della richiesta. Se il token client viene omesso, l' AWS SDK ne genera automaticamente uno per te. Per ulteriori informazioni sull'idempotenza, consulta [StartSnapshot Garantisci l'idempotenza nelle richieste API](ebs-direct-api-idempotency.md).

```
aws ebs start-snapshot --volume-size 8 --parent-snapshot snap-123EXAMPLE1234567 --timeout 60 --client-token 550e8400-e29b-41d4-a716-446655440000
```

La seguente risposta di esempio per il comando precedente mostra l'ID snapshot, l'ID account AWS , lo stato, la dimensione del volume in GiB e la dimensione dei blocchi dello snapshot. Lo snapshot al momento dell'avvio è nello stato `pending`. Specifica l'ID snapshot nei comandi `put-snapshot-block` successivi per scrivere i dati nello snapshot, quindi utilizza il comando `complete-snapshot` per completare lo snapshot e modificare lo stato come `completed`.

```
{
    "SnapshotId": "snap-0aaEXAMPLEe306d62",
    "OwnerId": "111122223333",
    "Status": "pending",
    "VolumeSize": 8,
    "BlockSize": 524288
}
```

------
#### [ AWS API ]

La seguente richiesta di [StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html)esempio avvia un'istantanea `8` GiB, utilizzando snapshot `snap-123EXAMPLE1234567` come snapshot principale. Il nuovo snapshot sarà uno snapshot incrementale dello snapshot padre. Lo snapshot viene impostato in stato di errore se non vengono effettuate richieste di inserimento o completamento per lo snapshot entro il periodo di timeout di `60` minuti specificato. Il token client `550e8400-e29b-41d4-a716-446655440000` garantisce l'idempotenza della richiesta. Se il token client viene omesso, l' AWS SDK ne genera automaticamente uno per te. Per ulteriori informazioni sull'idempotenza, consulta [StartSnapshot Garantisci l'idempotenza nelle richieste API](ebs-direct-api-idempotency.md).

```
POST /snapshots HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T040724Z
Authorization: <Authentication parameter>

{
    "VolumeSize": 8,
    "ParentSnapshot": snap-123EXAMPLE1234567,
    "ClientToken": "550e8400-e29b-41d4-a716-446655440000",
    "Timeout": 60
}
```

La seguente risposta di esempio per la richiesta precedente mostra l'ID snapshot, l'ID account AWS , lo stato, la dimensione del volume in GiB e la dimensione dei blocchi dello snapshot. Lo snapshot al momento dell'avvio è nello stato in sospeso. Specifica l'ID snapshot in una richiesta `PutSnapshotBlocks` successiva per scrivere i dati nello snapshot.

```
HTTP/1.1 201 Created
x-amzn-RequestId: 929e6eb9-7183-405a-9502-5b7da37c1b18
Content-Type: application/json
Content-Length: 181
Date: Thu, 18 Jun 2020 04:07:29 GMT
Connection: keep-alive

{
    "BlockSize": 524288,
    "Description": null,
    "OwnerId": "138695307491",
    "Progress": null,
    "SnapshotId": "snap-052EXAMPLEc85d8dd",
    "StartTime": null,
    "Status": "pending",
    "Tags": null,
    "VolumeSize": 8
}
```

------

## Inserimento dei dati in uno snapshot
<a name="put-data"></a>

------
#### [ AWS CLI ]

Il comando di [put-snapshot-block](https://docs.aws.amazon.com/cli/latest/reference/ebs/put-snapshot-block.html)esempio seguente scrive `524288` byte di dati per bloccare l'indice `1000` sull'istantanea. `snap-0aaEXAMPLEe306d62` Il checksum `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` con codifica Base64 è stato generato utilizzando l'algoritmo `SHA256`. I dati trasmessi si trovano nel file `/tmp/data`.

```
aws ebs put-snapshot-block --snapshot-id snap-0aaEXAMPLEe306d62 --block-index 1000 --data-length 524288 --block-data /tmp/data --checksum QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM= --checksum-algorithm SHA256
```

Il seguente esempio di risposta per il comando precedente conferma la lunghezza dei dati, il checksum e l'algoritmo di checksum per i dati ricevuti dal servizio.

```
{
    "DataLength": "524288",
    "Checksum": "QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=",
    "ChecksumAlgorithm": "SHA256"
}
```

------
#### [ AWS API ]

La seguente richiesta di [PutSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html)esempio scrive `524288` byte di dati per bloccare l'indice `1000` sull'istantanea. `snap-052EXAMPLEc85d8dd` Il checksum `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` con codifica Base64 è stato generato utilizzando l'algoritmo `SHA256`. I dati vengono trasmessi nel corpo della richiesta e sono rappresentati come *BlockData* nell'esempio seguente.

```
PUT /snapshots/snap-052EXAMPLEc85d8dd/blocks/1000 HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-Data-Length: 524288
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T042215Z
X-Amz-Content-SHA256: UNSIGNED-PAYLOAD
Authorization: <Authentication parameter>
          
          BlockData
```

La seguente risposta di esempio per la richiesta precedente conferma la lunghezza dei dati, il checksum e l'algoritmo di checksum per i dati ricevuti dal servizio. 

```
HTTP/1.1 201 Created
x-amzn-RequestId: 643ac797-7e0c-4ad0-8417-97b77b43c57b
x-amz-Checksum: QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=
x-amz-Checksum-Algorithm: SHA256
Content-Type: application/json
Content-Length: 2
Date: Thu, 18 Jun 2020 04:22:12 GMT
Connection: keep-alive

{}
```

------

## Completamento di uno snapshot
<a name="complete-snapshot"></a>

------
#### [ AWS CLI ]

Il seguente comando di esempio [complete-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/complete-snapshot.html) completa lo snapshot `snap-0aaEXAMPLEe306d62`. Il comando specifica che `5` blocchi sono stati scritti nello snapshot. Il checksum `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` rappresenta il checksum per il set completo di dati scritti in uno snapshot. Per ulteriori informazioni sui checksum, consulta [Usa i APIs checksum diretti di EBS per convalidare i dati degli snapshot](ebsapis-using-checksums.md) in precedenza in questa guida.

```
aws ebs complete-snapshot --snapshot-id snap-0aaEXAMPLEe306d62 --changed-blocks-count 5 --checksum 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c= --checksum-algorithm SHA256 --checksum-aggregation-method LINEAR
```

Di seguito è riportata una risposta di esempio per il comando precedente.

```
{
    "Status": "pending"
}
```

------
#### [ AWS API ]

La seguente richiesta di [CompleteSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_CompleteSnapshot.html)esempio completa l'istantanea`snap-052EXAMPLEc85d8dd`. Il comando specifica che `5` blocchi sono stati scritti nello snapshot. Il checksum `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` rappresenta il checksum per il set completo di dati scritti in uno snapshot.

```
POST /snapshots/completion/snap-052EXAMPLEc85d8dd HTTP/1.1
Host: ebs.us-east-2.amazonaws.com
Accept-Encoding: identity
x-amz-ChangedBlocksCount: 5
x-amz-Checksum: 6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=
x-amz-Checksum-Algorithm: SHA256
x-amz-Checksum-Aggregation-Method: LINEAR
User-Agent: <User agent parameter>
X-Amz-Date: 20200618T043158Z
Authorization: <Authentication parameter>
```

Di seguito è riportato un esempio di risposta per la richiesta precedente.

```
HTTP/1.1 202 Accepted
x-amzn-RequestId: 06cba5b5-b731-49de-af40-80333ac3a117
Content-Type: application/json
Content-Length: 20
Date: Thu, 18 Jun 2020 04:31:50 GMT
Connection: keep-alive

{"Status":"pending"}
```

------