2013年9月30日月曜日

Windows環境でAWS CLIとjqを使って1LinerでInstanceをごにょごにょ。

CLI 1.0以降+jqを使って1Liner。

基本。

for /F %i in ('aws ec2 describe-instances --filters "Name=tag-key,Values=Stack" "Name=tag-value,Values=development" "Name=instance-state-name,Values=running" --profile profile1 ^| jq .Reservations[].Instances[].InstanceId') do (aws ec2 stop-instances --instance-ids %i --profile profile1)

この例ではTag"Stack"に"development"が設定されている、running中のInstanceを全てStopします。

describe-instancesのresponceをjqに渡してInstanceIdを抽出、InstanceIdのListでloopさせて、順番にstop-instancesしてるだけ。

後はdescribe-instancesのfilters変えたり、doの内容を変えたりすればごにょごにょできます。