Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
Amazon SDK code examples for EBS direct APIs
The following code examples show how to use EBS direct APIs with an Amazon software development kit (SDK).
Use StartSnapshot
with an Amazon SDK or CLI
The following code example shows how to use StartSnapshot
.
- Rust
-
- SDK for Rust
-
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())
}
Use PutSnapshotBlock
with an Amazon SDK or CLI
The following code example shows how to use PutSnapshotBlock
.
- Rust
-
- SDK for Rust
-
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(())
}
Use CompleteSnapshot
with an Amazon SDK or CLI
The following code example shows how to use CompleteSnapshot
.
- Rust
-
- SDK for Rust
-
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(())
}