Class: LambdaAliasSwitcher

Inherits:
Object
  • Object
show all
Defined in:
lib/lambda_alias_switcher.rb

Instance Method Summary collapse

Instance Method Details

#switch_alias(function_name:, alias_arg:, function_version: '$LATEST') ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/lambda_alias_switcher.rb', line 5

def switch_alias(function_name:,
                 alias_arg:,
                 function_version: '$LATEST')
  fail 'function name is nil' if function_name.nil?
  fail 'alias arg is nil' if alias_arg.nil?

  client = Aws::Lambda::Client.new

  list_aliases_response = client.list_aliases function_name: function_name

  found_alias = list_aliases_response.aliases.find do |alias_iter|
    alias_iter.name == alias_arg
  end

  if found_alias.nil?

    create_alias_response = client.create_alias function_name: function_name,
                                                name: alias_arg,
                                                function_version: function_version

    create_alias_response.alias_arn
  else
    update_alias_response = client.update_alias function_name: function_name,
                                                name: alias_arg,
                                                function_version: function_version
    update_alias_response.alias_arn
  end
end