搜索 AWS CLI 输出并保存到变量

Search AWS CLI output and save to variable

我对批处理文件很陌生,但我正在尝试使用一个来自动创建一些 AWS CLI 实例。

到目前为止,我所拥有的非常简单——我的 .bat 文件中有一个命令,它将 运行 run-instances 命令:

aws ec2 run-instances --dry-run --image-id %ami_id% --key-name %keypair% --security-group-ids %security_group% --instance-type "r3.large" --subnet-id %az1b_subnet%

此命令需要一点点 运行,但最终会(没有 --dry-run)return json 关于创建的实例。我想搜索 json 输出并将 instance-id 保存到一个变量中,这样我就可以用它来通过 ec2 create-tags 命令标记我新创建的实例。

对我如何做到这一点有什么想法吗?我的第一次尝试是将 > test.txt 添加到上述命令的末尾,然后搜索 json 并设置变量。但是,test.txt 是在 CLI 命令完成并 return 编辑其输出之前立即创建的。

谢谢。

AWS Command-Line Interface (CLI) 有一个 --query 参数,可用于指定输出字段。结合--output text,可以提供Instance ID列表。

这是一个脚本,假设每个 run-instances 调用只启动一个实例(否则需要一个循环):

ID=`aws ec2 run-instances --image-id ami-xxxxxxxx --instance-type t1.micro --query 'Instances[0].InstanceId' --output text`

aws ec2 create-tags --resources $ID --tags Key=Name,Value=WebServer