class Lamma::Alias

Attributes

description[RW]
version[RW]

Public Class Methods

new(function, name, version=nil, description=nil) click to toggle source
# File lib/lamma/alias.rb, line 5
def initialize(function, name, version=nil, description=nil)
  @function = function
  @name = name
  @version = version
  @description = description
end

Public Instance Methods

create() click to toggle source
# File lib/lamma/alias.rb, line 12
def create
  lambda_client.create_alias({
    function_name: @function.name,
    name: name, # 'name' indicates the self
    function_version: @version,
    description: description
  })
end
create_or_update() click to toggle source
# File lib/lamma/alias.rb, line 30
def create_or_update
  if remote_exist?
    update
  else
    create
  end
end
name() click to toggle source
# File lib/lamma/alias.rb, line 38
def name
  @name.upcase
end
remote_exist?() click to toggle source
# File lib/lamma/alias.rb, line 42
def remote_exist?
  begin
    lambda_client.get_alias({
      function_name: @function.name,
      name: name
    })
  rescue Aws::Lambda::Errors::ResourceNotFoundException
    false
  end
end
remote_version() click to toggle source
# File lib/lamma/alias.rb, line 53
def remote_version
  begin
    lambda_client.get_alias({
      function_name: @function.name,
      name: name
    }).function_version
  rescue Aws::Lambda::Errors::ResourceNotFoundException
    nil
  end
end
update() click to toggle source
# File lib/lamma/alias.rb, line 21
def update
  lambda_client.update_alias({
    function_name: @function.name,
    name: name, # 'name' indicates the self
    function_version: @version,
    description: description
  })
end

Private Instance Methods

lambda_client() click to toggle source
# File lib/lamma/alias.rb, line 70
def lambda_client
  @lambda_client ||= Aws::Lambda::Client.new(region: @function.region)
end