AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
与 AWS SDK或DescribeSnapshots
一起使用 CLI
以下代码示例演示如何使用 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" } ] } ] }
有关更多信息,请参阅亚马逊EC2用户指南中的亚马逊EBS快照。
示例 2:描述基于筛选器的快照
以下
describe-snapshots
示例使用筛选条件将结果范围限定为您的 AWS 账户拥有的处于该pending
状态的快照。该示例使用--query
参数仅显示快照IDs和快照的启动时间。aws ec2 describe-snapshots \ --owner-ids
self
\ --filtersName=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
参数仅显示快照IDs。aws ec2 describe-snapshots \ --filters
Name=volume-id,Values=049df61146c4d7901
\ --query"Snapshots[*].[SnapshotId]"
\ --outputtext
输出:
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 账户在指定日期之前创建的所有快照。它仅显示快照IDs。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详细信息,请参阅 “DescribeSnapshots AWS CLI
命令参考”。
-
- PowerShell
-
- 用于 PowerShell
-
示例 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:此示例描述了带有 “名称” 标签的快照。
Get-EC2Snapshot | ? { $_.Tags.Count -gt 0 -and $_.Tags.Key -eq "Name" }
示例 3:此示例描述了带有 “名称” 标签且值为 “TestValue” 的快照。
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 参考DescribeSnapshots中的。
-
- Rust
-
- SDK对于 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详细信息,请参见DescribeSnapshots
中的 Rust AWS SDK API 参考。
-