lamma 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ require 'logger'
2
+
3
+ module Lamma
4
+ module Logger
5
+ end
6
+
7
+ @logger = ::Logger.new($stdout)
8
+
9
+ class << self
10
+ def logger
11
+ @logger
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,48 @@
1
+ module Lamma
2
+ class Runtime
3
+ attr_reader :type
4
+
5
+ def self.all
6
+ self.constants.map{|n| [n, self.const_get(n)] }.to_h
7
+ end
8
+
9
+ C_SHARP = 10
10
+ JAVA_8 = 20
11
+ NODE_43 = 30
12
+ EDGE_NODE_43 = 31
13
+ PYTHON_27 = 40
14
+
15
+ def initialize(str)
16
+ @type = case str
17
+ when /^c[s#](harp)?$/i
18
+ ::Lamma::Runtime::C_SHARP
19
+ when /^java([-_\.\s]*8?)?$/i
20
+ ::Lamma::Runtime::JAVA_8
21
+ when /^node([-_\.\s]*4(\.?3)?)?$/i
22
+ ::Lamma::Runtime::NODE_43
23
+ when /^edge[-_\.\s]*node(\s*4(\.?3)?)?$/i
24
+ ::Lamma::Runtime::EDGE_NODE_43
25
+ when /^python([-_\.\s]*2(\.?7)?)?$/i
26
+ ::Lamma::Runtime::PYTHON_27
27
+ else
28
+ raise ArgumentError.new("invalid runtime. #{str}")
29
+ end
30
+ end
31
+
32
+ NAME = {
33
+ C_SHARP => 'dotnetcore1.0',
34
+ JAVA_8 => 'java8',
35
+ NODE_43 => 'nodejs4.3',
36
+ EDGE_NODE_43 => 'nodejs4.3-edge',
37
+ PYTHON_27 => 'python2.7'
38
+ }
39
+
40
+ def to_s
41
+ NAME[@type]
42
+ end
43
+
44
+ def to_dirname
45
+ NAME[@type].gsub(/[\.-]/, '_')
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ import json
2
+
3
+ print('Loading function')
4
+
5
+ def lambda_handler(event, context):
6
+ #print("Received event: " + json.dumps(event, indent=2))
7
+ print("value1 = " + event['key1'])
8
+ print("value2 = " + event['key2'])
9
+ print("value3 = " + event['key3'])
10
+ return event['key1'] # Echo back the first key value
11
+ #raise Exception('Something went wrong')
@@ -0,0 +1,7 @@
1
+ funciton:
2
+ name: hello
3
+ role_arn: arn:aws:iam::<%= default_account_id || 'YOUR_ACCOUNT_ID'%>:role/<%= default_role_name || 'YOUR_ROLE_NAME'%>
4
+ description: Hello, world.
5
+ timeout: 3
6
+ memory_size: 128
7
+ region: <%= default_region || 'us-east-1' %>
@@ -0,0 +1,3 @@
1
+ module Lamma
2
+ VERSION = "0.2.1"
3
+ end
@@ -0,0 +1,15 @@
1
+ module Lamma
2
+ class VpcConfig
3
+ def initialize(yaml)
4
+ @subnet_ids = yaml.fetch('subnet_ids', nil)
5
+ @security_group_ids = yaml.fetch('security_group_ids', nil)
6
+ end
7
+
8
+ def to_h
9
+ {
10
+ subnet_ids: @subnet_ids,
11
+ security_group_ids: @security_group_ids
12
+ }
13
+ end
14
+ end
15
+ end
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lamma
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
+ platform: ruby
6
+ authors:
7
+ - Yuichiro Someya
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-03-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aws-sdk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: thor
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.19'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.19'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubyzip
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.2'
97
+ description: Deploy toolset for Amazon Lambda functions..
98
+ email:
99
+ - ayemos.y@gmail.com
100
+ executables:
101
+ - lamma
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".gitignore"
106
+ - ".rspec"
107
+ - ".rubocop.yml"
108
+ - ".travis.yml"
109
+ - Gemfile
110
+ - LICENSE.txt
111
+ - README.md
112
+ - Rakefile
113
+ - bin/console
114
+ - bin/setup
115
+ - examples/hello/lambda_function.py
116
+ - examples/hello/lammda.yml
117
+ - exe/lamma
118
+ - lamma.gemspec
119
+ - lib/lamma.rb
120
+ - lib/lamma/alias.rb
121
+ - lib/lamma/cli.rb
122
+ - lib/lamma/cli/create.rb
123
+ - lib/lamma/cli/deploy.rb
124
+ - lib/lamma/cli/init.rb
125
+ - lib/lamma/cli/rollback.rb
126
+ - lib/lamma/cli/show.rb
127
+ - lib/lamma/code.rb
128
+ - lib/lamma/dead_letter_config.rb
129
+ - lib/lamma/environment.rb
130
+ - lib/lamma/event_source_mapping.rb
131
+ - lib/lamma/function.rb
132
+ - lib/lamma/logger.rb
133
+ - lib/lamma/runtime.rb
134
+ - lib/lamma/templates/python2_7/lambda_function.py.erb
135
+ - lib/lamma/templates/python2_7/lamma.yml.erb
136
+ - lib/lamma/version.rb
137
+ - lib/lamma/vpc_config.rb
138
+ homepage: https://github.com/ayemos/Lamma
139
+ licenses:
140
+ - MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.5.2
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: Deploy toolset for Amazon Lambda functions.
162
+ test_files: []