

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

# Gunakan EBS langsung APIs untuk mengakses konten snapshot EBS
<a name="ebs-accessing-snapshot"></a>

Anda dapat menggunakan API langsung Amazon Elastic Block Store (Amazon EBS) untuk membuat snapshot EBS, menulis data secara langsung ke snapshot, membaca data di snapshot, dan mengidentifikasi perbedaan atau perubahan di antara dua snapshot. Jika Anda adalah vendor perangkat lunak independen (ISV) yang menawarkan layanan pencadangan untuk Amazon EBS, API langsung EBS membuat pelacakan perubahan inkremental pada volume EBS Anda melalui snapshot menjadi lebih efisien dan hemat biaya. Hal ini dapat dilakukan tanpa harus membuat volume baru dari snapshot, lalu gunakan instans Amazon Elastic Compute Cloud (Amazon EC2) untuk membandingkan perbedaannya.

Anda dapat membuat snapshot inkremental secara langsung dari data on-premise ke volume EBS dan cloud untuk digunakan dalam pemulihan bencana cepat. Dengan kemampuan untuk menulis dan membaca snapshot, Anda dapat menulis data on-premise ke snapshot EBS selama terjadi bencana. Kemudian setelah pemulihan, Anda dapat memulihkannya kembali ke AWS atau lokal dari snapshot. Anda tidak perlu lagi membangun dan memelihara mekanisme yang rumit untuk menyalin data ke dan dari Amazon EBS.

Panduan pengguna ini memberikan gambaran umum tentang elemen yang membentuk EBS langsung APIs, dan contoh cara menggunakannya secara efektif. Untuk informasi selengkapnya tentang tindakan, tipe data, parameter, dan kesalahan APIs, lihat [ APIs referensi langsung EBS](https://docs.aws.amazon.com/ebs/latest/APIReference/). Untuk informasi selengkapnya tentang AWS Wilayah, titik akhir, dan kuota layanan yang didukung untuk EBS direct, APIs lihat [titik akhir dan kuota Amazon EBS](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html) di. *Referensi Umum AWS*

**Topics**
+ [Harga](ebsapi-pricing.md)
+ [Konsep](ebsapi-elements.md)
+ [Akses kontrol](ebsapi-permissions.md)
+ [Membaca snapshot](readsnapshots.md)
+ [Menulis snapshot](writesnapshots.md)
+ [Hasil enkripsi](ebsapis-using-encryption.md)
+ [Validasi data snapshot](ebsapis-using-checksums.md)
+ [Pastikan idempotensi](ebs-direct-api-idempotency.md)
+ [Kesalahan mencoba lagi](error-retries.md)
+ [Optimalkan performa](ebsapi-performance.md)
+ [Titik akhir layanan](using-endpoints.md)
+ [Contoh kode SDK](sdk.md)
+ [Titik akhir VPC antarmuka](ebs-apis-vpc-endpoints.md)
+ [CloudTrail log](logging-ebs-apis-using-cloudtrail.md)
+ [FAQs](ebsapi-faq.md)

# Harga untuk EBS direct APIs
<a name="ebsapi-pricing"></a>

## Harga untuk APIs
<a name="api-pricing"></a>

Harga yang Anda bayar untuk menggunakan EBS langsung APIs tergantung pada permintaan yang Anda buat. Untuk informasi selengkapnya, lihat [harga Amazon EBS](https://aws.amazon.com/ebs/pricing/).
+ **ListChangedBlocks**dan ListSnapshotBlocks APIs dikenakan biaya per permintaan. Misalnya, jika Anda membuat 100.000 permintaan ListSnapshotBlocks API di Wilayah yang mengenakan biaya \$10,0006 per 1.000 permintaan, Anda akan dikenakan biaya \$10,06 (\$10,0006 per 1.000 permintaan x 100).
+ **GetSnapshotBlock**dibebankan per blok yang dikembalikan. Misalnya, jika Anda membuat 100.000 permintaan GetSnapshotBlock API di Wilayah yang mengenakan biaya \$10,003 per 1.000 blok yang dikembalikan, Anda akan dikenakan biaya \$10,30 (\$10,003 per 1.000 blok dikembalikan x 100).
+ **PutSnapshotBlock**dibebankan per blok tertulis. Misalnya, jika Anda membuat 100.000 permintaan PutSnapshotBlock API di Wilayah yang mengenakan biaya \$10,006 per 1.000 blok yang ditulis, Anda akan dikenakan biaya \$10,60 (\$10,006 per 1.000 blok yang ditulis x 100).

## Biaya jaringan
<a name="networking-costs"></a>

**Biaya transfer data**  
[Data yang ditransfer langsung antara API langsung EBS dan instans Amazon EC2 di Wilayah AWS yang sama gratis saat menggunakan titik akhir non-FIPS.](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#ebs_direct_apis) Untuk informasi selengkapnya, lihat [AWS titik akhir layanan](https://docs.aws.amazon.com/general/latest/gr/rande.html). Jika AWS layanan lain berada di jalur transfer data Anda, Anda akan dikenakan biaya pemrosesan data terkait. Layanan ini termasuk, namun tidak terbatas pada, PrivateLink titik akhir, NAT Gateway, dan Transit Gateway.

**Titik akhir antarmuka VPC**  
Jika Anda menggunakan API langsung EBS dari instans AWS Lambda atau fungsi Amazon EC2 di subnet pribadi, Anda dapat menggunakan titik akhir antarmuka VPC, alih-alih menggunakan gateway NAT, untuk mengurangi biaya transfer data jaringan. Untuk informasi selengkapnya, lihat [Buat koneksi pribadi antara VPC dan EBS langsung APIs](ebs-apis-vpc-endpoints.md).

# Konsep untuk EBS langsung APIs
<a name="ebsapi-elements"></a>

Berikut ini adalah konsep kunci yang harus Anda pahami sebelum memulai dengan EBS langsung APIs.

## Snapshot
<a name="ebsapi-snapshots"></a>

Snapshot adalah sarana utama untuk mencadangkan data dari volume EBS Anda. Dengan EBS direct APIs, Anda juga dapat mencadangkan data dari disk lokal ke snapshot. Untuk menghemat biaya penyimpanan, snapshot berikutnya bersifat bertahap, hanya berisi data volume yang berubah sejak snapshot sebelumnya. Untuk informasi selengkapnya, lihat [Snapshot Amazon EBS](ebs-snapshots.md).

**catatan**  
EBS direct APIs tidak mendukung snapshot publik dan snapshot lokal aktif. AWS Outposts

## Blok
<a name="ebsapi-blocks"></a>

Blok adalah fragmen data di dalam snapshot. Setiap snapshot dapat berisi ribuan blok. Semua blok dalam snapshot memiliki ukuran tetap.

## Indeks blok
<a name="ebsapi-block-indexes"></a>

Indeks blok adalah indeks logis dalam satuan blok `512` KiB. Untuk mengidentifikasi indeks blok, bagilah offset logis data dalam volume logis dengan ukuran blok (offset logis data/`524288`). Offset logis dari data harus disesuaikan dengan `512` KiB.

## Token blok
<a name="ebsapi-block-tokens"></a>

Token blok adalah hash pengidentifikasi dari sebuah blok di dalam sebuah snapshot, dan digunakan untuk menemukan data blok. Token blok yang dikembalikan oleh EBS langsung APIs bersifat sementara. Mereka berubah pada stempel waktu kedaluwarsa yang ditentukan untuk mereka, atau jika Anda menjalankan yang lain ListSnapshotBlocks atau ListChangedBlocks meminta snapshot yang sama.

## Checksum
<a name="ebsapi-checksum"></a>

Checksum adalah datum berukuran kecil yang berasal dari blok data untuk tujuan mendeteksi kesalahan yang diperkenalkan selama transmisi atau penyimpanan. EBS langsung APIs menggunakan checksum untuk memvalidasi integritas data. Saat Anda membaca data dari snapshot EBS, layanan menyediakan SHA256 checksum yang dikodekan Base64 untuk setiap blok data yang dikirimkan, yang dapat Anda gunakan untuk validasi. Saat Anda menulis data ke snapshot EBS, Anda harus memberikan SHA256 checksum yang dikodekan Base64 untuk setiap blok data yang dikirimkan. Layanan memvalidasi data yang diterima menggunakan checksum yang disediakan. Untuk informasi selengkapnya, lihat [Gunakan APIs checksum langsung EBS untuk memvalidasi data snapshot](ebsapis-using-checksums.md) dalam panduan ini.

## Enkripsi
<a name="ebsapi-encryption"></a>

Enkripsi melindungi data Anda dengan mengubahnya menjadi kode yang tidak terbaca yang hanya dapat diuraikan oleh orang yang memiliki akses ke kunci KMS yang digunakan untuk mengenkripsinya. Anda dapat menggunakan EBS langsung APIs untuk membaca dan menulis snapshot terenkripsi, tetapi ada beberapa batasan. Untuk informasi selengkapnya, lihat [Hasil enkripsi untuk EBS langsung APIs](ebsapis-using-encryption.md) dalam panduan ini.

## Tindakan API
<a name="ebsapi-actions"></a>

EBS direct APIs terdiri dari enam tindakan. Ada tiga tindakan baca dan tiga tindakan tulis. Tindakan baca adalah: 
+ **ListSnapshotBlocks**— mengembalikan indeks blok dan blok token blok dalam snapshot yang ditentukan
+ **ListChangedBlocks**— mengembalikan indeks blok dan token blok blok yang berbeda antara dua snapshot tertentu dari volume yang sama dan garis keturunan snapshot.
+ **GetSnapshotBlock**— mengembalikan data dalam blok untuk ID snapshot yang ditentukan, indeks blok, dan token blok.

Tindakan tulis adalah:
+ **StartSnapshot**— memulai snapshot, baik sebagai snapshot tambahan dari yang sudah ada atau sebagai snapshot baru. Snapshot yang dimulai tetap dalam status tertunda hingga selesai menggunakan tindakan CompleteSnapshot .
+ **PutSnapshotBlock**— menambahkan data ke snapshot yang dimulai dalam bentuk blok individu. Anda harus menentukan SHA256 checksum yang dikodekan Base64 untuk blok data yang dikirimkan. Layanan memvalidasi checksum setelah transmisi selesai. Permintaan gagal jika checksum yang dihitung oleh layanan tidak sesuai dengan yang Anda tentukan.
+ **CompleteSnapshot**— menyelesaikan snapshot yang dimulai yang dalam keadaan tertunda. Snapshot lalu diubah ke status selesai.

## Tanda tangan Versi 4 penandatanganan
<a name="ebsapis-using-sigv4"></a>

Signature Version 4 adalah proses untuk menambahkan informasi otentikasi ke AWS permintaan yang dikirim oleh HTTP. Untuk keamanan, sebagian besar permintaan AWS harus ditandatangani dengan kunci akses, yang terdiri dari ID kunci akses dan kunci akses rahasia. Kedua kunci ini umumnya disebut sebagai kredensial keamanan Anda. Untuk informasi tentang cara mendapatkan kredensial untuk akun Anda, lihat [kredensial keamanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html).

Jika Anda ingin membuat permintaan HTTP secara manual, Anda harus mempelajari cara menandatanganinya. Saat Anda menggunakan AWS Command Line Interface (AWS CLI) atau salah satu AWS SDKs untuk membuat permintaan AWS, alat ini secara otomatis menandatangani permintaan untuk Anda dengan kunci akses yang Anda tentukan saat Anda mengonfigurasi alat. Saat menggunakan alat ini, Anda tidak perlu mempelajari cara menandatangani permintaan diri.

Untuk informasi selengkapnya, lihat [Menandatangani permintaan AWS API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) di *Panduan Pengguna IAM*.

# Kontrol akses ke EBS langsung APIs menggunakan IAM
<a name="ebsapi-permissions"></a>

Pengguna harus memiliki kebijakan berikut untuk menggunakan EBS direct APIs. Untuk informasi selengkapnya, lihat [Mengubah izin untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html).

Untuk informasi selengkapnya tentang kunci konteks APIs sumber daya, tindakan, dan kondisi langsung EBS untuk digunakan dalam kebijakan izin IAM, lihat Kunci [tindakan, sumber daya, dan kondisi untuk Amazon Elastic Block Store](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html) di Referensi *Otorisasi Layanan*.

**penting**  
Berhati-hatilah saat menetapkan kebijakan berikut kepada pengguna. Dengan menetapkan kebijakan ini, Anda dapat memberikan akses ke pengguna yang ditolak akses ke sumber daya yang sama melalui Amazon APIs EC2, seperti CopySnapshot tindakan atau. CreateVolume 

## Izin untuk membaca snapshot
<a name="ebsapi-read-permissions"></a>

Kebijakan berikut memungkinkan EBS langsung *dibaca* APIs untuk digunakan pada semua snapshot di Wilayah tertentu AWS . Dalam kebijakan, ganti *<Region>* dengan Wilayah snapshot.

Kebijakan berikut memungkinkan EBS langsung *dibaca* digunakan APIs pada snapshot dengan tag nilai kunci tertentu. Dalam kebijakan, ganti *<Key>* dengan nilai kunci tag, dan *<Value>* dengan nilai tag.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/<Key>": "<Value>"
                }
            }
        }
    ]
}
```

------

Kebijakan berikut memungkinkan semua EBS langsung yang *dibaca* APIs untuk digunakan pada semua snapshot di akun hanya dalam rentang waktu tertentu. Kebijakan ini mengizinkan penggunaan langsung EBS APIs berdasarkan kunci kondisi `aws:CurrentTime` global. Dalam kebijakan tersebut, pastikan Anda mengganti rentang tanggal dan waktu yang ditampilkan sesuai rentang tanggal dan waktu untuk kebijakan Anda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ebs:GetSnapshotBlock"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2018-05-29T00:00:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "2020-05-29T23:59:59Z"
                }
            }
        }
    ]
}
```

------

Untuk informasi selengkapnya, lihat [Mengubah izin untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) pada *Panduan Pengguna IAM*.

## Izin untuk menulis snapshot
<a name="ebsapi-write-permissions"></a>

Kebijakan berikut memungkinkan *penulisan* EBS langsung APIs digunakan pada semua snapshot di Wilayah tertentu AWS . Dalam kebijakan, ganti *<Region>* dengan Wilayah snapshot.

Kebijakan berikut memungkinkan *penulisan* langsung EBS digunakan APIs pada snapshot dengan tag nilai kunci tertentu. Dalam kebijakan, ganti *<Key>* dengan nilai kunci tag, dan *<Value>* dengan nilai tag.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:StartSnapshot",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/<Key>": "<Value>"
                }
            }
        }
    ]
}
```

------

Kebijakan berikut memungkinkan semua EBS langsung APIs digunakan. Hal ini juga memungkinkan tindakan `StartSnapshot` hanya jika ID snapshot induk ditentukan. Oleh karena itu, kebijakan ini memblokir kemampuan untuk memulai snapshot baru menggunakan snapshot induk.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ebs:*", 
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ebs:ParentSnapshot": "arn:aws:ec2:*::snapshot/*"
                }
            }
        }
    ]
}
```

------

Kebijakan berikut memungkinkan semua EBS langsung APIs digunakan. Kebijakan tersebut juga hanya memungkinkan kunci tanda `user` dibuat untuk snapshot baru. Kebijakan ini juga memastikan bahwa pengguna memiliki akses untuk membuat tanda. Tindakan `StartSnapshot` adalah satu-satunya tindakan yang dapat menentukan tanda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ebs:*", 
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "user"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

Kebijakan berikut memungkinkan semua *penulisan* EBS langsung APIs digunakan pada semua snapshot di akun hanya dalam rentang waktu tertentu. Kebijakan ini mengizinkan penggunaan langsung EBS APIs berdasarkan kunci kondisi `aws:CurrentTime` global. Dalam kebijakan tersebut, pastikan Anda mengganti rentang tanggal dan waktu yang ditampilkan sesuai rentang tanggal dan waktu untuk kebijakan Anda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ebs:StartSnapshot",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*",
            "Condition": {
                "DateGreaterThan": {
                    "aws:CurrentTime": "2018-05-29T00:00:00Z"
                },
                "DateLessThan": {
                    "aws:CurrentTime": "2020-05-29T23:59:59Z"
                }
            }
        }
    ]
}
```

------

Untuk informasi selengkapnya, lihat [Mengubah izin untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) pada *Panduan Pengguna IAM*.

## Izin untuk digunakan AWS KMS keys
<a name="ebsapi-kms-permissions"></a>

Kebijakan berikut memberikan izin untuk mendekripsi snapshot terenkripsi menggunakan kunci KMS tertentu. Kebijakan ini juga memberikan izin untuk mengenkripsi snapshot baru menggunakan kunci KMS default untuk enkripsi EBS. Dalam kebijakan, ganti *<Region>* dengan wilayah kunci KMS, *<AccountId>* dengan ID AWS akun kunci KMS, dan *<KeyId>* dengan ID kunci KMS.

**catatan**  
Secara default, semua prinsipal di akun memiliki akses ke kunci KMS AWS terkelola default untuk enkripsi Amazon EBS, dan mereka dapat menggunakannya untuk operasi enkripsi dan dekripsi EBS. Jika Anda menggunakan kunci yang dikelola pelanggan, Anda harus membuat kebijakan kunci baru atau memodifikasi kebijakan kunci yang ada untuk kunci yang dikelola pelanggan untuk memberi pengguna utama akses utama ke kunci yang dikelola pelanggan. Untuk informasi selengkapnya, lihat [Kebijakan kunci di AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) di *Panduan Developer AWS Key Management Service *.

**Tip**  
Untuk mengikuti prinsip hak akses paling rendah, jangan biarkan akses penuh ke `kms:CreateGrant`. Sebagai gantinya, gunakan tombol `kms:GrantIsForAWSResource` kondisi untuk memungkinkan pengguna membuat hibah pada kunci KMS hanya ketika hibah dibuat atas nama pengguna oleh AWS layanan, seperti yang ditunjukkan pada contoh berikut.

Untuk informasi selengkapnya, lihat [Mengubah izin untuk pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) pada *Panduan Pengguna IAM*.

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

------

# Tulis snapshot Amazon EBS dengan EBS langsung APIs
<a name="writesnapshots"></a>

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

1. Gunakan StartSnapshot tindakan dan tentukan ID snapshot induk untuk memulai snapshot sebagai snapshot tambahan dari yang sudah ada, atau hilangkan ID snapshot induk untuk memulai snapshot baru. Tindakan ini mengembalikan ID snapshot baru, yang berada dalam status tertunda.

1. Gunakan PutSnapshotBlock tindakan dan tentukan ID snapshot yang tertunda untuk menambahkan data ke dalamnya dalam bentuk blok individual. Anda harus menentukan SHA256 checksum yang dikodekan Base64 untuk blok data yang dikirimkan. Layanan ini menghitung checksum data yang diterima dan memvalidasinya dengan checksum yang Anda tentukan. Tindakan gagal jika checksum tidak cocok.

1. Setelah selesai menambahkan data ke snapshot yang tertunda, gunakan tindakan CompleteSnapshot untuk memulai alur kerja asinkronous yang menyegel snapshot dan mengubah statusnya menjadi selesai.

Ulangi langkah-langkah ini untuk membuat snapshot inkremental baru menggunakan snapshot yang dibuat sebelumnya sebagai induk.

Misalnya, dalam diagram berikut, snapshot A adalah snapshot baru pertama yang dimulai. Snapshot A digunakan sebagai snapshot induk untuk memulai snapshot B. Snapshot B digunakan sebagai snapshot induk untuk memulai dan membuat snapshot C. Snapshot A, B, dan C adalah snapshot inkremental. Snapshot A digunakan untuk membuat volume EBS 1. Snapshot D dibuat dari volume EBS 1. Snapshot D adalah snapshot inkremental A; bukan snapshot inkremental dari B atau C.

![\[EBS langsung APIs digunakan untuk membuat snapshot tambahan.\]](http://docs.aws.amazon.com/id_id/ebs/latest/userguide/images/ebs-apis-write.png)


Contoh berikut menunjukkan cara menulis snapshot menggunakan langsung EBS. APIs

**Topics**
+ [Mulai snapshot](#start-snapshot)
+ [Menempatkan data ke dalam snapshot](#put-data)
+ [Menyelesaikan snapshot](#complete-snapshot)

## Mulai snapshot
<a name="start-snapshot"></a>

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

Contoh perintah [start-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/start-snapshot.html) berikut memulai snapshot `8` GiB, menggunakan snapshot `snap-123EXAMPLE1234567` sebagai snapshot induk. Snapshot baru akan berupa snapshot inkremental dari snapshot induk. Snapshot berpindah ke status kesalahan jika tidak ada permintaan put atau complete yang dibuat untuk snapshot dalam periode waktu tunggu `60` menit yang ditentukan. Token klien `550e8400-e29b-41d4-a716-446655440000` memastikan idempotensi permintaan tersebut. Jika token klien dihilangkan, AWS SDK secara otomatis menghasilkan satu untuk Anda. Untuk informasi selengkapnya tentang idempotensi, lihat [Pastikan idempotensi dalam permintaan 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
```

Contoh respons berikut untuk perintah sebelumnya menunjukkan ID snapshot, ID akun AWS , status, ukuran volume dalam GiB, dan ukuran blok di snapshot. Snapshot dimulai dalam status `pending`. Tentukan ID snapshot di bagian perintah `put-snapshot-block` berikutnya untuk menuliskan data ke snapshot, lalu menggunakan perintah `complete-snapshot` untuk menyelesaikan snapshot dan mengubahnya status menjadi `completed`.

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

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

Permintaan [StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html)contoh berikut memulai snapshot `8` GiB, menggunakan snapshot `snap-123EXAMPLE1234567` sebagai snapshot induk. Snapshot baru akan berupa snapshot inkremental dari snapshot induk. Snapshot berpindah ke status kesalahan jika tidak ada permintaan put atau complete yang dibuat untuk snapshot dalam periode waktu tunggu `60` menit yang ditentukan. Token klien `550e8400-e29b-41d4-a716-446655440000` memastikan idempotensi permintaan tersebut. Jika token klien dihilangkan, AWS SDK secara otomatis menghasilkan satu untuk Anda. Untuk informasi selengkapnya tentang idempotensi, lihat [Pastikan idempotensi dalam permintaan 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
}
```

Contoh respons berikut untuk permintaan sebelumnya menunjukkan ID snapshot, ID akun AWS , status, ukuran volume dalam GiB, dan ukuran blok di snapshot. Snapshot dimulai dalam status tertunda. Tentukan ID snapshot di permintaan `PutSnapshotBlocks` berikutnya untuk menuliskan data ke 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
}
```

------

## Menempatkan data ke dalam snapshot
<a name="put-data"></a>

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

[put-snapshot-block](https://docs.aws.amazon.com/cli/latest/reference/ebs/put-snapshot-block.html)Contoh perintah berikut menulis `524288` Bytes data untuk memblokir indeks `1000` pada snapshot`snap-0aaEXAMPLEe306d62`. Checksum `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` berkode Base64 dibuat menggunakan algoritme `SHA256`. Data yang ditransmisikan terdapat di 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
```

Contoh respons untuk perintah sebelumnya berikut ini mengonfirmasi panjang data, checksum, dan algoritma checksum untuk data yang diterima oleh layanan.

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

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

[PutSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html)Contoh permintaan berikut menulis `524288` Bytes data untuk memblokir indeks `1000` pada snapshot`snap-052EXAMPLEc85d8dd`. Checksum `QOD3gmEQOXATfJx2Aa34W4FU2nZGyXfqtsUuktOw8DM=` dengan enkode Base64 dibuat menggunakan algoritma `SHA256`. Data ditransmisikan dalam badan permintaan dan direpresentasikan seperti *BlockData* pada contoh berikut.

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

Contoh respons untuk permintaan sebelumnya berikut ini mengonfirmasi panjang data, checksum, dan algoritma checksum untuk data yang diterima oleh layanan. 

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

{}
```

------

## Menyelesaikan snapshot
<a name="complete-snapshot"></a>

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

Contoh perintah [complete-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ebs/complete-snapshot.html) berikut menyelesaikan snapshot `snap-0aaEXAMPLEe306d62`. Perintah menentukan bahwa `5` blok ditulis untuk snapshot. Checksum `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` mewakili checksum untuk set data lengkap yang ditulis ke snapshot. Untuk informasi selengkapnya tentang checksum, lihat [Gunakan APIs checksum langsung EBS untuk memvalidasi data snapshot](ebsapis-using-checksums.md) sebelumnya di dalam panduan ini.

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

Berikut ini adalah contoh tanggapan untuk perintah sebelumnya.

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

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

[CompleteSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_CompleteSnapshot.html)Contoh permintaan berikut melengkapi snapshot`snap-052EXAMPLEc85d8dd`. Perintah menentukan bahwa `5` blok ditulis untuk snapshot. Checksum `6D3nmwi5f2F0wlh7xX8QprrJBFzDX8aacdOcA3KCM3c=` merepresentasikan checksum untuk set data lengkap yang ditulis ke 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>
```

Berikut ini adalah contoh tanggapan untuk permintaan sebelumnya.

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

------

# Hasil enkripsi untuk EBS langsung APIs
<a name="ebsapis-using-encryption"></a>

Saat Anda memulai snapshot baru menggunakan [ StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html), status enkripsi bergantung pada nilai yang Anda tentukan untuk **Encrypted**, dan, dan **KmsKeyArn**ParentSnapshotId****, dan apakah AWS akun Anda diaktifkan untuk [enkripsi](encryption-by-default.md) secara default.

**catatan**  
Anda mungkin memerlukan izin IAM tambahan untuk menggunakan EBS langsung APIs dengan enkripsi. Untuk informasi selengkapnya, lihat [Izin untuk digunakan AWS KMS keys](ebsapi-permissions.md#ebsapi-kms-permissions).
Jika enkripsi Amazon EBS secara default diaktifkan di AWS akun, Anda tidak dapat membuat snapshot yang tidak terenkripsi.
Jika enkripsi Amazon EBS secara default diaktifkan di AWS akun Anda, Anda tidak dapat memulai snapshot baru menggunakan snapshot induk yang tidak terenkripsi. Anda harus terlebih dahulu mengenkripsi snapshot induk dengan menyalinnya. Untuk informasi selengkapnya, lihat [Menyalin snapshot Amazon EBS](ebs-copy-snapshot.md).

**Topics**
+ [Hasil enkripsi: Snapshot induk yang tidak terenkripsi](#ebs-direct-api-unencr-outcomes-parent)
+ [Hasil enkripsi: Snapshot induk yang tidak terenkripsi](#ebs-direct-api-encr-outcomes-parent)
+ [Hasil enkripsi: Tidak ada snapshot induk](#ebs-direct-api-encr-outcomes-noparent)

## Hasil enkripsi: Snapshot induk yang tidak terenkripsi
<a name="ebs-direct-api-unencr-outcomes-parent"></a>

Tabel berikut menjelaskan hasil enkripsi untuk setiap kombinasi pengaturan yang memungkinkan.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ebs/latest/userguide/ebsapis-using-encryption.html)

## Hasil enkripsi: Snapshot induk yang tidak terenkripsi
<a name="ebs-direct-api-encr-outcomes-parent"></a>

Tabel berikut menjelaskan hasil enkripsi untuk setiap kombinasi pengaturan yang memungkinkan.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ebs/latest/userguide/ebsapis-using-encryption.html)

## Hasil enkripsi: Tidak ada snapshot induk
<a name="ebs-direct-api-encr-outcomes-noparent"></a>

Tabel berikut menjelaskan hasil enkripsi untuk setiap kombinasi pengaturan yang memungkinkan.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/ebs/latest/userguide/ebsapis-using-encryption.html)

\$1 Kunci KMS default ini bisa berupa kunci yang dikelola pelanggan atau kunci KMS AWS terkelola default untuk enkripsi Amazon EBS.

# Gunakan APIs checksum langsung EBS untuk memvalidasi data snapshot
<a name="ebsapis-using-checksums"></a>

 GetSnapshotBlock Tindakan mengembalikan data yang ada di blok snapshot, dan PutSnapshotBlock tindakan menambahkan data ke blok dalam snapshot. Data blok yang tidak ditransmisikan sebagai bagian dari proses penandatanganan Signature Versi 4. Oleh karena itu, checksum digunakan untuk memvalidasi integritas data sebagai berikut:
+ **Saat Anda menggunakan GetSnapshotBlock tindakan, respons menyediakan checksum yang dikodekan Base64 untuk data blok menggunakan header SHA256 X-AMZ-checksum, dan algoritma checksum menggunakan header **X-AMZ-Checksum-Algorithm**.** Gunakan checksum yang dikembalikan untuk memvalidasi integritas data. Jika checksum yang Anda hasilkan tidak sesuai dengan yang diberikan oleh Amazon EBS, Anda harus mempertimbangkan data yang tidak valid dan mencoba kembali permintaan Anda.
+ **Saat Anda menggunakan PutSnapshotBlock tindakan, permintaan Anda harus menyediakan checksum yang dikodekan Base64 untuk data blok menggunakan header SHA256 X-AMZ-checksum, dan algoritma checksum menggunakan header **X-AMZ-Checksum-Algorithm**.** Checksum yang Anda berikan divalidasi dengan checksum yang dibuat oleh Amazon EBS untuk memvalidasi integritas data. Jika checksum tidak sesuai, permintaan gagal.
+ Saat Anda menggunakan CompleteSnapshot tindakan, permintaan Anda secara opsional dapat menyediakan SHA256 checksum agregat yang dikodekan Base64 untuk kumpulan data lengkap yang ditambahkan ke snapshot. Berikan checksum menggunakan header **x-amz-Checksum**, algoritma checksum menggunakan header **x-amz-Checksum-Algorithm**, dan metode agregasi checksum menggunakan header **x-amz-Checksum-Aggregation-Method**. Untuk menghasilkan checksum agregat menggunakan metode agregasi linier, atur checksum untuk setiap blok tertulis dalam urutan menaik dari indeks bloknya, gabungkan mereka untuk membentuk satu string, dan kemudian buat checksum pada seluruh string menggunakan algoritma. SHA256 

Checksum dalam tindakan ini merupakan bagian dari proses penandatanganan Signature Versi 4.

# Pastikan idempotensi dalam permintaan API StartSnapshot
<a name="ebs-direct-api-idempotency"></a>

Idempotensi memastikan bahwa permintaan API hanya selesai satu kali. Dengan permintaan idempotensi, jika permintaan asli selesai, percobaan berikutnya mengembalikan hasil dari permintaan awal yang berhasil dan tidak memiliki efek tambahan.

API [ StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html) mendukung idempotensi menggunakan *token klien*. Token klien adalah string unik yang Anda tentukan saat membuat permintaan API. Jika Anda mencoba ulang permintaan API dengan token klien yang sama dan parameter permintaan yang sama setelah berhasil diselesaikan, hasil permintaan awal akan dikembalikan. Jika Anda mencoba ulang permintaan dengan token klien yang sama, tetapi mengubah satu atau beberapa parameter permintaan, kesalahan `ConflictException` dikembalikan.

Jika Anda tidak menentukan token klien Anda sendiri, secara AWS SDKs otomatis menghasilkan token klien untuk permintaan untuk memastikan bahwa itu idempoten.

Token klien dapat berupa string yang mencakup hingga 64 karakter ASCII. Anda tidak boleh menggunakan kembali token klien yang sama untuk permintaan yang berbeda.

**Untuk membuat StartSnapshot permintaan idempoten dengan token klien Anda sendiri menggunakan API**  
Tentukan parameter permintaan `ClientToken`.

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

**Untuk membuat StartSnapshot permintaan idempoten dengan token klien Anda sendiri menggunakan AWS CLI**  
Tentukan parameter permintaan `client-token`.

```
$ C:\> aws ebs start-snapshot --region us-east-2 --volume-size 8 --parent-snapshot snap-123EXAMPLE1234567 --timeout 60 --client-token 550e8400-e29b-41d4-a716-446655440000
```

# Kesalahan mencoba ulang untuk EBS langsung APIs
<a name="error-retries"></a>

**AWS SDKs**Mengimplementasikan logika coba ulang otomatis untuk permintaan yang mengembalikan respons kesalahan. Anda dapat mengonfigurasi pengaturan coba lagi untuk file. AWS SDKs Untuk informasi selengkapnya, lihat dokumentasi SDK Anda.

Anda dapat mengonfigurasi **AWS CLI** agar secara otomatis mencoba kembali beberapa permintaan yang gagal. *Untuk informasi selengkapnya tentang mengonfigurasi percobaan ulang AWS CLI, lihat [AWS CLI mencoba ulang di Panduan](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-retries.html) Pengguna.AWS Command Line Interface *

** API Kueri AWS ** tidak mendukung logika coba ulang untuk permintaan yang gagal. Jika Anda menggunakan permintaan HTTP atau HTTPS, Anda harus menerapkan logika coba lagi dalam aplikasi klien Anda.

Tabel berikut menunjukkan kemungkinan respons kesalahan API. Beberapa kesalahan API dapat dicoba ulang. Aplikasi klien Anda harus selalu mencoba ulang permintaan gagal yang menerima kesalahan yang dapat dicoba ulang.


| Kesalahan | Kode respons | Deskripsi | Dilempar oleh | Dicoba ulang? | 
| --- | --- | --- | --- | --- | 
| InternalServerException | 500 | Permintaan gagal karena masalah jaringan atau AWS sisi server. | Semua APIs | Ya | 
| ThrottlingException | 400 | Jumlah permintaan API telah melampaui batas throttling permintaan API maksimum yang diizinkan untuk akun. | Semua APIs | Ya | 
| RequestThrottleException | 400 | Jumlah permintaan API telah melampaui batas throttling permintaan API maksimum yang diizinkan untuk snapshot. | GetSnapshotBlock \$1 PutSnapshotBlock | Ya | 
| ValidationException dengan pesan "Failed to read block data" | 400 | Blok data yang disediakan tidak dapat dibaca. | PutSnapshotBlock | Ya | 
| ValidationException dengan pesan lainnya | 400 | Sintaksis permintaan salah format, atau input tidak memenuhi batasan yang ditentukan oleh Layanan AWS. | Semua APIs | Tidak | 
| ResourceNotFoundException | 404 | ID snapshot yang ditentukan tidak ada. | Semua APIs | Tidak | 
| ConflictException | 409 | Token klien yang ditentukan sebelumnya digunakan dalam permintaan serupa yang memiliki parameter permintaan berbeda. Untuk informasi selengkapnya, lihat [Pastikan idempotensi dalam permintaan API StartSnapshot](ebs-direct-api-idempotency.md). | StartSnapshot | Tidak | 
| AccessDeniedException | 403 | Anda tidak memiliki izin untuk melakukan operasi yang diminta. | Semua APIs | Tidak | 
| ServiceQuotaExceededException | 402 | Permintaan gagal karena memenuhi permintaan akan melebihi satu atau lebih kuota layanan dependen untuk akun Anda. | Semua APIs | Tidak | 
| InvalidSignatureException | 403 | Tanda tangan otorisasi permintaan telah kedaluwarsa. Anda dapat mencoba lagi permintaan hanya setelah menyegarkan tanda tangan otorisasi. | Semua APIs | Tidak | 

# Optimalkan kinerja untuk EBS langsung APIs
<a name="ebsapi-performance"></a>

Anda dapat menjalankan permintaan API secara bersamaan. Dengan asumsi PutSnapshotBlock latensi adalah 100 ms, maka utas dapat memproses 10 permintaan dalam satu detik. Selain itu, dengan asumsi aplikasi klien Anda menciptakan beberapa alur dan koneksi (misalnya, 100 koneksi), dapat membuat 1000 permintaan (10 \$1 100) per detik secara keseluruhan. Ini akan sesuai dengan throughput sekitar 500 MB per detik.

Daftar berikut ini berisi beberapa hal yang harus dicari dalam aplikasi Anda:
+ Apakah setiap utas menggunakan koneksi terpisah? Jika koneksi dibatasi pada aplikasi, maka banyak alur akan menunggu koneksi tersedia dan Anda akan melihat throughput yang lebih rendah.
+ Apakah ada waktu tunggu dalam aplikasi di antara dua permintaan yang dimasukkan? Hal ini akan mengurangi throughput alur yang efektif.
+ Batas bandwidth pada instans - Jika bandwidth pada instasn dibagikan oleh aplikasi lain, maka dapat membatasi keluaran yang tersedia untuk permintaan PutSnapshotBlock.

Pastikan untuk mencatat beban kerja lain yang mungkin berjalan di akun untuk menghindari hambatan. Anda juga harus membangun mekanisme coba ulang ke dalam APIs alur kerja langsung EBS Anda untuk menangani pelambatan, batas waktu, dan tidak tersedianya layanan.

Tinjau kuota APIs layanan langsung EBS untuk menentukan permintaan API maksimum yang dapat Anda jalankan per detik. Untuk informasi selengkapnya, lihat [Titik Akhir dan Kuota Amazon Elastic Block Store](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#w542aab9d130b7c15) dalam *Referensi Umum AWS *.

# Titik akhir layanan untuk EBS langsung APIs
<a name="using-endpoints"></a>

*Endpoint* adalah URL yang berfungsi sebagai titik masuk untuk layanan AWS web. EBS direct APIs mendukung jenis endpoint berikut:
+ IPv4 titik akhir
+ Titik akhir tumpukan ganda yang mendukung keduanya dan IPv4 IPv6
+ Titik akhir FIPS

Saat Anda membuat permintaan, Anda dapat menentukan titik akhir dan Wilayah yang akan digunakan. Jika Anda tidak menentukan titik akhir, IPv4 titik akhir digunakan secara default. Untuk menggunakan tipe titik akhir yang berbeda, Anda harus menentukannya dalam permintaan Anda. Untuk contoh cara melakukannya, lihat [Menentukan titik akhir](#examples).

Untuk informasi selengkapnya tentang Wilayah, lihat [Wilayah dan Zona Ketersediaan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) di *Panduan Pengguna Amazon EC2*. Untuk daftar titik akhir untuk EBS direct APIs, lihat [Titik akhir untuk EBS langsung di](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#ebs_direct_apis). APIs *Referensi Umum Amazon Web Services*

**Topics**
+ [IPv4 titik akhir](#ipv4)
+ [Titik akhir tumpukan ganda (IPv4 dan IPv6)](#ipv6)
+ [Titik akhir FIPS](#fips)
+ [Menentukan titik akhir](#examples)

## IPv4 titik akhir
<a name="ipv4"></a>

IPv4 endpoint hanya mendukung IPv4 lalu lintas. IPv4 titik akhir tersedia untuk semua Wilayah.

EBS direct hanya APIs mendukung IPv4 titik akhir Regional yang dapat Anda gunakan untuk membuat permintaan. Anda harus menentukan Region sebagai bagian dari nama endpoint. Nama endpoint menggunakan konvensi penamaan berikut:
+ `ebs.region.amazonaws.com`

Misalnya, untuk mengarahkan permintaan Anda ke `us-east-2` IPv4 titik akhir, Anda harus menentukan `ebs.us-east-2.amazonaws.com` sebagai titik akhir. Untuk daftar titik akhir untuk EBS direct APIs, lihat [Titik akhir untuk EBS langsung di](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#ebs_direct_apis). APIs *Referensi Umum Amazon Web Services*

**Harga**  
Anda tidak dikenakan biaya untuk data yang ditransfer langsung antara API langsung EBS dan instans Amazon EC2 menggunakan titik akhir di IPv4 Wilayah yang sama. Namun, jika ada layanan perantara, seperti AWS PrivateLink titik akhir, NAT Gateway, atau Gateway Transit VPC Amazon, Anda akan dikenakan biaya terkait.

## Titik akhir tumpukan ganda (IPv4 dan IPv6)
<a name="ipv6"></a>

Titik akhir dual-stack mendukung keduanya IPv4 dan lalu lintas. IPv6 Titik akhir tumpukan ganda tersedia untuk semua Wilayah.

Untuk menggunakannya IPv6, Anda harus menggunakan endpoint dual-stack. Saat Anda membuat permintaan ke titik akhir dual-stack, URL endpoint akan diselesaikan ke alamat IPv6 atau IPv4 alamat, tergantung pada protokol yang digunakan oleh jaringan dan klien Anda.

EBS direct hanya APIs mendukung titik akhir dual-stack regional, yang berarti Anda harus menentukan Region sebagai bagian dari nama endpoint. Nama titik akhir tumpukan ganda menggunakan konvensi penamaan berikut:
+ `ebs.region.api.aws`

Misalnya, nama titik akhir tumpukan ganda untuk Wilayah `eu-west-1` adalah `ebs.eu-west-1.api.aws`. Untuk daftar titik akhir untuk EBS direct APIs, lihat [Titik akhir untuk EBS langsung di](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#ebs_direct_apis). APIs *Referensi Umum Amazon Web Services*

**Harga**  
Anda tidak dikenai biaya untuk data yang ditransfer langsung antara API langsung EBS dan instans Amazon EC2 menggunakan titik akhir tumpukan ganda di Wilayah yang sama. Namun, jika ada layanan perantara, seperti AWS PrivateLink titik akhir, NAT Gateway, atau Gateway Transit VPC Amazon, Anda akan dikenakan biaya terkait.

## Titik akhir FIPS
<a name="fips"></a>

EBS direct APIs menyediakan titik akhir yang divalidasi FIPS IPv4 dan dual-stack (IPv4 dan IPv6) untuk Wilayah berikut:
+ `us-east-1` — AS Timur (Virginia Utara)
+ `us-east-2` — AS Timur (Ohio)
+ `us-west-1` — AS Barat (California Utara)
+ `us-west-2` — AS Barat (Oregon)
+ `ca-central-1` – Kanada (Pusat)
+ `ca-west-1`— Kanada Barat (Calgary)

** IPv4 Titik akhir FIPS** menggunakan konvensi penamaan berikut:. `ebs-fips.region.amazonaws.com` Misalnya, IPv4 titik akhir FIPS untuk `us-east-1` adalah. `ebs-fips.us-east-1.amazonaws.com`

**Titik akhir tumpukan ganda FOPS** menggunakan konvensi penamaan berikut: `ebs-fips.region.api.aws`. Misalnya, titik akhir tumpukan ganda FIPS untuk `us-east-1` adalah `ebs-fips.us-east-1.api.aws`.

Untuk informasi selengkapnya tentang titik akhir FIPS, lihat [Titik akhir FIPS](https://docs.aws.amazon.com/general/latest/gr/rande.html#FIPS-endpoints) di *Referensi Umum Amazon Web Services*. 

## Menentukan titik akhir
<a name="examples"></a>

Bagian ini memberikan beberapa contoh cara menentukan titik akhir saat membuat permintaan.

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

Contoh berikut menunjukkan cara menentukan titik akhir untuk Wilayah `us-east-2` menggunakan AWS CLI.
+ **Tumpukan ganda**

  ```
  aws ebs list-snapshot-blocks --snapshot-id snap-0987654321 --starting-block-index 1000 --endpoint-url https://ebs.us-east-2.api.aws
  ```
+ **IPv4**

  ```
  aws ebs list-snapshot-blocks --snapshot-id snap-0987654321 --starting-block-index 1000 --endpoint-url https://ebs.us-east-2.amazonaws.com
  ```

------
#### [ AWS SDK for Java 2.x ]

Contoh berikut menunjukkan cara menentukan titik akhir untuk Wilayah `us-east-2` menggunakan AWS SDK for Java 2.x.
+ **Tumpukan ganda**

  ```
  AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration("https://ebs.us-east-2.api.aws", "us-east-2");
  AmazonEBS ebs = AmazonEBSClientBuilder.standard()
      .withEndpointConfiguration(config)
      .build();
  ```
+ **IPv4**

  ```
  AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration("https://ebs.us-east-2.amazonaws.com", "us-east-2");
  AmazonEBS ebs = AmazonEBSClientBuilder.standard()
      .withEndpointConfiguration(config)
      .build();
  ```

------
#### [ AWS SDK for Go ]

Contoh berikut menunjukkan cara menentukan titik akhir untuk Wilayah `us-east-2` menggunakan AWS SDK untuk Go.
+ **Tumpukan ganda**

  ```
  sess := session.Must(session.NewSession())
  svc := ebs.New(sess, &aws.Config{
      Region: aws.String(endpoints.UsEast2RegionID),
      Endpoint: aws.String("https://ebs.us-east-2.api.aws")
  })
  ```
+ **IPv4**

  ```
  sess := session.Must(session.NewSession())
  svc := ebs.New(sess, &aws.Config{
      Region: aws.String(endpoints.UsEast2RegionID),
      Endpoint: aws.String("https://ebs.us-east-2.amazonaws.com")
  })
  ```

------

# AWS Contoh kode SDK untuk EBS langsung APIs
<a name="sdk"></a>

Contoh kode berikut menunjukkan cara menggunakan EBS langsung APIs dengan kit pengembangan AWS perangkat lunak (SDK). 

**Topics**
+ [StartSnapshot](#sdk-StartSnapshot)
+ [PutSnapshotBlock](#sdk-PutSnapshotBlock)
+ [CompleteSnapshot](#sdk-CompleteSnapshot)

## Gunakan `StartSnapshot` dengan AWS SDK atau CLI
<a name="sdk-StartSnapshot"></a>

Contoh kode berikut menunjukkan cara menggunakan`StartSnapshot`.

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/ebs#code-examples). 

```
async fn start(client: &Client, description: &str) -> Result<String, Error> {
    let snapshot = client
        .start_snapshot()
        .description(description)
        .encrypted(false)
        .volume_size(1)
        .send()
        .await?;

    Ok(snapshot.snapshot_id.unwrap())
}
```
+  Untuk detail API, lihat [StartSnapshot](https://docs.rs/aws-sdk-ebs/latest/aws_sdk_ebs/client/struct.Client.html#method.start_snapshot)*referensi AWS SDK for Rust API*. 

------

## Gunakan `PutSnapshotBlock` dengan AWS SDK atau CLI
<a name="sdk-PutSnapshotBlock"></a>

Contoh kode berikut menunjukkan cara menggunakan`PutSnapshotBlock`.

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/ebs#code-examples). 

```
async fn add_block(
    client: &Client,
    id: &str,
    idx: usize,
    block: Vec<u8>,
    checksum: &str,
) -> Result<(), Error> {
    client
        .put_snapshot_block()
        .snapshot_id(id)
        .block_index(idx as i32)
        .block_data(ByteStream::from(block))
        .checksum(checksum)
        .checksum_algorithm(ChecksumAlgorithm::ChecksumAlgorithmSha256)
        .data_length(EBS_BLOCK_SIZE as i32)
        .send()
        .await?;

    Ok(())
}
```
+  Untuk detail API, lihat [PutSnapshotBlock](https://docs.rs/aws-sdk-ebs/latest/aws_sdk_ebs/client/struct.Client.html#method.put_snapshot_block)*referensi AWS SDK for Rust API*. 

------

## Gunakan `CompleteSnapshot` dengan AWS SDK atau CLI
<a name="sdk-CompleteSnapshot"></a>

Contoh kode berikut menunjukkan cara menggunakan`CompleteSnapshot`.

------
#### [ Rust ]

**SDK for Rust**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1/examples/ebs#code-examples). 

```
async fn finish(client: &Client, id: &str) -> Result<(), Error> {
    client
        .complete_snapshot()
        .changed_blocks_count(2)
        .snapshot_id(id)
        .send()
        .await?;

    println!("Snapshot ID {}", id);
    println!("The state is 'completed' when all of the modified blocks have been transferred to Amazon S3.");
    println!("Use the get-snapshot-state code example to get the state of the snapshot.");

    Ok(())
}
```
+  Untuk detail API, lihat [CompleteSnapshot](https://docs.rs/aws-sdk-ebs/latest/aws_sdk_ebs/client/struct.Client.html#method.complete_snapshot)*referensi AWS SDK for Rust API*. 

------

# Buat koneksi pribadi antara VPC dan EBS langsung APIs
<a name="ebs-apis-vpc-endpoints"></a>

Anda dapat membuat koneksi pribadi antara VPC dan EBS langsung APIs dengan membuat antarmuka *VPC* endpoint, yang didukung oleh. [AWS PrivateLink](https://aws.amazon.com/privatelink/) Anda dapat mengakses EBS langsung APIs seolah-olah berada di VPC Anda, tanpa menggunakan gateway internet, perangkat NAT, koneksi VPN, atau koneksi. AWS Direct Connect Instans di VPC Anda tidak memerlukan alamat IP publik untuk berkomunikasi langsung dengan EBS. APIs

Kami membuat antarmuka jaringan endpoint di setiap subnet yang Anda aktifkan untuk titik akhir antarmuka.

Untuk informasi selengkapnya, lihat [Akses Layanan AWS melalui AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) di *AWS PrivateLink Panduan*.

## Pertimbangan untuk titik akhir APIs VPC langsung EBS
<a name="vpc-endpoint-considerations"></a>

*Sebelum Anda menyiapkan titik akhir VPC antarmuka untuk EBS direct APIs, tinjau [Pertimbangan](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints) dalam Panduan.AWS PrivateLink *

Secara default, akses penuh ke EBS langsung APIs diizinkan melalui titik akhir. Anda dapat mengontrol akses ke titik akhir antarmuka menggunakan kebijakan titik akhir VPC. Anda dapat melampirkan kebijakan titik akhir ke titik akhir VPC Anda yang mengontrol akses ke EBS langsung. APIs Kebijakan titik akhir menentukan informasi berikut:
+ Kepala **sekolah** yang dapat melakukan tindakan.
+ **Tindakan** yang bisa dilakukan.
+ Sumber **daya** di mana tindakan dapat dilakukan.

Untuk informasi selengkapnya, lihat [ Mengendalikan Akses ke Layanan dengan Titik Akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) dalam *Panduan Pengguna VPC Amazon*.

Berikut ini adalah contoh kebijakan endpoint untuk EBS direct. APIs Saat dilampirkan ke titik akhir, kebijakan ini memberikan akses ke semua APIs tindakan langsung EBS pada semua sumber daya, kecuali snapshot yang ditandai dengan kunci dan nilai. `Environment` `Test`

```
{
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ebs:*",
            "Principal": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Environment": "Test"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ebs:*",
            "Principal": "*",
            "Resource": "*"
        }
    ]
}
```

## Buat titik akhir VPC antarmuka untuk EBS langsung APIs
<a name="vpc-endpoint-create"></a>

Anda dapat membuat titik akhir VPC untuk EBS langsung menggunakan konsol VPC Amazon APIs atau (). AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) di *Panduan Pengguna AWS PrivateLink *.

Buat titik akhir VPC untuk EBS langsung APIs menggunakan salah satu nama layanan berikut: 
+ `com.amazonaws.region.ebs`
+ `com.amazonaws.region.ebs-fips`— Untuk membuat antarmuka VPC endpoint yang sesuai dengan Federal Information Processing Standard (FIPS) Publikasi 140-2 standar pemerintah AS.
**catatan**  
Titik akhir VPC antarmuka yang sesuai dengan FIPS dapat dibuat untuk Wilayah `us-east-1` berikut: \$1 \$1 \$1 \$1. `us-east-2` `us-west-1` `us-west-2` `ca-central-1` `ca-west-1` Antarmuka yang sesuai dengan FIPS Titik akhir VPC mendukung keduanya dan lalu lintas. IPv4 IPv6 

Jika Anda mengaktifkan DNS pribadi untuk titik akhir, Anda dapat membuat permintaan API ke EBS langsung APIs menggunakan nama DNS default untuk Wilayah, misalnya,. `ebs.us-east-1.amazonaws.com`

# Log APIs panggilan langsung EBS menggunakan AWS CloudTrail
<a name="logging-ebs-apis-using-cloudtrail"></a>

EBS direct APIs terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan. CloudTrail menangkap panggilan yang dilakukan ke EBS langsung APIs sebagai acara. Panggilan yang diambil termasuk panggilan dari Konsol Manajemen AWS dan panggilan kode ke EBS langsung APIs. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke EBS langsung APIs, alamat IP dari mana permintaan dibuat, kapan dibuat, dan detail tambahan.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan berikut hal ini:
+ Baik permintaan tersebut dibuat dengan kredensial pengguna root atau pengguna.
+ Apakah permintaan dibuat atas nama pengguna IAM Identity Center.
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna gabungan.
+ Apakah permintaan tersebut dibuat oleh Layanan AWS lain.

CloudTrail aktif di Anda Akun AWS ketika Anda membuat akun dan Anda secara otomatis memiliki akses ke **riwayat CloudTrail Acara**. **Riwayat CloudTrail Acara menyediakan catatan** yang dapat dilihat, dapat dicari, dapat diunduh, dan tidak dapat diubah dari 90 hari terakhir dari peristiwa manajemen yang direkam dalam file. Wilayah AWS Untuk informasi selengkapnya, lihat [Bekerja dengan riwayat CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) di *Panduan AWS CloudTrail Pengguna*. Tidak ada CloudTrail biaya untuk melihat **riwayat Acara**.

Untuk catatan acara yang sedang berlangsung dalam 90 hari Akun AWS terakhir Anda, buat jejak atau penyimpanan data acara [CloudTrailDanau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**CloudTrail jalan setapak**  
*Jejak* memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Semua jalur yang dibuat menggunakan Konsol Manajemen AWS Multi-region. Anda dapat membuat jalur Single-region atau Multi-region dengan menggunakan. AWS CLI Membuat jejak Multi-wilayah disarankan karena Anda menangkap aktivitas Wilayah AWS di semua akun Anda. Jika Anda membuat jejak wilayah Tunggal, Anda hanya dapat melihat peristiwa yang dicatat di jejak. Wilayah AWS Untuk informasi selengkapnya tentang jejak, lihat [Membuat jejak untuk Anda Akun AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) dan [Membuat jejak untuk organisasi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) di *Panduan AWS CloudTrail Pengguna*.  
Anda dapat mengirimkan satu salinan acara manajemen yang sedang berlangsung ke bucket Amazon S3 Anda tanpa biaya CloudTrail dengan membuat jejak, namun, ada biaya penyimpanan Amazon S3. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/). Untuk informasi tentang harga Amazon S3, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**CloudTrail Penyimpanan data acara danau**  
*CloudTrail Lake* memungkinkan Anda menjalankan kueri berbasis SQL pada acara Anda. CloudTrail [Lake mengonversi peristiwa yang ada dalam format JSON berbasis baris ke format Apache ORC.](https://orc.apache.org/) ORC adalah format penyimpanan kolumnar yang dioptimalkan untuk pengambilan data dengan cepat. Peristiwa digabungkan ke dalam *penyimpanan data peristiwa*, yang merupakan kumpulan peristiwa yang tidak dapat diubah berdasarkan kriteria yang Anda pilih dengan menerapkan pemilih acara [tingkat lanjut](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Penyeleksi yang Anda terapkan ke penyimpanan data acara mengontrol peristiwa mana yang bertahan dan tersedia untuk Anda kueri. Untuk informasi lebih lanjut tentang CloudTrail Danau, lihat [Bekerja dengan AWS CloudTrail Danau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) di *Panduan AWS CloudTrail Pengguna*.  
CloudTrail Penyimpanan data acara danau dan kueri menimbulkan biaya. Saat Anda membuat penyimpanan data acara, Anda memilih [opsi harga](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) yang ingin Anda gunakan untuk penyimpanan data acara. Opsi penetapan harga menentukan biaya untuk menelan dan menyimpan peristiwa, dan periode retensi default dan maksimum untuk penyimpanan data acara. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

## Peristiwa APIs data langsung EBS di CloudTrail
<a name="cloudtrail-data-events"></a>

[Peristiwa data](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events) memberikan informasi tentang operasi sumber daya yang dilakukan pada atau di sumber daya. Ini juga dikenal sebagai operasi bidang data. Peristiwa data sering kali merupakan aktivitas bervolume tinggi. Secara default, CloudTrail tidak mencatat peristiwa data. **Riwayat CloudTrail peristiwa** tidak merekam peristiwa data.

Biaya tambahan berlaku untuk peristiwa data. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

Anda dapat mencatat peristiwa data untuk jenis APIs sumber daya langsung EBS menggunakan CloudTrail konsol, AWS CLI, atau operasi CloudTrail API. Untuk informasi selengkapnya tentang cara mencatat peristiwa data, lihat [Mencatat peristiwa data dengan Konsol Manajemen AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console) dan [Logging peristiwa data dengan AWS Command Line Interface](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI) di *Panduan AWS CloudTrail Pengguna*.

Anda dapat mencatat APIs operasi langsung EBS berikut sebagai peristiwa data.
+ [ListSnapshotBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListSnapshotBlocks.html)
+ [ListChangedBlocks](https://docs.aws.amazon.com/ebs/latest/APIReference/API_ListChangedBlocks.html)
+ [ GetSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_GetSnapshotBlock.html)
+ [PutSnapshotBlock](https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html)

**catatan**  
Jika Anda melakukan tindakan pada snapshot yang dibagikan dengan Anda, peristiwa data tidak dikirim ke AWS akun yang memiliki snapshot tersebut.

## Acara APIs manajemen langsung EBS di CloudTrail
<a name="cloudtrail-management-events"></a>

[Acara manajemen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) memberikan informasi tentang operasi manajemen yang dilakukan pada sumber daya di Anda Akun AWS. Ini juga dikenal sebagai operasi bidang kontrol. Secara default, CloudTrail mencatat peristiwa manajemen.

 APIs Layanan langsung EBS mencatat operasi bidang kontrol berikut ke CloudTrail sebagai peristiwa manajemen.
+ [ StartSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_StartSnapshot.html)
+ [ CompleteSnapshot](https://docs.aws.amazon.com/ebs/latest/APIReference/API_CompleteSnapshot.html)

## Contoh APIs acara langsung EBS
<a name="understanding-service-name-entries"></a>

Peristiwa mewakili permintaan tunggal dari sumber manapun dan mencakup informasi tentang operasi API yang diminta, tanggal dan waktu operasi, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, sehingga peristiwa tidak muncul dalam urutan tertentu.

Berikut ini adalah contoh CloudTrail peristiwa untuk EBS langsung APIs.

------
#### [ StartSnapshot ]

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "123456789012",
        "arn": "arn:aws:iam::123456789012:root",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2020-07-03T23:27:26Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "StartSnapshot",
    "awsRegion": "eu-west-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "PostmanRuntime/7.25.0",
    "requestParameters": {
        "volumeSize": 8,
        "clientToken": "token",
        "encrypted": true
    },
    "responseElements": {
        "snapshotId": "snap-123456789012",
        "ownerId": "123456789012",
        "status": "pending",
        "startTime": "Jul 3, 2020 11:27:26 PM",
        "volumeSize": 8,
        "blockSize": 524288,
        "kmsKeyArn": "HIDDEN_DUE_TO_SECURITY_REASONS"
    },
    "requestID": "be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
    "eventID": "6e12345-2a4e-417c-aa78-7594fEXAMPLE",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

------
#### [ CompleteSnapshot ]

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "123456789012",
        "arn": "arn:aws:iam::123456789012:root",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2020-07-03T23:28:24Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "CompleteSnapshot",
    "awsRegion": "eu-west-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "PostmanRuntime/7.25.0",
    "requestParameters": {
        "snapshotId": "snap-123456789012",
        "changedBlocksCount": 5
    },
    "responseElements": {
        "status": "completed"
    },
    "requestID": "be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
    "eventID": "6e12345-2a4e-417c-aa78-7594fEXAMPLE",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

------
#### [ ListSnapshotBlocks ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAT4HPB2AO3JEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/user",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2021-06-03T00:32:46Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "ListSnapshotBlocks",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "111.111.111.111",
    "userAgent": "PostmanRuntime/7.28.0",
    "requestParameters": {
        "snapshotId": "snap-abcdef01234567890",
        "maxResults": 100,
        "startingBlockIndex": 0
    },
    "responseElements": null,
    "requestID": "example6-0e12-4aa9-b923-1555eexample",
    "eventID": "example4-218b-4f69-a9e0-2357dexample",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::EC2::Snapshot",
            "ARN": "arn:aws:ec2:us-west-2::snapshot/snap-abcdef01234567890"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "123456789012",
    "eventCategory": "Data",
    "tlsDetails": {
        "tlsVersion": "TLSv1.2",
        "cipherSuite": "ECDHE-RSA-AES128-SHA",
        "clientProvidedHostHeader": "ebs.us-west-2.amazonaws.com"
    }
}
```

------
#### [ ListChangedBlocks ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAT4HPB2AO3JEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/user",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2021-06-02T21:11:46Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "ListChangedBlocks",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "111.111.111.111",
    "userAgent": "PostmanRuntime/7.28.0",
    "requestParameters": {
        "firstSnapshotId": "snap-abcdef01234567890",
        "secondSnapshotId": "snap-9876543210abcdef0",
        "maxResults": 100,
        "startingBlockIndex": 0
    },
    "responseElements": null,
    "requestID": "example0-f4cb-4d64-8d84-72e1bexample",
    "eventID": "example3-fac4-4a78-8ebb-3e9d3example",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::EC2::Snapshot",
            "ARN": "arn:aws:ec2:us-west-2::snapshot/snap-abcdef01234567890"
        },
       {
            "accountId": "123456789012",
            "type": "AWS::EC2::Snapshot",
            "ARN": "arn:aws:ec2:us-west-2::snapshot/snap-9876543210abcdef0"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "123456789012",
    "eventCategory": "Data",
    "tlsDetails": {
        "tlsVersion": "TLSv1.2",
        "cipherSuite": "ECDHE-RSA-AES128-SHA",
        "clientProvidedHostHeader": "ebs.us-west-2.amazonaws.com"
    }
}
```

------
#### [ GetSnapshotBlock ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAT4HPB2AO3JEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/user",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2021-06-02T20:43:05Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "GetSnapshotBlock",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "111.111.111.111",
    "userAgent": "PostmanRuntime/7.28.0",
    "requestParameters": {
        "snapshotId": "snap-abcdef01234567890",
        "blockIndex": 1,
        "blockToken": "EXAMPLEiL5E3pMPFpaDWjExM2/mnSKh1mQfcbjwe2mM7EwhrgCdPAEXAMPLE"
    },
    "responseElements": null,
    "requestID": "examplea-6eca-4964-abfd-fd9f0example",
    "eventID": "example6-4048-4365-a275-42e94example",
    "readOnly": true,
    "resources": [
        {
          "accountId": "123456789012",
          "type": "AWS::EC2::Snapshot",
          "ARN": "arn:aws:ec2:us-west-2::snapshot/snap-abcdef01234567890"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "123456789012",
    "eventCategory": "Data",
    "tlsDetails": {
        "tlsVersion": "TLSv1.2",
        "cipherSuite": "ECDHE-RSA-AES128-SHA",
        "clientProvidedHostHeader": "ebs.us-west-2.amazonaws.com"
    }
}
```

------
#### [ PutSnapshotBlock ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAT4HPB2AO3JEXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/user",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "user"
    },
    "eventTime": "2021-06-02T21:09:17Z",
    "eventSource": "ebs.amazonaws.com",
    "eventName": "PutSnapshotBlock",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "111.111.111.111",
    "userAgent": "PostmanRuntime/7.28.0",
    "requestParameters": {
        "snapshotId": "snap-abcdef01234567890",
        "blockIndex": 1,
        "dataLength": 524288,
        "checksum": "exampleodSGvFSb1e3kxWUgbOQ4TbzPurnsfVexample",
        "checksumAlgorithm": "SHA256"
    },
    "responseElements": {
        "checksum": "exampleodSGvFSb1e3kxWUgbOQ4TbzPurnsfVexample",
        "checksumAlgorithm": "SHA256"
    },
    "requestID": "example3-d5e0-4167-8ee8-50845example",
    "eventID": "example8-4d9a-4aad-b71d-bb31fexample",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::EC2::Snapshot",
            "ARN": "arn:aws:ec2:us-west-2::snapshot/snap-abcdef01234567890"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "123456789012",
    "eventCategory": "Data",
    "tlsDetails": {
        "tlsVersion": "TLSv1.2",
        "cipherSuite": "ECDHE-RSA-AES128-SHA",
        "clientProvidedHostHeader": "ebs.us-west-2.amazonaws.com"
    }
}
```

------

Untuk informasi tentang konten CloudTrail rekaman, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) di *Panduan AWS CloudTrail Pengguna*.

# Pertanyaan yang sering diajukan untuk EBS direct APIs
<a name="ebsapi-faq"></a>

**Dapatkah snapshot diakses menggunakan EBS langsung APIs jika memiliki status tertunda?**  
Tidak. Snapshot hanya dapat diakses jika memiliki status selesai.

**Apakah indeks blok yang dikembalikan oleh EBS langsung APIs dalam urutan numerik?**  
Ya. Indeks blok yang dikembalikan bersifat unik, dan dalam urutan numerik.

**Dapatkah saya mengirimkan permintaan dengan nilai MaxResults parameter di bawah 100?**  
Tidak. Nilai MaxResult parameter minimum yang dapat Anda gunakan adalah 100. Jika Anda mengirimkan permintaan dengan nilai MaxResult parameter di bawah 100, dan ada lebih dari 100 blok dalam snapshot, maka API akan mengembalikan setidaknya 100 hasil.

**Dapatkah saya menjalankan permintaan API secara bersamaan?**  
Anda dapat menjalankan permintaan API secara bersamaan. Pastikan untuk mencatat beban kerja lain yang mungkin berjalan di akun untuk menghindari hambatan. Anda juga harus membangun mekanisme coba ulang ke dalam APIs alur kerja langsung EBS Anda untuk menangani pelambatan, batas waktu, dan tidak tersedianya layanan. Untuk informasi selengkapnya, lihat [Optimalkan kinerja untuk EBS langsung APIs](ebsapi-performance.md).  
Tinjau kuota APIs layanan langsung EBS untuk menentukan permintaan API yang dapat Anda jalankan per detik. Untuk informasi selengkapnya, lihat [Titik Akhir dan Kuota Amazon Elastic Block Store](https://docs.aws.amazon.com/general/latest/gr/ebs-service.html#w542aab9d130b7c15) dalam *Referensi Umum AWS *.

**Saat menjalankan ListChangedBlocks aksi, apakah mungkin untuk mendapatkan respons kosong meskipun ada blok di snapshot?**  
Ya. Jika blok yang diubah berjumlah sedikit di snapshot, respons mungkin kosong tetapi API akan mengembalikan nilai token halaman berikutnya. Gunakan nilai token halaman berikutnya untuk melanjutkan ke halaman hasil berikutnya. Anda dapat mengonfirmasi bahwa Anda telah mencapai halaman terakhir hasil ketika API mengembalikan nilai token halaman berikutnya dari nol.

**Jika NextToken parameter ditentukan bersama dengan StartingBlockIndex parameter, mana dari keduanya yang digunakan?**  
Yang NextToken digunakan, dan StartingBlockIndex diabaikan.

**Berapa lama token blok dan token berikutnya berlaku?**  
Token blok berlaku selama tujuh hari, dan token berikutnya berlaku selama 60 menit.

**Apakah snapshot terenkripsi didukung?**  
Ya. Snapshot terenkripsi dapat diakses menggunakan EBS langsung. APIs  
Untuk mengakses snapshot terenkripsi, pengguna harus memiliki akses ke kunci KMS yang digunakan untuk mengenkripsi snapshot, dan tindakan dekripsi. AWS KMS Lihat [Kontrol akses ke EBS langsung APIs menggunakan IAM](ebsapi-permissions.md) bagian sebelumnya dalam panduan ini untuk AWS KMS kebijakan yang akan ditetapkan kepada pengguna.

**Apakah snapshot publik didukung?**  
Snapshot publik tidak didukung.

**Apakah snapshot lokal Amazon EBS didukung? AWS Outposts **  
Snapshot lokal Amazon EBS aktif tidak AWS Outposts didukung.

**Apakah blok snapshot daftar mengembalikan semua indeks blok dan token blok dalam snapshot, atau hanya yang memiliki data yang ditulis ke dalamnya?**  
Blok tersebut hanya mengembalikan indeks dan token blok yang memiliki data yang ditulis kepadanya.

**Bisakah saya mendapatkan riwayat panggilan API yang dilakukan oleh EBS langsung APIs di akun saya untuk tujuan analisis keamanan dan pemecahan masalah operasional?**  
Ya. Untuk menerima riwayat panggilan APIs API langsung EBS yang dilakukan di akun Anda, aktifkan. AWS CloudTrail Konsol Manajemen AWS Lihat informasi yang lebih lengkap di [Log APIs panggilan langsung EBS menggunakan AWS CloudTrail](logging-ebs-apis-using-cloudtrail.md).