Amazon web services Aws cli命令替换
我想列出卷的快照,但在输出中我还想看到该卷的名称(我是指标记)。 到目前为止,我正在使用:Amazon web services Aws cli命令替换,amazon-web-services,amazon-ec2,aws-cli,Amazon Web Services,Amazon Ec2,Aws Cli,我想列出卷的快照,但在输出中我还想看到该卷的名称(我是指标记)。 到目前为止,我正在使用: aws ec2 describe-snapshots 在回答中,我得到了如下信息: Snapshots: [ { "Description": "some description", "Encrypted": false, "OwnerId": "someownerid", "Progress": "100%", "
aws ec2 describe-snapshots
在回答中,我得到了如下信息:
Snapshots: [
{
"Description": "some description",
"Encrypted": false,
"OwnerId": "someownerid",
"Progress": "100%",
"SnapshotId": "snap-example",
"StartTime": "start time",
"State": "completed",
"VolumeId": "volume id",
"VolumeSize": 32
}
]
但我希望输出中还有一个卷名:
Snapshots: [
{
"Description": "some description",
"Encrypted": false,
"OwnerId": "someownerid",
"Progress": "100%",
"SnapshotId": "snap-example",
"StartTime": "start time",
"State": "completed",
"VolumeId": "volume id",
"VolumeSize": 32,
"VolumeName": "Volume Name" #additional key:val
}
]
如果您指的是snapshot的name标记,那么可以使用aws sdk编写一个简单的python或ruby脚本。例如,列出快照id及其名称标记值的ruby代码如下所示:
require 'aws-sdk'
# provide region and credentials in parameter
ec2 = Aws::EC2::Client.new
# paginate if you have a big list
resp = ec2.describe_snapshots
# iterate snapshots
resp.snapshots.each do |snapshot|
# iterate tags and print if it has a name tag.
snapshot.tags.each do |tag|
# print whatever is required/available in the response structure
puts "#{snapshot.snapshot_id} has the name tag with value #{tag.value}" if tag.key.casecmp? 'Name'
end
end
请参阅相应的语言api文档,以了解有关sdk和api调用用法的更多信息。请确保在使用之前设置sdk,它会根据您选择的语言而有所不同。例如,概述了设置ruby sdk的步骤。您可能还希望签出上述代码中使用的API引用 如果您指的是snapshot的name标记,那么可以使用aws sdk编写简单的python或ruby脚本。例如,列出快照id及其名称标记值的ruby代码如下所示:
require 'aws-sdk'
# provide region and credentials in parameter
ec2 = Aws::EC2::Client.new
# paginate if you have a big list
resp = ec2.describe_snapshots
# iterate snapshots
resp.snapshots.each do |snapshot|
# iterate tags and print if it has a name tag.
snapshot.tags.each do |tag|
# print whatever is required/available in the response structure
puts "#{snapshot.snapshot_id} has the name tag with value #{tag.value}" if tag.key.casecmp? 'Name'
end
end
请参阅相应的语言api文档,以了解有关sdk和api调用用法的更多信息。请确保在使用之前设置sdk,它会根据您选择的语言而有所不同。例如,概述了设置ruby sdk的步骤。您可能还希望签出上述代码中使用的API引用 aws ec2对快照进行了描述,如果快照存在的话。 类似于此:
{
"Description": "This snapshot is created by the AWS Backup service.",
"Tags": [
{
"Value": "On",
"Key": "Backup"
},
{
"Value": "Jenkins_Machine",
"Key": "Name"
},
{
"Value": "*********",
"Key": "aws:backup:source-resource"
}
],
"Encrypted": false,
"VolumeId": "vol-*****",
"State": "completed",
"VolumeSize": 250,
"StartTime": "2019-08-01T11:29:31.654Z",
"Progress": "100%",
"OwnerId": "******",
"SnapshotId": "snap-******"
}
要查看名称(假设快照中有名称),请执行以下操作:
这将为您提供如下输出:
[
{
"State": "completed",
"Description": "This snapshot is created by the AWS Backup service.",
"Name": "Jenkins_Machine"
}
]
字段被缩减,但您可以在查询结束时添加所需的字段,如下面的…State:State,VolumeId:VolumeId}
,其中我新添加了VolumeId
如果删除--snapshot id
参数,上述命令应返回所有快照,但是对于没有名称标记的快照,将打印null
编辑:
正如@krishna_mee2004所指出的,OP可能正在寻找特定卷的快照。如果是这种情况,您仍然可以使用此命令执行此操作。过滤器选项可用于根据卷ID进行过滤
aws ec2描述快照--过滤器名称=卷id,值=vol-****--查询“快照[*]”。{Description:Description,Name:Tags[?Key=`Name`].Value |[0],State:State,VolumeId:VolumeId}
aws ec2描述快照是否存在。
类似于此:
{
"Description": "This snapshot is created by the AWS Backup service.",
"Tags": [
{
"Value": "On",
"Key": "Backup"
},
{
"Value": "Jenkins_Machine",
"Key": "Name"
},
{
"Value": "*********",
"Key": "aws:backup:source-resource"
}
],
"Encrypted": false,
"VolumeId": "vol-*****",
"State": "completed",
"VolumeSize": 250,
"StartTime": "2019-08-01T11:29:31.654Z",
"Progress": "100%",
"OwnerId": "******",
"SnapshotId": "snap-******"
}
要查看名称(假设快照中有名称),请执行以下操作:
这将为您提供如下输出:
[
{
"State": "completed",
"Description": "This snapshot is created by the AWS Backup service.",
"Name": "Jenkins_Machine"
}
]
字段被缩减,但您可以在查询结束时添加所需的字段,如下面的…State:State,VolumeId:VolumeId}
,其中我新添加了VolumeId
如果删除--snapshot id
参数,上述命令应返回所有快照,但是对于没有名称标记的快照,将打印null
编辑:
正如@krishna_mee2004所指出的,OP可能正在寻找特定卷的快照。如果是这种情况,您仍然可以使用此命令执行此操作。过滤器选项可用于根据卷ID进行过滤
aws ec2描述快照--过滤器名称=卷id,值=vol-****--查询'快照[*.{Description:Description,Name:Tags[?Key=`Name`].Value |[0],State:State,VolumeId:VolumeId}'
没有VolumeName
属性。您是指卷的Name
标记吗?您必须为每个快照合并调用以下内容的结果:aws ec2 descripe tags--filters Name=resource id,Values=snap-1234
。或者考虑在Python中编写一个小脚本。jARMOD过滤器将只给匹配值的快照提供结果。而实际的CLI输出包括标记,因此请参见下面我的答案,以了解如何提取这些标记。@Yogesh\u D您是对的,谢谢。我在描述快照的输出中看到零个标记,并假设它们没有被报告。没有VolumeName
属性。您是指卷的Name
标记吗?您必须为每个快照合并调用以下内容的结果:aws ec2 descripe tags--filters Name=resource id,Values=snap-1234
。或者考虑在Python中编写一个小脚本。jARMOD过滤器将只给匹配值的快照提供结果。而实际的CLI输出包括标记,因此请参见下面我的答案,以了解如何提取这些标记。@Yogesh\u D您是对的,谢谢。我在我的描述快照的输出中看到零个标记,并假设它们没有被报告。我相信他们想要创建快照的卷的名称。在这种情况下,至少需要2个命令(描述快照和描述卷)才能获取所有信息。如果卷不存在,脚本应该能够工作。更简单的方法是用Python或NodeJS之类的编程语言编写脚本。@krishna_mee2004,重读这个问题也许你是对的。让我更新一下答案,您仍然可以使用一个命令来执行此操作。我相信他们想要创建快照的卷的名称。在这种情况下,至少需要2个命令(描述快照和描述卷)才能获取所有信息。如果卷不存在,脚本应该能够工作。更简单的方法是用Python或NodeJS之类的编程语言编写脚本。@krishna_mee2004,重读这个问题也许你是对的。让我更新答案,您仍然可以使用一个命令来完成此操作。