AWS SDK 또는 CLI와 함께 DescribeSnapshots 사용 - AWS SDK 코드 예제

AWS SDK 예제 GitHub 리포지토리에 더 많은 AWS문서 SDK 예제가 있습니다.

AWS SDK 또는 CLI와 함께 DescribeSnapshots 사용

다음 코드 예시는 DescribeSnapshots의 사용 방법을 보여 줍니다.

CLI
AWS CLI

예제 1: 스냅샷을 설명하는 방법

다음 describe-snapshots 예제에서는 지정된 스냅샷을 설명합니다.

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

출력:

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

자세한 내용은 Amazon EC2 사용 설명서에서 Amazon EBS 스냅샷을 참조하세요.

예제 2: 필터를 기반으로 스냅샷을 설명하는 방법

다음 describe-snapshots 예제에서는 필터를 사용하여 결과 범위를 AWS 계정에서 소유한 pending 상태의 스냅샷으로 지정합니다. 이 예제에서는 --query 파라미터를 사용하여 스냅샷 ID 및 스냅샷이 시작된 시간만 표시합니다.

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

출력:

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

다음 describe-snapshots 예제에서는 필터를 사용하여 결과 범위를 지정된 리전에서 생성된 스냅샷으로 지정합니다. 이 예제에서는 --query 파라미터를 사용하여 스냅샷 ID만 표시합니다.

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

출력:

snap-1234567890abcdef0 snap-08637175a712c3fb9 ...

필터를 사용하는 추가 예제는 Amazon EC2 사용 설명서에서 리소스 나열 및 필터링을 참조하세요.

예제 3: 태그를 기반으로 스냅샷을 설명하는 방법

다음 describe-snapshots 예제에서는 태그 필터를 사용하여 결과 범위를 Stack=Prod 태그가 있는 스냅샷으로 지정합니다.

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

describe-snapshots 출력 예제는 예제 1을 참조하세요.

태그 필터를 사용하는 추가 예제는 Amazon EC2 사용 설명서에서 태그 작업을 참조하세요.

예제 4: 수명에 기반하여 스냅샷을 설명하는 방법

다음 describe-snapshots 예제에서는 JMesPath 표현식을 사용하여 지정된 날짜 이전에 AWS 계정에서 생성한 모든 스냅샷을 설명합니다. 스냅샷 ID만 표시합니다.

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

필터를 사용하는 추가 예제는 Amazon EC2 사용 설명서에서 리소스 나열 및 필터링을 참조하세요.

예제 5: 아카이브된 스냅샷만 보는 방법

다음 describe-snapshots 예제에서는 아카이브 티어에 저장된 스냅샷만 나열합니다.

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

출력:

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

자세한 내용을 알아보려면 Amazon Elastic Compute Cloud 사용 설명서에서 인스턴스 유형을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조에서 DescribeSnapshots를 참조하세요.

PowerShell
Tools for PowerShell V4

예제 1: 이 예제에서는 지정된 스냅샷을 설명합니다.

Get-EC2Snapshot -SnapshotId snap-12345678

출력:

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

예제 2: 이 예제에서는 'Name' 태그가 있는 스냅샷을 설명합니다.

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

예제 3: 이 예제에서는 값이 'TestValue'인 'Name' 태그가 있는 스냅샷을 설명합니다.

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

예제 4: 이 예제에서는 모든 스냅샷을 설명합니다.

Get-EC2Snapshot -Owner self
  • API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조(V4)DescribeSnapshots을 참조하세요.

Tools for PowerShell V5

예제 1: 이 예제에서는 지정된 스냅샷을 설명합니다.

Get-EC2Snapshot -SnapshotId snap-12345678

출력:

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

예제 2: 이 예제에서는 'Name' 태그가 있는 스냅샷을 설명합니다.

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

예제 3: 이 예제에서는 값이 'TestValue'인 'Name' 태그가 있는 스냅샷을 설명합니다.

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

예제 4: 이 예제에서는 모든 스냅샷을 설명합니다.

Get-EC2Snapshot -Owner self
  • API 세부 정보는 AWS Tools for PowerShell Cmdlet 참조(V5)DescribeSnapshots을 참조하세요.

Rust
SDK for Rust
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예 리포지토리에서 전체 예를 찾고 설정 및 실행하는 방법을 배워보세요.

스냅샷의 상태를 보여 줍니다.

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(()) }
  • API 세부 정보는 AWS SDK for Rust API 참조DescribeSnapshots을 참조하십시오.