Undefined Title

Undefined Title

AWS CLI filters by tags

AWS CLI使ってタグでEC2フィルタする方法、 何回書いても忘れるのでエントリーとして書く。 Valuesはカンマで区切って値を複数書ける。

aws ec2 describe-instances \
  --outout json \
  --filters "Name=tag:role,Values=webapp,db" \
  --query "Reservations[].Instances[].InstanceId"

2017-01-13追記 こんなの自分で書いてたのを見つけた。jq使うけどこっちのほうが出力が見やすいかな。

ls-ec2() {
  tag='dev*'
  aws ec2 describe-instances \
    --filter Name=tag:Name,Values="$tag" \
             "Name=instance-state-name,Values=running" \
    | jq '[.Reservations[].Instances[] | {
             Name: .Tags[]|select(.Key=="Name").Value,
             InstanceId: .InstanceId,
             InstanceType: .InstanceType,
             PublicIpAddress: .PublicIpAddress,
             VpcId: .VpcId,
             AvailabilityZone: .Placement.AvailabilityZone,
             SecurityGroups: .SecurityGroups
          }]'
}