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

时间:2015-07-28 19:59:51

标签: batch-file amazon-web-services windows-7 aws-cli

我是批处理文件的新手,但我正在尝试使用一个来自动创建一些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)返回关于创建的实例的json。我想搜索json输出并将instance-id保存到变量中,以便我可以使用它来使用ec2 create-tags命令标记新创建的实例。

关于我如何做到这一点的任何想法?我的第一次尝试是将> test.txt添加到上面命令的末尾,然后搜索json并设置变量。但是,在CLI命令完成之前立即创建test.txt并返回其输出。

感谢。

1 个答案:

答案 0 :(得分:5)

AWS Command-Line Interface (CLI)有一个--query参数,可用于指定输出字段。结合--output text,它可以提供实例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