Utilizzare DescribeSnapshots con un SDK AWS o una CLI - Esempi di codice per SDK AWS

Sono disponibili altri esempi per SDK AWS nel repository GitHub della documentazione degli esempi per SDK AWS.

Utilizzare DescribeSnapshots con un SDK AWS o una CLI

Gli esempi di codice seguenti mostrano come utilizzare DescribeSnapshots.

CLI
AWS CLI

Esempio 1: come descrivere uno snapshot

Nell’esempio di describe-snapshots seguente viene descritto lo snapshot specificato.

aws ec2 describe-snapshots \ --snapshot-ids snap-1234567890abcdef0

Output:

{ "Snapshots": [ { "Description": "This is my snapshot", "Encrypted": false, "VolumeId": "vol-049df61146c4d7901", "State": "completed", "VolumeSize": 8, "StartTime": "2019-02-28T21:28:32.000Z", "Progress": "100%", "OwnerId": "012345678910", "SnapshotId": "snap-01234567890abcdef", "Tags": [ { "Key": "Stack", "Value": "test" } ] } ] }

Per ulteriori informazioni, consulta Snapshot Amazon EBS nella Guida per l’utente di Amazon EC2.

Esempio 2: come descrivere snapshot in base ai filtri

Nell’esempio di describe-snapshots seguente vengono utilizzati filtri per rifinire i risultati in base agli snapshot posseduti dall’account AWS che si trovano nello stato pending. Nell’esempio viene utilizzato il parametro --query per visualizzare solamente gli ID degli snapshot e l’orario in cui lo snapshot è stato avviato.

aws ec2 describe-snapshots \ --owner-ids self \ --filters Name=status,Values=pending \ --query "Snapshots[*].{ID:SnapshotId,Time:StartTime}"

Output:

[ { "ID": "snap-1234567890abcdef0", "Time": "2019-08-04T12:48:18.000Z" }, { "ID": "snap-066877671789bd71b", "Time": "2019-08-04T02:45:16.000Z }, ... ]

Nell’esempio di describe-snapshots seguente vengono utilizzati filtri per rifinire i risultati in base agli snapshot creati dal volume specificato. Nell’esempio viene utilizzato il parametro --query per visualizzare solamente gli ID degli snapshot.

aws ec2 describe-snapshots \ --filters Name=volume-id,Values=049df61146c4d7901 \ --query "Snapshots[*].[SnapshotId]" \ --output text

Output:

snap-1234567890abcdef0 snap-08637175a712c3fb9 ...

Per ulteriori esempi di utilizzo dei filtri, consulta Elencare e filtrare le risorse nella Guida per l’utente di Amazon EC2.

Esempio 3: come descrivere snapshot in base ai tag

Nell’esempio di describe-snapshots seguente vengono utilizzati filtri per rifinire i risultati in base agli snapshot che hanno il tag Stack=Prod.

aws ec2 describe-snapshots \ --filters Name=tag:Stack,Values=prod

Per un esempio dell’output di describe-snapshots, consulta l’Esempio 1.

Per ulteriori esempi di utilizzo dei filtri di tag, consulta Utilizzo dei tag nella Guida per l’utente di Amazon EC2.

Esempio 4: come descrivere snapshot in base all’età

Nell’esempio di describe-snapshots seguente le espressioni JMESPath per descrivere tutti gli snapshot creati dall’account AWS prima della data specificata. Vengono visualizzati solo gli ID degli snapshot.

aws ec2 describe-snapshots \ --owner-ids 012345678910 \ --query "Snapshots[?(StartTime<='2020-03-31')].[SnapshotId]"

Per ulteriori esempi di utilizzo dei filtri, consulta Elencare e filtrare le risorse nella Guida per l’utente di Amazon EC2.

Esempio 5: come visualizzare solo gli snapshot archiviati

Nell’esempio di describe-snapshots seguente vengono elencati solo gli snapshot memorizzati nel livello archivio.

aws ec2 describe-snapshots \ --filters "Name=storage-tier,Values=archive"

Output:

{ "Snapshots": [ { "Description": "Snap A", "Encrypted": false, "VolumeId": "vol-01234567890aaaaaa", "State": "completed", "VolumeSize": 8, "StartTime": "2021-09-07T21:00:00.000Z", "Progress": "100%", "OwnerId": "123456789012", "SnapshotId": "snap-01234567890aaaaaa", "StorageTier": "archive", "Tags": [] }, ] }

Per ulteriori informazioni, consulta Visualizzazione degli snapshot archiviati nella Guida per l’utente di Amazon Elastic Compute Cloud.

  • Per informazioni dettagliate sull’API, consulta DescribeSnapshots nella documentazione di riferimento dei comandi della AWS CLI.

PowerShell
Strumenti per PowerShell V4

Esempio 1: questo esempio descrive lo snapshot specificato.

Get-EC2Snapshot -SnapshotId snap-12345678

Output:

DataEncryptionKeyId : Description : Created by CreateImage(i-1a2b3c4d) for ami-12345678 from vol-12345678 Encrypted : False KmsKeyId : OwnerAlias : OwnerId : 123456789012 Progress : 100% SnapshotId : snap-12345678 StartTime : 10/23/2014 6:01:28 AM State : completed StateMessage : Tags : {} VolumeId : vol-12345678 VolumeSize : 8

Esempio 2: questo esempio descrive gli snapshot contenenti un tag “Name”.

Get-EC2Snapshot | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "Name" }

Esempio 3: questo esempio descrive gli snapshot contenenti un tag “Name” con il valore “TestValue”.

Get-EC2Snapshot | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "Name" -and $_.Tags.Value -eq "TestValue" }

Esempio 4: questo esempio descrive tutti gli snapshot.

Get-EC2Snapshot -Owner self
  • Per informazioni dettagliate sull’API, consulta DescribeSnapshots nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V4).

Strumenti per PowerShell V5

Esempio 1: questo esempio descrive lo snapshot specificato.

Get-EC2Snapshot -SnapshotId snap-12345678

Output:

DataEncryptionKeyId : Description : Created by CreateImage(i-1a2b3c4d) for ami-12345678 from vol-12345678 Encrypted : False KmsKeyId : OwnerAlias : OwnerId : 123456789012 Progress : 100% SnapshotId : snap-12345678 StartTime : 10/23/2014 6:01:28 AM State : completed StateMessage : Tags : {} VolumeId : vol-12345678 VolumeSize : 8

Esempio 2: questo esempio descrive gli snapshot contenenti un tag “Name”.

Get-EC2Snapshot | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "Name" }

Esempio 3: questo esempio descrive gli snapshot contenenti un tag “Name” con il valore “TestValue”.

Get-EC2Snapshot | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "Name" -and $_.Tags.Value -eq "TestValue" }

Esempio 4: questo esempio descrive tutti gli snapshot.

Get-EC2Snapshot -Owner self
  • Per informazioni dettagliate sull’API, consulta DescribeSnapshots nella documentazione di riferimento dei cmdlet di AWS Strumenti per PowerShell (V5).

Rust
SDK per Rust
Nota

Ulteriori informazioni su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel Repository di esempi di codice AWS.

Mostra lo stato di uno snapshot.

async fn show_state(client: &Client, id: &str) -> Result<(), Error> { let resp = client .describe_snapshots() .filters(Filter::builder().name("snapshot-id").values(id).build()) .send() .await?; println!( "State: {}", resp.snapshots().first().unwrap().state().unwrap().as_ref() ); Ok(()) }
async fn show_snapshots(client: &Client) -> Result<(), Error> { // "self" represents your account ID. // You can list the snapshots for any account by replacing // "self" with that account ID. let resp = client.describe_snapshots().owner_ids("self").send().await?; let snapshots = resp.snapshots(); let length = snapshots.len(); for snapshot in snapshots { println!( "ID: {}", snapshot.snapshot_id().unwrap_or_default() ); println!( "Description: {}", snapshot.description().unwrap_or_default() ); println!("State: {}", snapshot.state().unwrap().as_ref()); println!(); } println!(); println!("Found {} snapshot(s)", length); println!(); Ok(()) }
  • Per informazioni dettagliate sull’API, consulta DescribeSnapshots nella documentazione di riferimento dell’API SDK AWS per Rust.