class RenderCFN::LoadBalancer
Public Class Methods
new( arguments)
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 12 def initialize( arguments) #name, lbPort, instancePort, idleTimeout = 60) @idleTimeout = arguments[:idleTimeout] or 60 @name = "#{arguments[:name]}ElasticLoadBalancer" @awsObject = { @name => { 'Type' => 'AWS::ElasticLoadBalancing::LoadBalancer', 'Properties' => { 'SecurityGroups' => [], 'Scheme' => arguments[:scheme] || 'internal', 'CrossZone' => true, 'ConnectionSettings' => { 'IdleTimeout' => @idleTimeout }, 'ConnectionDrainingPolicy' => { 'Enabled' => true, 'Timeout' => 60 }, 'Subnets' => arguments[:subnetList], 'Tags' => [ { 'Key' => 'application', 'Value' => arguments[:serviceTitle] }, { 'Key' => 'StackName', 'Value' => @@stackName }, ], 'HealthCheck' => { 'Target' => "HTTP:#{arguments[:instancePort]}/status-check", 'Interval' => 6, 'Timeout' => 5, 'UnhealthyThreshold' => 2, 'HealthyThreshold' => 2, }, 'Listeners' => [ { 'Protocol' => 'HTTP', 'LoadBalancerPort' => 80, 'InstancePort' => arguments[:instancePort] }, #{ # 'Protocol' => 'HTTP', # 'LoadBalancerPort' => 9876, # 'InstancePort' => 9876 #} ] } } } if arguments[:lbPort] != 80 @awsObject['Properties']['Listeners'].push ( { 'Protocol' => 'HTTP', 'LoadBalancerPort' => arguments[:lbport], 'InstancePort' => arguments[:instancePort] } ) end end
Public Instance Methods
addListener( lbPort, instancePort)
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 79 def addListener( lbPort, instancePort) @awsObject[@name]['Properties']['Listeners'].push ( { 'Protocol' => 'HTTP', 'LoadBalancerPort' => lbPort, 'InstancePort' => instancePort } ) end
addSecurityGroup( securityGroup)
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 75 def addSecurityGroup( securityGroup) @awsObject[@name]['Properties']['SecurityGroups'].push( {'Ref' => "#{securityGroup}"} ) end
addSslListener( lbPort, instancePort, certificate)
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 89 def addSslListener( lbPort, instancePort, certificate) @awsObject[@name]['Properties']['Listeners'].push ( { 'Protocol' => 'HTTPS', 'LoadBalancerPort' => lbPort, 'InstancePort' => instancePort, 'SSLCertificateId' => certificate } ) end
createLoadBalancer()
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 65 def createLoadBalancer() # create load balancer via sdk # store load balancer ARN for use when attaching listeners # How to get it to associate with the stack so it's deleted on stack deletion? end
modifyHealthCheck( newHealthCheck)
click to toggle source
# File lib/renderCFN/applicationLoadBalancerV2.rb, line 71 def modifyHealthCheck( newHealthCheck) @awsObject[@name]['Properties']['HealthCheck']['Target'] = newHealthCheck end