#!/usr/bin/env ruby
require 'json'
elbs = `aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[].LoadBalancerName'`
puts "| ELB Name | ConnectionDraining | ConnectionDraining Timeout | CrossZoneLoadBalancing | ConnectionSettingsTimeout | AccessLog |"
puts "| --- | --- | --- | --- | --- | --- |"
elbs.each_line do |elb|
elb = elb.chomp
attributes = JSON.load(`aws elb describe-load-balancer-attributes --load-balancer-name #{elb}`)
connection_during = attributes['LoadBalancerAttributes']['ConnectionDraining']['Enabled']
connection_during_timeout = attributes['LoadBalancerAttributes']['ConnectionDraining']['Timeout'] || '-'
cross_zone = attributes['LoadBalancerAttributes']['CrossZoneLoadBalancing']['Enabled']
connection_setting_idle = attributes['LoadBalancerAttributes']['ConnectionSettings']['IdleTimeout']
access_log = attributes['LoadBalancerAttributes']['AccessLog']['Enabled']
puts "| #{elb.chomp} | #{connection_during} | #{connection_during_timeout} | #{cross_zone} | #{connection_setting_idle} | #{access_log} |"
end '.LoadBalancerDescriptions[].LoadBalancerName'
| ELB Name | ConnectionDraining | ConnectionDraining Timeout | CrossZoneLoadBalancing | ConnectionSettingsTimeout | AccessLog |
| --- | --- | --- | --- | --- | --- |
| "foo-elb" | true | 300 | true | 60 | false |
とかで出る