我是批处理文件的新手,但我正在尝试使用一个来自动创建一些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
并返回其输出。
感谢。
答案 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