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