

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

# Escreva snapshots do Amazon EBS com o EBS direct APIs
<a name="writesnapshots"></a>

As etapas a seguir descrevem como usar o EBS direct APIs para gravar instantâneos incrementais:

1. Use a StartSnapshot ação e especifique uma ID de instantâneo principal para iniciar um instantâneo como um instantâneo incremental de um existente ou omita a ID de instantâneo pai para iniciar um novo instantâneo. Essa ação retorna o novo ID de snapshot que está em estado pendente.

1. Use a PutSnapshotBlock ação e especifique a ID do instantâneo pendente para adicionar dados a ele na forma de blocos individuais. Você deve especificar uma SHA256 soma de verificação codificada em Base64 para o bloco de dados transmitidos. O serviço calcula a soma de verificação dos dados recebidos e os valida com relação à soma de verificação especificada. A ação falhará se as somas de verificação não corresponderem.

1. Quando terminar de adicionar dados ao instantâneo pendente, use a CompleteSnapshot ação para iniciar um fluxo de trabalho assíncrono que sela o instantâneo e o move para um estado concluído.

Repita essas etapas para criar um novo snapshot incremental usando o snapshot criado anteriormente como pai.

Por exemplo, no diagrama a seguir, o snapshot A é o primeiro novo snapshot iniciado. O snapshot A é usado como snapshot pai para iniciar o snapshot B. O snapshot B é usado como snapshot pai para iniciar e criar o snapshot C. Os snapshots A, B e C são snapshots incrementais. O snapshot A é usado para criar o volume 1 do EBS. O snapshot D é criado a partir do volume 1 do EBS. O snapshot D é um snapshot incremental de A; ele não é um snapshot incremental de B nem C.

![EBS direct APIs usado para criar instantâneos incrementais.](http://docs.aws.amazon.com/pt_br/ebs/latest/userguide/images/ebs-apis-write.png)


Os exemplos a seguir mostram como gravar instantâneos usando o EBS direct. APIs

**Topics**
+ [Iniciar um snapshot](#start-snapshot)
+ [Inserir dados em um snapshot](#put-data)
+ [Concluir um snapshot](#complete-snapshot)

## Iniciar um snapshot
<a name="start-snapshot"></a>

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

O comando de exemplo [start-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/start-snapshot.html) a seguir inicia um snapshot `8` GiB usando o snapshot `snap-123EXAMPLE1234567` como snapshot pai. O novo snapshot será um snapshot incremental do snapshot pai. O snapshot será movido para um estado de erro se não houver solicitações put ou complete feitas para o snapshot dentro do período limite especificado de `60` minutos. O token `550e8400-e29b-41d4-a716-446655440000` do cliente garante idempotência para a solicitação. Se o token do cliente for omitido, o AWS SDK gerará automaticamente um para você. Para obter mais informações sobre idempotência, consulte [Garanta a idempotência nas solicitações de API StartSnapshot](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}}
```

O exemplo de resposta a seguir para o comando anterior mostra o ID do snapshot, o ID da conta da AWS , o status, o tamanho do volume em GiB e o tamanho dos blocos no snapshot. O snapshot é iniciado em estado `pending`. Especifique o ID do snapshot nos comandos `put-snapshot-block` subsequentes para gravar dados no snapshot, depois, use o comando `complete-snapshot` para concluir o snapshot e alterar seu status para `completed`.

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

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

O [StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html)exemplo a seguir inicia um instantâneo de `8` GiB, usando o instantâneo `snap-123EXAMPLE1234567` como o instantâneo pai. O novo snapshot será um snapshot incremental do snapshot pai. O snapshot será movido para um estado de erro se não houver solicitações put ou complete feitas para o snapshot dentro do período limite especificado de `60` minutos. O token `550e8400-e29b-41d4-a716-446655440000` do cliente garante idempotência para a solicitação. Se o token do cliente for omitido, o AWS SDK gerará automaticamente um para você. Para obter mais informações sobre idempotência, consulte [Garanta a idempotência nas solicitações de API StartSnapshot](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}}
}
```

O exemplo de resposta a seguir para a solicitação anterior mostra o ID do snapshot, o ID da conta da AWS , o status, o tamanho do volume em GiB e o tamanho dos blocos no snapshot. O snapshot é iniciado em estado pendente. Especifique o ID do snapshot em uma solicitação `PutSnapshotBlocks` subsequente para gravar dados no 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
}
```

------

## Inserir dados em um snapshot
<a name="put-data"></a>

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

O comando de [put-snapshot-block](https://docs.aws.amazon.com/cli/latest/reference/ebs/put-snapshot-block.html)exemplo a seguir grava `524288` bytes de dados `1000` no índice de blocos no snapshot`snap-0aaEXAMPLEe306d62`. A soma de verificação `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` codificada pelo Base64 foi gerada com o uso do algoritmo `SHA256`. Os dados transmitidos ficam no arquivo `/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}}
```

A resposta de exemplo a seguir para o comando anterior confirma o comprimento dos dados, a soma de verificação e o algoritmo de soma de verificação para os dados recebidos pelo serviço.

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

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

O [PutSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html)exemplo a seguir grava `524288` bytes de dados `1000` no índice de blocos no snapshot`snap-052EXAMPLEc85d8dd`. A soma de verificação `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` codificada pelo Base64 foi gerada com o uso do algoritmo `SHA256`. Os dados são transmitidos no corpo da solicitação e são representados como {{BlockData}} no exemplo a seguir.

```
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}}
```

Veja a seguir a resposta de exemplo para a solicitação anterior, que confirma o comprimento dos dados, a soma de verificação e o algoritmo de soma de verificação para os dados recebidos pelo serviço. 

```
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

{}
```

------

## Concluir um snapshot
<a name="complete-snapshot"></a>

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

O comando de exemplo [complete-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/complete-snapshot.html) a seguir conclui o snapshot `snap-0aaEXAMPLEe306d62`. O comando especifica que `5` blocos foram gravados no snapshot. A soma de verificação `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` representa a soma de verificação para o conjunto completo de dados gravados em um snapshot. Para obter mais informações sobre somas de verificação, consulte [Use APIs somas de verificação diretas do EBS para validar dados de snapshots](ebsapis-using-checksums.md) anteriormente neste guia.

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

Veja a seguir um exemplo de resposta para o comando anterior.

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

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

O [CompleteSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_CompleteSnapshot.html)exemplo de solicitação a seguir conclui o snapshot`snap-052EXAMPLEc85d8dd`. O comando especifica que `5` blocos foram gravados no snapshot. A soma de verificação `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` representa a soma de verificação para o conjunto completo de dados gravados em um 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>}}
```

Veja a seguir um exemplo de resposta para a solicitação anterior.

```
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"}
```

------