

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Baca snapshot Amazon EBS dengan EBS langsung APIs
<a name="readsnapshots"></a>

Langkah-langkah berikut menjelaskan cara menggunakan EBS langsung APIs untuk membaca snapshot:

1. Gunakan ListSnapshotBlocks tindakan untuk melihat semua indeks blok dan memblokir token blok dalam snapshot. Atau gunakan ListChangedBlocks tindakan untuk hanya melihat indeks blok dan token blok blok yang berbeda antara dua snapshot dengan volume yang sama dan garis keturunan snapshot. Tindakan ini membantu Anda mengidentifikasi token blok dan indeks blok dari blok yang mungkin ingin Anda dapatkan datanya.

1. Gunakan GetSnapshotBlock tindakan, dan tentukan indeks blok dan token blok blok yang ingin Anda dapatkan datanya.

**catatan**  
Anda tidak dapat menggunakan EBS langsung APIs dengan snapshot yang diarsipkan.

Contoh berikut menunjukkan cara membaca snapshot menggunakan langsung EBS. APIs

**Topics**
+ [Mencantumkan blok dalam snapshot](#list-blocks)
+ [Blok daftar yang berbeda antara dua snapshot](#list-different-blocks)
+ [Dapatkan data blok dari snapshot](#get-block-data)

## Mencantumkan blok dalam snapshot
<a name="list-blocks"></a>

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

[list-snapshot-blocks](https://docs.aws.amazon.com/cli/latest/reference/ebs/list-snapshot-blocks.html)Contoh perintah berikut mengembalikan indeks blok dan token blok blok yang ada di snapshot`snap-0987654321`. Parameter `--starting-block-index` membatasi hasil untuk memblokir indeks yang lebih besar dari `1000`, dan parameter `--max-results` membatasi hasil untuk `100` blok pertama.

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

Contoh respons berikut untuk perintah sebelumnya mencantumkan indeks blok dan blok token dalam snapshot. Gunakan `get-snapshot-block` memerintahkan dan menentukan indeks blok dan token blok dari blok yang ingin Anda dapatkan datanya. Token blok berlaku hingga waktu kedaluwarsa yang tercantum.

```
{
      "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 ]

[ListSnapshotBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListSnapshotBlocks.html)Contoh permintaan berikut mengembalikan indeks blok dan token blok blok yang ada di snapshot`snap-0acEXAMPLEcf41648`. Parameter `startingBlockIndex` membatasi hasil untuk memblokir indeks yang lebih besar dari `1000`, dan parameter `maxResults` membatasi hasil untuk `100` blok pertama.

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

Contoh respons berikut untuk permintaan sebelumnya mencantumkan indeks blok dan blok token dalam snapshot. Gunakan GetSnapshotBlock tindakan dan tentukan indeks blok dan token blok blok yang ingin Anda dapatkan datanya. Token blok berlaku hingga waktu kedaluwarsa yang tercantum. 

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

------

## Blok daftar yang berbeda antara dua snapshot
<a name="list-different-blocks"></a>

Ingatlah hal berikut saat membuat **permintaan paginasi** untuk mencantumkan daftar blok yang diubah di antara dua snapshot:
+ Respons dapat mencakup satu atau beberapa array `ChangedBlocks` yang kosong. Misalnya:
  + Snapshot 1 — snapshot penuh dengan 1000 blok dengan `0` - `999` indeks blok.
  + Snapshot 2 — snapshot inkremental dengan hanya satu blok yang diubah dengan `999` indeks blok.

  Daftar blok yang diubah untuk snapshot ini dengan `StartingBlockIndex = 0` dan `MaxResults = 100` mengembalikan array `ChangedBlocks` yang kosong. Anda harus meminta hasil yang tersisa menggunakan `nextToken` sampai blok yang diubah dikembalikan dalam set hasil kesepuluh, yang mencakup blok dengan indeks blok `900` - `999`.
+ Respons dapat melewati blok yang tidak tertulis dalam snapshot. Misalnya:
  + Snapshot 1 — snapshot penuh dengan 1000 blok dengan `2000` - `2999` indeks blok.
  + Snapshot 2 — snapshot inkremental dengan hanya satu blok yang diubah dengan `2000` indeks blok.

  Dengan mendaftar blok yang diubah untuk snapshot ini dengan `StartingBlockIndex = 0` dan `MaxResults = 100`, responsnya akan melewati `0` - `1999` indeks blok dan menyertakan `2000` indeks blok. Respons tidak akan menyertakan array `ChangedBlocks` yang kosong.

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

[list-changed-blocks](https://docs.aws.amazon.com/cli/latest/reference/ebs/list-changed-blocks.html)Contoh perintah berikut mengembalikan indeks blok dan blok token blok yang berbeda antara snapshot `snap-1234567890` dan. `snap-0987654321` Parameter `--starting-block-index` membatasi hasil untuk indeks bloks yang lebih besar dari `0`, dan parameter `--max-results` membatasi hasil untuk `500` blok pertama.

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

Contoh respons berikut untuk perintah sebelumnya menunjukkan bahwa indeks blok 0, 6000, 6001, 6002, dan 6003 berbeda di antara dua snapshot. Selain itu, indeks blok 6001, 6002, dan 6003 hanya ada dalam ID snapshot pertama yang ditentukan, dan tidak dalam ID snapshot kedua karena tidak ada token blok kedua yang tercantum dalam respons.

Gunakan perintah `get-snapshot-block` dan tentukan indeks blok dan token blok dari blok yang ingin Anda dapatkan datanya. Token blok berlaku hingga waktu kedaluwarsa yang tercantum.

```
{
      "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 ]

[ListChangedBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListChangedBlocks.html)Contoh permintaan berikut mengembalikan indeks blok dan token blok blok yang berbeda antara snapshot `snap-0acEXAMPLEcf41648` dan. `snap-0c9EXAMPLE1b30e2f` Parameter `startingBlockIndex` membatasi hasil untuk memblokir indeks yang lebih besar dari `0`, dan parameter `maxResults` membatasi hasil untuk `500` blok pertama.

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

Contoh respons berikut untuk perintah sebelumnya menunjukkan bahwa indeks blok `0`, `3072`, `6002`, dan `6003` berbeda di antara dua snapshot. Selain itu, indeks blok `6002` dan `6003` hanya ada dalam ID snapshot pertama yang ditentukan, dan tidak dalam ID snapshot kedua karena tidak ada token blok kedua yang tercantum dalam respons.

Gunakan tindakan `GetSnapshotBlock`, dan tentukan indeks blok serta token blok dari blok yang ingin Anda dapatkan datanya. Token blok berlaku hingga waktu kedaluwarsa yang tercantum. 

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

------

## Dapatkan data blok dari snapshot
<a name="get-block-data"></a>

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

[get-snapshot-block](https://docs.aws.amazon.com/cli/latest/reference/ebs/get-snapshot-block.html)Contoh perintah berikut mengembalikan data dalam indeks blok `6001` dengan blok token`AAABASBpSJ2UAD3PLxJnCt6zun4/T4sU25Bnb8jB5Q6FRXHFqAIAqE04hJoR`, dalam snapshot`snap-1234567890`. Data biner adalah output file `data` dalam direktori `C:\Temp` pada komputer Windows. Jika Anda menjalankan perintah di komputer Linux atau Unix, ganti jalur output dengan `/tmp/data` untuk mengeluarkan data ke file `data` dalam direktori `/tmp`.

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

Contoh respons berikut untuk perintah sebelumnya menunjukkan ukuran data yang dikembalikan, checksum untuk memvalidasi data, dan algoritma checksum. Data biner secara otomatis disimpan ke direktori dan file yang Anda tentukan dalam perintah permintaan.

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

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

Contoh [GetSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_GetSnapshotBlock.html) berikut meminta mengembalikan data dalam indeks blok `3072` dengan token blok `AAUBARGCaufCqBRZC8tEkPYGGkSv3vqvOjJ2xKDi3ljDFiytUxBLXYgTmkid`, dalam 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>
```

Contoh respons berikut untuk perintah sebelumnya menunjukkan ukuran data yang dikembalikan, checksum untuk memvalidasi data, dan algoritma checksum. Data biner ditransmisikan dalam tubuh respons dan direpresentasikan seperti *BlockData* pada contoh berikut.

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

------