class EcsDeployCli::DSL::Cron
Public Class Methods
new(name, config)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 8 def initialize(name, config) _options[:name] = name @config = config end
Public Instance Methods
as_definition(tasks)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 46 def as_definition(tasks) raise 'Missing task definition' unless _options[:task] input = { 'containerOverrides' => _options[:task].as_definition } input['taskRoleArn'] = _options[:task_role] if _options[:task_role] { task_name: _options[:task].name, rule: { name: _options[:name], schedule_expression: @cron_expression || @every || raise("Missing schedule expression.") }, input: input, ecs_parameters: { # task_definition_arn: task_definition[:task_definition_arn], task_count: _options[:task_count] || 1, launch_type: _options[:launch_type] || raise('Missing parameter launch_type'), network_configuration: { awsvpc_configuration: { subnets: _options[:subnets] || raise('Missing parameter subnets'), security_groups: _options[:security_groups] || [], assign_public_ip: _options[:assign_public_ip] ? 'ENABLED' : 'DISABLED' } }, platform_version: _options[:platform_version] || 'LATEST' } } end
assign_public_ip(value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 42 def assign_public_ip(value) _options[:assign_public_ip] = value end
launch_type(value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 38 def launch_type(value) _options[:launch_type] = value end
run_at(cron_expression)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 18 def run_at(cron_expression) @cron_expression = "cron(#{cron_expression})" end
run_every(interval)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 22 def run_every(interval) @every = "rate(#{interval})" end
security_groups(*value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 34 def security_groups(*value) _options[:security_groups] = value end
subnets(*value)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 30 def subnets(*value) _options[:subnets] = value end
task(name, &block)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 13 def task(name, &block) _options[:task] = Task.new(name.to_s, @config) _options[:task].instance_exec(&block) end
task_role(role)
click to toggle source
# File lib/ecs_deploy_cli/dsl/cron.rb, line 26 def task_role(role) _options[:task_role] = "arn:aws:iam::#{@config[:aws_profile_id]}:role/#{role}" end