关于亚马逊网络服务:如何使用 aws cli 获取带有特定标签的最新 EBS 卷 ID?

How to get latest EBS volume Id with specific tag using aws cli?

我必须查询我的 AWS 账户以查找具有特定标签的最新创建的卷,并且应该将其附加到正在运行的 EC2 实例。如何使用 aws cli 和 powershell 实现此目的?

我使用下面的 powershell 脚本和 aws cli 来实现这一点,但是我无法找到确切的查询来使用 aws cli 命令替换变量 $volumeid 来获取最新的卷 ID。
任何帮助将不胜感激。

1
2
3
4
5
$volumeid ="aws ec2 describe-volumes --region us-east-1 --filters Name=tag:Application_Name,Values=APPone Name=tag:Name,Values=APP_test --query"Volumes[*].{ID:VolumeId}"

$instanceId = (New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")

Add-EC2Volume -VolumeId $volumeid  -InstanceId $instanceId -Device xvdf -Region us-east-1

您可以使用以下查询来使用特定标签获取最新的卷 ID:

1
aws ec2 describe-volumes --query Volumes[*].[VolumeId] --filters Name=tag-value,Values=testvolume --output text

上面的查询首先描述了所有卷的卷描述。

然后"--query" 只返回所有存在的卷的卷ID。

稍后它会根据您指定的标签过滤掉卷 id。

而"--output text" 将输出转换为可以存储在变量中的文本格式。

更多细节可以参考 describe-volumes

这应该会有所帮助。