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

jos*_*t91 4 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%
Run Code Online (Sandbox Code Playgroud)

该命令需要一点时间才能运行,但最终(没有--dry-run)将返回有关所创建实例的json。我想搜索该json输出并将其保存instance-id到变量中,以便可以使用它来通过ec2 create-tags命令标记新创建的实例。

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

谢谢。

Joh*_*ein 8

AWS命令行界面(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
Run Code Online (Sandbox Code Playgroud)