Uso de DescribeSnapshots con un SDK de AWS o la CLI - Ejemplos de código de AWS SDK

Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos.

Uso de DescribeSnapshots con un SDK de AWS o la CLI

Los siguientes ejemplos de código muestran cómo utilizar DescribeSnapshots.

CLI
AWS CLI

Ejemplo 1: Describir una instantánea

En el siguiente ejemplo de describe-snapshots, se describe la instantánea especificada.

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

Salida:

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

Para obtener más información, consulte Instantáneas de Amazon EBS en la Guía del usuario de Amazon EC2.

Ejemplo 2: Describir las instantáneas con base en filtros

En el siguiente ejemplo de describe-snapshots, se usan filtros para limitar los resultados a las instantáneas que son propiedad de su cuenta de AWS y cuyo estado es pending. En el ejemplo se usa el parámetro --query para mostrar solo los ID de las instantáneas y la hora en que se inició la instantánea.

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

Salida:

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

En el siguiente ejemplo de describe-snapshots, se usan filtros para limitar los resultados a las instantáneas creadas a partir del volumen especificado. En el ejemplo se usa el parámetro --query para mostrar solo los ID de las instantáneas.

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

Salida:

snap-1234567890abcdef0 snap-08637175a712c3fb9 ...

Para ver ejemplos adicionales de uso de filtros, consulte Enumerar y filtrar los recursos en la Guía del usuario de Amazon EC2.

Ejemplo 3: describir las instantáneas con base en etiquetas

En el siguiente ejemplo de describe-snapshots, se usan filtros de etiquetas para limitar los resultados a las instantáneas que tienen la etiqueta Stack=Prod.

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

Para ver un ejemplo del resultado de describe-snapshots, consulte el ejemplo 1.

Para ver ejemplos adicionales de uso de filtros de etiquetas, consulte Trabajo con etiquetas en la Guía del usuario de Amazon EC2.

Ejemplo 4: describir las instantáneas con base en la antigüedad

En el siguiente ejemplo de describe-snapshots, se usan expresiones de JMESPath para describir todas las instantáneas creadas en su cuenta de AWS antes de la fecha especificada. Solo se muestran los ID de las instantáneas.

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

Para ver ejemplos adicionales de uso de filtros, consulte Enumerar y filtrar los recursos en la Guía del usuario de Amazon EC2.

Ejemplo 5: ver solo las instantáneas archivadas

En el siguiente ejemplo de describe-snapshots, se muestran solo las instantáneas que se almacenan en el nivel de archivo.

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

Salida:

{ "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": [] }, ] }

Para obtener más información, consulte Ver instantáneas archivadas en la Guía del usuario de Amazon Elastic Compute Cloud.

  • Para obtener información sobre la API, consulte DescribeSnapshots en la Referencia de comandos de la AWS CLI.

PowerShell
Herramientas para PowerShell V4

Ejemplo 1: En este ejemplo se describe la instantánea especificada.

Get-EC2Snapshot -SnapshotId snap-12345678

Salida:

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

Ejemplo 2: En este ejemplo se describen las instantáneas que tienen la etiqueta “Name”.

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

Ejemplo 3: En este ejemplo se describen las instantáneas que tienen la etiqueta “Name” con el valor “TestValue”.

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

Ejemplo 4: En este ejemplo se describen todas las instantáneas.

Get-EC2Snapshot -Owner self
  • Para obtener información sobre la API, consulte DescribeSnapshots en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).

Herramientas para PowerShell V5

Ejemplo 1: En este ejemplo se describe la instantánea especificada.

Get-EC2Snapshot -SnapshotId snap-12345678

Salida:

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

Ejemplo 2: En este ejemplo se describen las instantáneas que tienen la etiqueta “Name”.

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

Ejemplo 3: En este ejemplo se describen las instantáneas que tienen la etiqueta “Name” con el valor “TestValue”.

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

Ejemplo 4: En este ejemplo se describen todas las instantáneas.

Get-EC2Snapshot -Owner self
  • Para obtener información sobre la API, consulte DescribeSnapshots en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V5).

Rust
SDK para Rust
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

Muestra el estado de una instantánea.

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(()) }
  • Para obtener información sobre la API, consulte DescribeSnapshots en Referencia de la API de AWS SDK para Rust.