funktor 0.7.24 → 0.7.25
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/funktor-testapp/Dockerfile +7 -1
- data/funktor-testapp/Gemfile +2 -0
- data/funktor-testapp/Gemfile.lock +4 -0
- data/funktor-testapp/funktor_config/boot.rb +3 -0
- data/funktor-testapp/serverless.yml +0 -4
- data/lib/funktor/cli/init.rb +1 -15
- data/lib/funktor/cli/templates/Dockerfile +7 -1
- data/lib/funktor/cli/templates/Gemfile +1 -1
- data/lib/funktor/cli/templates/funktor_config/boot.rb +3 -0
- data/lib/funktor/cli/templates/funktor_init.yml.tt +2 -2
- data/lib/funktor/cli/templates/package.json +0 -1
- data/lib/funktor/cli/templates/serverless.yml +0 -4
- data/lib/funktor/version.rb +1 -1
- metadata +2 -6
- data/funktor-testapp/funktor_config/package.yml +0 -11
- data/funktor-testapp/funktor_config/ruby_layer.yml +0 -11
- data/lib/funktor/cli/templates/funktor_config/package.yml +0 -11
- data/lib/funktor/cli/templates/funktor_config/ruby_layer.yml +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4efb77bf5008c8b7045610883ea0f0229a8ebaa89d1b5f3dd4846c3e0bc7ddd4
|
4
|
+
data.tar.gz: ad9b24108efdc8747d863bc9afbf0b47fe9508c6804f48ca80eba314e681a474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1d9c1547d1195bab096469043bef6bd63d4183b005a1ee6e08d60ad5f894fe79d0bdeaa33a446966566904a99a088045c66348f0eb9ca5aca1543b75adf9595
|
7
|
+
data.tar.gz: ead715f1b9673487067fea8206e0bb9a0fb74bcc2a79e43bf3e07703df9a5d3f0fc3361bcde55357ef223078ed7dc1e215d325354614f379138142cc33e07bc3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
funktor (0.7.
|
4
|
+
funktor (0.7.25)
|
5
5
|
activesupport
|
6
6
|
aws-sdk-dynamodb (~> 1.62)
|
7
7
|
aws-sdk-sqs (~> 1.37)
|
@@ -22,7 +22,7 @@ GEM
|
|
22
22
|
addressable (2.8.0)
|
23
23
|
public_suffix (>= 2.0.2, < 5.0)
|
24
24
|
aws-eventstream (1.2.0)
|
25
|
-
aws-partitions (1.
|
25
|
+
aws-partitions (1.596.0)
|
26
26
|
aws-sdk-core (3.131.1)
|
27
27
|
aws-eventstream (~> 1, >= 1.0.2)
|
28
28
|
aws-partitions (~> 1, >= 1.525.0)
|
data/funktor-testapp/Dockerfile
CHANGED
@@ -8,7 +8,7 @@ FROM public.ecr.aws/lambda/ruby:2.7 AS build_image
|
|
8
8
|
#ENV BUNDLE_GEM__FURY__IO=${BUNDLE_GEM__FURY__IO}
|
9
9
|
|
10
10
|
# First we install some stuff that we need for gems that have to compile native extensions
|
11
|
-
|
11
|
+
RUN yum groupinstall "Development Tools" -y
|
12
12
|
#RUN yum install -y amazon-linux-extras
|
13
13
|
#RUN amazon-linux-extras enable postgresql11
|
14
14
|
#RUN yum install -y postgresql-devel
|
@@ -57,6 +57,12 @@ FROM public.ecr.aws/lambda/ruby:2.7 AS deploy_image
|
|
57
57
|
COPY --from=build_image /var/task .
|
58
58
|
COPY . .
|
59
59
|
|
60
|
+
# Now we prime the bootsnap cache to minimize cold start times.
|
61
|
+
|
62
|
+
ENV BOOTSNAP_CACHE_DIR=/var/task/tmp/cache
|
63
|
+
RUN bundle exec bootsnap precompile --gemfile . \
|
64
|
+
&& SKIP_ENV=true bundle exec ruby lambda_event_handlers/incoming_job_handler.rb
|
65
|
+
|
60
66
|
# And finally we have the CMD for the deployed container
|
61
67
|
# You can overwrite command in `serverless.yml` template
|
62
68
|
CMD [ "app.LambdaFunction::Handler.process" ]
|
data/funktor-testapp/Gemfile
CHANGED
@@ -22,11 +22,14 @@ GEM
|
|
22
22
|
aws-sigv4 (~> 1.1)
|
23
23
|
aws-sigv4 (1.2.4)
|
24
24
|
aws-eventstream (~> 1, >= 1.0.2)
|
25
|
+
bootsnap (1.12.0)
|
26
|
+
msgpack (~> 1.2)
|
25
27
|
concurrent-ruby (1.1.9)
|
26
28
|
i18n (1.8.10)
|
27
29
|
concurrent-ruby (~> 1.0)
|
28
30
|
jmespath (1.4.0)
|
29
31
|
minitest (5.14.4)
|
32
|
+
msgpack (1.5.2)
|
30
33
|
require_all (1.5.0)
|
31
34
|
thor (1.1.0)
|
32
35
|
tzinfo (2.0.4)
|
@@ -41,6 +44,7 @@ DEPENDENCIES
|
|
41
44
|
activesupport
|
42
45
|
aws-sdk-dynamodb (~> 1.62)
|
43
46
|
aws-sdk-sqs (~> 1.37)
|
47
|
+
bootsnap
|
44
48
|
require_all (~> 1.0)
|
45
49
|
thor
|
46
50
|
|
@@ -5,6 +5,9 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
|
5
5
|
require "rubygems"
|
6
6
|
require 'bundler/setup'
|
7
7
|
|
8
|
+
# load bootsnap for faster cold starts
|
9
|
+
require 'bootsnap/setup'
|
10
|
+
|
8
11
|
# Set up gems listed in the Gemfile.
|
9
12
|
Bundler.require(:default, :production)
|
10
13
|
|
@@ -52,9 +52,6 @@ custom:
|
|
52
52
|
# commands. Or fallsback to what we have set in the provider section.
|
53
53
|
stage: ${self:provider.stage, 'dev'}
|
54
54
|
funktor: ${file(funktor_config/funktor.yml)}
|
55
|
-
#rubyLayer: ${file(funktor_config/ruby_layer.yml)}
|
56
|
-
|
57
|
-
#package: ${file(funktor_config/package.yml)}
|
58
55
|
|
59
56
|
functions:
|
60
57
|
IncomingJobHandler: ${file(funktor_config/function_definitions/incoming_job_handler.yml)}
|
@@ -72,4 +69,3 @@ resources:
|
|
72
69
|
- ${file(funktor_config/resources/jobs_table.yml)}
|
73
70
|
|
74
71
|
plugins:
|
75
|
-
#- serverless-ruby-layer
|
data/lib/funktor/cli/init.rb
CHANGED
@@ -33,27 +33,13 @@ module Funktor
|
|
33
33
|
def funktor_config_yml
|
34
34
|
#template "funktor_config.yml", File.join("funktor_config.yml")
|
35
35
|
template File.join("funktor_config", "funktor.yml"), File.join("funktor_config", "funktor.yml")
|
36
|
-
template File.join("funktor_config", "ruby_layer.yml"), File.join("funktor_config", "ruby_layer.yml")
|
37
|
-
template File.join("funktor_config", "package.yml"), File.join("funktor_config", "package.yml")
|
38
36
|
template File.join("funktor_config", "environment.yml"), File.join("funktor_config", "environment.yml")
|
39
37
|
template File.join("funktor_config", "boot.rb"), File.join("funktor_config", "boot.rb")
|
40
38
|
end
|
41
39
|
|
42
40
|
def package_json
|
43
41
|
if File.exist?("package.json")
|
44
|
-
|
45
|
-
if package_data =~ /serverless-ruby-layer/
|
46
|
-
say "serverless-ruby-layer is already installed in package.json"
|
47
|
-
else
|
48
|
-
if File.exist?("package-lock.json")
|
49
|
-
run "npm install serverless-ruby-layer@1.4.0 --save-dev"
|
50
|
-
# TODO - Add handers for yarn and what not
|
51
|
-
elsif File.exist?("yarn.lock")
|
52
|
-
run "yarn add --dev serverless-ruby-layer@1.4.0"
|
53
|
-
else
|
54
|
-
say "You should install serverless-ruby-layer version 1.4.0 using yor package manager of choice."
|
55
|
-
end
|
56
|
-
end
|
42
|
+
say "package.json already exists"
|
57
43
|
else
|
58
44
|
template "package.json", File.join("package.json")
|
59
45
|
end
|
@@ -8,7 +8,7 @@ FROM public.ecr.aws/lambda/ruby:2.7 AS build_image
|
|
8
8
|
#ENV BUNDLE_GEM__FURY__IO=${BUNDLE_GEM__FURY__IO}
|
9
9
|
|
10
10
|
# First we install some stuff that we need for gems that have to compile native extensions
|
11
|
-
|
11
|
+
RUN yum groupinstall "Development Tools" -y
|
12
12
|
#RUN yum install -y amazon-linux-extras
|
13
13
|
#RUN amazon-linux-extras enable postgresql11
|
14
14
|
#RUN yum install -y postgresql-devel
|
@@ -57,6 +57,12 @@ FROM public.ecr.aws/lambda/ruby:2.7 AS deploy_image
|
|
57
57
|
COPY --from=build_image /var/task .
|
58
58
|
COPY . .
|
59
59
|
|
60
|
+
# Now we prime the bootsnap cache to minimize cold start times.
|
61
|
+
|
62
|
+
ENV BOOTSNAP_CACHE_DIR=/var/task/tmp/cache
|
63
|
+
RUN bundle exec bootsnap precompile --gemfile . \
|
64
|
+
&& SKIP_ENV=true bundle exec ruby lambda_event_handlers/incoming_job_handler.rb
|
65
|
+
|
60
66
|
# And finally we have the CMD for the deployed container
|
61
67
|
# You can overwrite command in `serverless.yml` template
|
62
68
|
CMD [ "app.LambdaFunction::Handler.process" ]
|
@@ -5,6 +5,9 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
|
5
5
|
require "rubygems"
|
6
6
|
require 'bundler/setup'
|
7
7
|
|
8
|
+
# load bootsnap for faster cold starts
|
9
|
+
require 'bootsnap/setup'
|
10
|
+
|
8
11
|
# Set up gems listed in the Gemfile.
|
9
12
|
Bundler.require(:default, :production)
|
10
13
|
|
@@ -38,12 +38,12 @@ handlerDefaults:
|
|
38
38
|
# Visibility timeout should only come into play in the case of Funktor errors.
|
39
39
|
# Application level errors should be handled by Funktor retry mechanisms.
|
40
40
|
# The visibility timeout should be at least as long as the function timeout, and up to 6 times larger.
|
41
|
-
visibilityTimeout:
|
41
|
+
visibilityTimeout: 300
|
42
42
|
|
43
43
|
# Max recieve count affects how many times a job will retry that has been throttled at the SQS -> Lambda boundary.
|
44
44
|
# Amazon recommend this be at least 5, but I've found that higher numbers are better to avoid legit jobs ending
|
45
45
|
# up in the dead letter queue
|
46
|
-
maxReceiveCount:
|
46
|
+
maxReceiveCount: 120
|
47
47
|
|
48
48
|
# Incoming Job Handler
|
49
49
|
incomingJobHandler:
|
@@ -49,9 +49,6 @@ custom:
|
|
49
49
|
# commands. Or fallsback to what we have set in the provider section.
|
50
50
|
stage: ${self:provider.stage, 'dev'}
|
51
51
|
funktor: ${file(funktor_config/funktor.yml)}
|
52
|
-
#rubyLayer: ${file(funktor_config/ruby_layer.yml)}
|
53
|
-
|
54
|
-
#package: ${file(funktor_config/package.yml)}
|
55
52
|
|
56
53
|
functions:
|
57
54
|
<%- all_function_definitions.each do |function_definition| -%>
|
@@ -64,4 +61,3 @@ resources:
|
|
64
61
|
<%- end -%>
|
65
62
|
|
66
63
|
plugins:
|
67
|
-
#- serverless-ruby-layer
|
data/lib/funktor/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: funktor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Green
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-sqs
|
@@ -199,14 +199,12 @@ files:
|
|
199
199
|
- funktor-testapp/funktor_config/iam_permissions/jobs_table_secondary_index.yml
|
200
200
|
- funktor-testapp/funktor_config/iam_permissions/low_concurrency_queue.yml
|
201
201
|
- funktor-testapp/funktor_config/iam_permissions/ssm.yml
|
202
|
-
- funktor-testapp/funktor_config/package.yml
|
203
202
|
- funktor-testapp/funktor_config/resources/cloudwatch_dashboard.yml
|
204
203
|
- funktor-testapp/funktor_config/resources/default_queue.yml
|
205
204
|
- funktor-testapp/funktor_config/resources/incoming_job_queue.yml
|
206
205
|
- funktor-testapp/funktor_config/resources/incoming_job_queue_user.yml
|
207
206
|
- funktor-testapp/funktor_config/resources/jobs_table.yml
|
208
207
|
- funktor-testapp/funktor_config/resources/low_concurrency_queue.yml
|
209
|
-
- funktor-testapp/funktor_config/ruby_layer.yml
|
210
208
|
- funktor-testapp/funktor_init.yml
|
211
209
|
- funktor-testapp/lambda_event_handlers/default_queue_handler.rb
|
212
210
|
- funktor-testapp/lambda_event_handlers/incoming_job_handler.rb
|
@@ -242,13 +240,11 @@ files:
|
|
242
240
|
- lib/funktor/cli/templates/funktor_config/iam_permissions/jobs_table_secondary_index.yml
|
243
241
|
- lib/funktor/cli/templates/funktor_config/iam_permissions/ssm.yml
|
244
242
|
- lib/funktor/cli/templates/funktor_config/iam_permissions/work_queue.yml
|
245
|
-
- lib/funktor/cli/templates/funktor_config/package.yml
|
246
243
|
- lib/funktor/cli/templates/funktor_config/resources/cloudwatch_dashboard.yml
|
247
244
|
- lib/funktor/cli/templates/funktor_config/resources/incoming_job_queue.yml
|
248
245
|
- lib/funktor/cli/templates/funktor_config/resources/incoming_job_queue_user.yml
|
249
246
|
- lib/funktor/cli/templates/funktor_config/resources/jobs_table.yml
|
250
247
|
- lib/funktor/cli/templates/funktor_config/resources/work_queue.yml
|
251
|
-
- lib/funktor/cli/templates/funktor_config/ruby_layer.yml
|
252
248
|
- lib/funktor/cli/templates/funktor_init.yml.tt
|
253
249
|
- lib/funktor/cli/templates/gitignore
|
254
250
|
- lib/funktor/cli/templates/lambda_event_handlers/incoming_job_handler.rb
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# TODO - Figure out how to allow individual packaging to work out of the box.
|
2
|
-
#individually: false
|
3
|
-
#include:
|
4
|
-
#- Gemfile
|
5
|
-
#- Gemfile.lock
|
6
|
-
#- funktor_config/boot.rb
|
7
|
-
#- app/**
|
8
|
-
# Evertyting is excluded by default with serverless-ruby-layer, but you could use
|
9
|
-
# the lines below to exlude files that are inside an include path.
|
10
|
-
#exclude:
|
11
|
-
# - workers/excluded_worker.rb
|
@@ -1,11 +0,0 @@
|
|
1
|
-
#use_docker: false
|
2
|
-
#docker_yums:
|
3
|
-
#- postgresql-devel
|
4
|
-
#native_libs:
|
5
|
-
#- /usr/lib64/libpq.so.5
|
6
|
-
#- /usr/lib64/libldap_r-2.4.so.2
|
7
|
-
#- /usr/lib64/liblber-2.4.so.2
|
8
|
-
#- /usr/lib64/libsasl2.so.3
|
9
|
-
#- /usr/lib64/libssl3.so
|
10
|
-
#- /usr/lib64/libsmime3.so
|
11
|
-
#- /usr/lib64/libnss3.so
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# TODO - Figure out how to allow individual packaging to work out of the box.
|
2
|
-
#individually: false
|
3
|
-
#include:
|
4
|
-
#- Gemfile
|
5
|
-
#- Gemfile.lock
|
6
|
-
#- funktor_config/boot.rb
|
7
|
-
#- app/**
|
8
|
-
# Evertyting is excluded by default with serverless-ruby-layer, but you could use
|
9
|
-
# the lines below to exlude files that are inside an include path.
|
10
|
-
#exclude:
|
11
|
-
# - workers/excluded_worker.rb
|
@@ -1,11 +0,0 @@
|
|
1
|
-
#use_docker: false
|
2
|
-
#docker_yums:
|
3
|
-
#- postgresql-devel
|
4
|
-
#native_libs:
|
5
|
-
#- /usr/lib64/libpq.so.5
|
6
|
-
#- /usr/lib64/libldap_r-2.4.so.2
|
7
|
-
#- /usr/lib64/liblber-2.4.so.2
|
8
|
-
#- /usr/lib64/libsasl2.so.3
|
9
|
-
#- /usr/lib64/libssl3.so
|
10
|
-
#- /usr/lib64/libsmime3.so
|
11
|
-
#- /usr/lib64/libnss3.so
|