Ler snapshots do Amazon EBS com APIs diretas do EBS - Amazon EBS

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

Ler snapshots do Amazon EBS com APIs diretas do EBS

As etapas a seguir descrevem como usar as APIs diretas do EBS para ler snapshots:

  1. Use a ação ListSnapshotBlocks para visualizar todos os índices e tokens de bloco dos blocos em um snapshot. Ou use a ação ListChangedBlocks para visualizar apenas os índices e os tokens de bloco dos blocos que são diferentes entre dois snapshots do mesmo volume e linhagem de snapshots. Essas ações ajudam você a identificar os tokens e os índices de bloco dos blocos para os quais é possível querer obter dados.

  2. Use a ação GetSnapshotBlock e especifique o índice e o token do bloco do qual você deseja obter dados.

nota

Você não pode usar as APIs diretas do EBS com snapshots arquivados.

Os exemplos a seguir mostram como ler snapshots usando as APIs diretas do EBS.

Listar blocos em um snapshot

AWS CLI

O comando de exemplo list-snapshot-blocks a seguir retorna os índices e os tokens de bloco dos blocos que estão no snapshot snap-0987654321. O parâmetro --starting-block-index limita os resultados para índices de bloco maiores que 1000, e o parâmetro --max-results limita os resultados aos primeiros 100 blocos.

aws ebs list-snapshot-blocks --snapshot-id snap-0987654321 --starting-block-index 1000 --max-results 100

A resposta de exemplo a seguir para o comando anterior lista os índices e os tokens de bloco no snapshot. Use o comando get-snapshot-block e especifique o índice e o token do bloco do qual você deseja obter dados. Os tokens de bloco são válidos até o tempo de expiração listado.

{ "Blocks": [ { "BlockIndex": 1001, "BlockToken": "AAABAV3/PNhXOynVdMYHUpPsetaSvjLB1dtIGfbJv5OJ0sX855EzGTWos4a4" }, { "BlockIndex": 1002, "BlockToken": "AAABATGQIgwr0WwIuqIMjCA/Sy7e/YoQFZsHejzGNvjKauzNgzeI13YHBfQB" }, { "BlockIndex": 1007, "BlockToken": "AAABAZ9CTuQtUvp/dXqRWw4d07eOgTZ3jvn6hiW30W9duM8MiMw6yQayzF2c" }, { "BlockIndex": 1012, "BlockToken": "AAABAQdzxhw0rVV6PNmsfo/YRIxo9JPR85XxPf1BLjg0Hec6pygYr6laE1p0" }, { "BlockIndex": 1030, "BlockToken": "AAABAaYvPax6mv+iGWLdTUjQtFWouQ7Dqz6nSD9L+CbXnvpkswA6iDID523d" }, { "BlockIndex": 1031, "BlockToken": "AAABATgWZC0XcFwUKvTJbUXMiSPg59KVxJGL+BWBClkw6spzCxJVqDVaTskJ" }, ... ], "ExpiryTime": 1576287332.806, "VolumeSize": 32212254720, "BlockSize": 524288 }
AWS API

A solicitação de exemplo ListChangedBlocks a seguir retorna os índices de bloco e os tokens de bloco dos blocos que estão no snapshot snap-0acEXAMPLEcf41648. O parâmetro startingBlockIndex limita os resultados para índices de bloco maiores que 1000, e o parâmetro maxResults limita os resultados aos primeiros 100 blocos.

GET /snapshots/snap-0acEXAMPLEcf41648/blocks?maxResults=100&startingBlockIndex=1000 HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T231953Z Authorization: <Authentication parameter>

A resposta de exemplo a seguir para a solicitação anterior lista os índices e os tokens de bloco no snapshot. Use a ação GetSnapshotBlock e especifique o índice e o token do bloco do qual você deseja obter dados. Os tokens de bloco são válidos até o tempo de expiração listado.

HTTP/1.1 200 OK x-amzn-RequestId: d6e5017c-70a8-4539-8830-57f5557f3f27 Content-Type: application/json Content-Length: 2472 Date: Wed, 17 Jun 2020 23:19:56 GMT Connection: keep-alive { "BlockSize": 524288, "Blocks": [ { "BlockIndex": 0, "BlockToken": "AAUBAcuWqOCnDNuKle11s7IIX6jp6FYcC/q8oT93913HhvLvA+3JRrSybp/0" }, { "BlockIndex": 1536, "BlockToken": "AAUBAWudwfmofcrQhGVlLwuRKm2b8ZXPiyrgoykTRC6IU1NbxKWDY1pPjvnV" }, { "BlockIndex": 3072, "BlockToken": "AAUBAV7p6pC5fKAC7TokoNCtAnZhqq27u6YEXZ3MwRevBkDjmMx6iuA6tsBt" }, { "BlockIndex": 3073, "BlockToken": "AAUBAbqt9zpqBUEvtO2HINAfFaWToOwlPjbIsQOlx6JUN/0+iMQl0NtNbnX4" }, ... ], "ExpiryTime": 1.59298379649E9, "VolumeSize": 3 }

Listar blocos diferentes entre dois snapshots

Lembre-se do seguinte ao fazer solicitações paginadas para listar os blocos alterados entre dois snapshots:

  • A resposta pode incluir uma ou mais matrizes ChangedBlocks vazias. Por exemplo:

    • Snapshot 1: snapshot completo com 1000 blocos com índices de blocos 0 - 999.

    • Snapshot 2: snapshot incremental com apenas um bloco alterado com índice de bloco 999.

    Listar os blocos alterados para esses snapshot com StartingBlockIndex = 0 e MaxResults = 100 retorna uma matriz vazia de ChangedBlocks. É necessário solicitar os resultados restantes usando nextToken até que o bloco alterado seja retornado no décimo conjunto de resultados, que inclui blocos com índices de blocos 900 - 999.

  • A resposta pode ignorar blocos não escritos nos snapshots. Por exemplo:

    • Snapshot 1: snapshot completo com 1000 blocos com índices de blocos 2000 - 2999.

    • Snapshot 2: snapshot incremental com apenas um bloco alterado com índice de bloco 2000.

    Listando os blocos alterados para esses snapshots com StartingBlockIndex = 0 eMaxResults = 100, a resposta ignora os índices de blocos 0 - 1999 e inclui o índice de blocos2000. A resposta não incluirá matrizes ChangedBlocks vazias.

AWS CLI

O comando de exemplo list-changed-blocks a seguir retorna os índices e os tokens de bloco dos blocos que são diferentes entre os snapshots snap-1234567890 e snap-0987654321. O parâmetro --starting-block-index limita os resultados para índices de bloco maiores que 0, e o parâmetro --max-results limita os resultados aos primeiros 500 blocos.

aws ebs list-changed-blocks --first-snapshot-id snap-1234567890 --second-snapshot-id snap-0987654321 --starting-block-index 0 --max-results 500

A resposta de exemplo a seguir para o comando anterior mostra que os índices de bloco 0, 6000, 6001, 6002 e 6003 são diferentes entre os dois snapshots. Além disso, os índices de bloco 6001, 6002 e 6003 existem somente no primeiro ID de snapshot especificado, e não no segundo ID de snapshot, porque não há um segundo token de bloco listado na resposta.

Use o comando get-snapshot-block e especifique o índice e o token do bloco do qual você deseja obter dados. Os tokens de bloco são válidos até o tempo de expiração listado.

{ "ChangedBlocks": [ { "BlockIndex": 0, "FirstBlockToken": "AAABAVahm9SO60Dyi0ORySzn2ZjGjW/KN3uygGlS0QOYWesbzBbDnX2dGpmC", "SecondBlockToken": "AAABAf8o0o6UFi1rDbSZGIRaCEdDyBu9TlvtCQxxoKV8qrUPQP7vcM6iWGSr" }, { "BlockIndex": 6000, "FirstBlockToken": "AAABAbYSiZvJ0/R9tz8suI8dSzecLjN4kkazK8inFXVintPkdaVFLfCMQsKe", "SecondBlockToken": "AAABAZnqTdzFmKRpsaMAsDxviVqEI/3jJzI2crq2eFDCgHmyNf777elD9oVR" }, { "BlockIndex": 6001, "FirstBlockToken": "AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR" }, { "BlockIndex": 6002, "FirstBlockToken": "AAABASqX4/NWjvNceoyMUljcRd0DnwbSwNnes1UkoP62CrQXvn47BY5435aw" }, { "BlockIndex": 6003, "FirstBlockToken": "AAABASmJ0O5JxAOce25rF4P1sdRtyIDsX12tFEDunnePYUKOf4PBROuICb2A" }, ... ], "ExpiryTime": 1576308931.973, "VolumeSize": 32212254720, "BlockSize": 524288, "NextToken": "AAADARqElNng/sV98CYk/bJDCXeLJmLJHnNSkHvLzVaO0zsPH/QM3Bi3zF//O6Mdi/BbJarBnp8h" }
AWS API

A solicitação de exemplo ListChangedBlocks a seguir retorna os índices e os tokens de bloco dos blocos que são diferentes entre os snapshots snap-0acEXAMPLEcf41648 e snap-0c9EXAMPLE1b30e2f. O parâmetro startingBlockIndex limita os resultados para índices de bloco maiores que 0, e o parâmetro maxResults limita os resultados aos primeiros 500 blocos.

GET /snapshots/snap-0c9EXAMPLE1b30e2f/changedblocks?firstSnapshotId=snap-0acEXAMPLEcf41648&maxResults=500&startingBlockIndex=0 HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T232546Z Authorization: <Authentication parameter>

A resposta de exemplo a seguir para a solicitação anterior mostra que os índices de bloco 0, 3072, 6002 e 6003 são diferentes entre os dois snapshots. Além disso, os índices de bloco 6002 e 6003 existem somente no primeiro ID de snapshot especificado, e não no segundo ID de snapshot, porque não há um segundo token de bloco listado na resposta.

Use a ação GetSnapshotBlock e especifique o índice e o token do bloco do qual você deseja obter dados. Os tokens de bloco são válidos até o tempo de expiração listado.

HTTP/1.1 200 OK x-amzn-RequestId: fb0f6743-6d81-4be8-afbe-db11a5bb8a1f Content-Type: application/json Content-Length: 1456 Date: Wed, 17 Jun 2020 23:25:47 GMT Connection: keep-alive { "BlockSize": 524288, "ChangedBlocks": [ { "BlockIndex": 0, "FirstBlockToken": "AAUBAVaWqOCnDNuKle11s7IIX6jp6FYcC/tJuVT1GgP23AuLntwiMdJ+OJkL", "SecondBlockToken": "AAUBASxzy0Y0b33JVRLoYm3NOresCxn5RO+HVFzXW3Y/RwfFaPX2Edx8QHCh" }, { "BlockIndex": 3072, "FirstBlockToken": "AAUBAcHp6pC5fKAC7TokoNCtAnZhqq27u6fxRfZOLEmeXLmHBf2R/Yb24MaS", "SecondBlockToken": "AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid" }, { "BlockIndex": 6002, "FirstBlockToken": "AAABASqX4/NWjvNceoyMUljcRd0DnwbSwNnes1UkoP62CrQXvn47BY5435aw" }, { "BlockIndex": 6003, "FirstBlockToken": "AAABASmJ0O5JxAOce25rF4P1sdRtyIDsX12tFEDunnePYUKOf4PBROuICb2A" }, ... ], "ExpiryTime": 1.592976647009E9, "VolumeSize": 3 }

Obter dados de bloco de um snapshot

AWS CLI

O comando de exemplo get-snapshot-block a seguir retorna os dados no índice de bloco 6001 com o token de bloco AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR, no snapshot snap-1234567890. Os dados binários serão enviados para o arquivo data no diretório C:\Temp em um computador Windows. Se você executar o comando em um computador Linux ou Unix, substitua o caminho de saída por /tmp/data para enviar os dados ao arquivo data no diretório /tmp.

aws ebs get-snapshot-block --snapshot-id snap-1234567890 --block-index 6001 --block-token AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR C:/Temp/data

A resposta de exemplo a seguir para o comando anterior mostra o tamanho dos dados retornados, a soma de verificação para validar os dados e o algoritmo da soma de verificação. Os dados binários são salvos automaticamente no diretório e no arquivo especificados no comando da solicitação.

{ "DataLength": "524288", "Checksum": "cf0Y6/Fn0oFa4VyjQPOa/iD0zhTflPTKzxGv2OKowXc=", "ChecksumAlgorithm": "SHA256" }
AWS API

O exemplo GetSnapshotBlock a seguir retorna os dados no índice de bloco 3072 com o token de bloco AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid, no snapshot snap-0c9EXAMPLE1b30e2f.

GET /snapshots/snap-0c9EXAMPLE1b30e2f/blocks/3072?blockToken=AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid HTTP/1.1 Host: ebs.us-east-2.amazonaws.com Accept-Encoding: identity User-Agent: <User agent parameter> X-Amz-Date: 20200617T232838Z Authorization: <Authentication parameter>

A resposta de exemplo a seguir para a solicitação anterior mostra o tamanho dos dados retornados, a soma de verificação para validar os dados e o algoritmo usado para gerar a soma de verificação. Os dados binários são transmitidos no corpo da resposta e representados como BlockData no exemplo a seguir.

HTTP/1.1 200 OK x-amzn-RequestId: 2d0db2fb-bd88-474d-a137-81c4e57d7b9f x-amz-Data-Length: 524288 x-amz-Checksum: Vc0yY2j3qg8bUL9I6GQuI2orTudrQRBDMIhcy7bdEsw= x-amz-Checksum-Algorithm: SHA256 Content-Type: application/octet-stream Content-Length: 524288 Date: Wed, 17 Jun 2020 23:28:38 GMT Connection: keep-alive BlockData