Ejemplos de código de AWS SDK para las API directas de EBS
Los siguientes ejemplos de código indican cómo utilizar las API directas de EBS con un kit de desarrollo de software (SDK) de AWS.
Uso de StartSnapshot con un SDK de AWS o la CLI
En el siguiente ejemplo de código, se muestra cómo utilizar StartSnapshot.
- Rust
-
- SDK para 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())
}
Uso de PutSnapshotBlock con un SDK de AWS o la CLI
En el siguiente ejemplo de código, se muestra cómo utilizar PutSnapshotBlock.
- Rust
-
- SDK para 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(())
}
Uso de CompleteSnapshot con un SDK de AWS o la CLI
En el siguiente ejemplo de código, se muestra cómo utilizar CompleteSnapshot.
- Rust
-
- SDK para 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(())
}