@hybridless/hybridless 0.0.82 → 0.0.84-alpha10

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.
Files changed (52) hide show
  1. package/README.md +2 -2
  2. package/core/DepsManager.js +90 -0
  3. package/core/DepsManager.js.map +1 -0
  4. package/core/Docker.js +76 -0
  5. package/core/Docker.js.map +1 -0
  6. package/core/Globals.js +110 -0
  7. package/core/Globals.js.map +1 -0
  8. package/core/Logger.js +82 -0
  9. package/core/Logger.js.map +1 -0
  10. package/index.js +397 -0
  11. package/index.js.map +1 -0
  12. package/options.js +87 -0
  13. package/options.js.map +1 -0
  14. package/options.json +7013 -6888
  15. package/package.json +2 -2
  16. package/resources/BaseEvents/FunctionBaseEvent.js +20 -0
  17. package/resources/BaseEvents/FunctionBaseEvent.js.map +1 -0
  18. package/resources/BaseEvents/FunctionContainerBaseEvent.js +187 -0
  19. package/resources/BaseEvents/FunctionContainerBaseEvent.js.map +1 -0
  20. package/resources/Function.js +229 -0
  21. package/resources/Function.js.map +1 -0
  22. package/resources/FunctionBatchJobEvent.js +104 -0
  23. package/resources/FunctionBatchJobEvent.js.map +1 -0
  24. package/resources/FunctionHttpdTaskEvent.js +116 -0
  25. package/resources/FunctionHttpdTaskEvent.js.map +1 -0
  26. package/resources/FunctionLambdaContainerEvent.js +201 -0
  27. package/resources/FunctionLambdaContainerEvent.js.map +1 -0
  28. package/resources/FunctionLambdaEvent.js +161 -0
  29. package/resources/FunctionLambdaEvent.js.map +1 -0
  30. package/resources/FunctionProcessTaskEvent.js +89 -0
  31. package/resources/FunctionProcessTaskEvent.js.map +1 -0
  32. package/resources/FunctionScheduledTaskEvent.js +89 -0
  33. package/resources/FunctionScheduledTaskEvent.js.map +1 -0
  34. package/resources/assets/job-batch/Dockerfile-Job-Nodejs10 +13 -0
  35. package/resources/assets/job-batch/Dockerfile-Job-Nodejs12 +13 -0
  36. package/resources/assets/job-batch/Dockerfile-Job-Nodejs14 +13 -0
  37. package/resources/assets/job-batch/Index-Job-NodejsX +24 -0
  38. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java11 +8 -0
  39. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8 +8 -0
  40. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Java8al12 +8 -0
  41. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs10 +7 -0
  42. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs12 +7 -0
  43. package/resources/assets/lambda-container/Dockerfile-LambdaContainer-Nodejs14 +7 -0
  44. package/resources/assets/task-httpd/Dockerfile-Httpd-Nodejs10 +15 -0
  45. package/resources/assets/task-httpd/Dockerfile-Httpd-PHP5 +9 -0
  46. package/resources/assets/task-httpd/Dockerfile-Httpd-PHP7 +9 -0
  47. package/resources/assets/task-httpd/Index-Httpd-NodejsX +15 -0
  48. package/resources/assets/task-httpd/healthCheck.php +1 -0
  49. package/resources/assets/task-process/Dockerfile-Process-Nodejs10 +10 -0
  50. package/resources/assets/task-process/Dockerfile-Process-Nodejs13 +10 -0
  51. package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs10 +10 -0
  52. package/resources/assets/task-scheduled/Dockerfile-Scheduled-Nodejs13 +10 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FunctionProcessTaskEvent = void 0;
13
+ const FunctionContainerBaseEvent_1 = require("./BaseEvents/FunctionContainerBaseEvent");
14
+ const options_1 = require("../options");
15
+ const Globals_1 = require("../core/Globals");
16
+ const BPromise = require("bluebird");
17
+ class FunctionProcessTaskEvent extends FunctionContainerBaseEvent_1.FunctionContainerBaseEvent {
18
+ constructor(plugin, func, event, index) {
19
+ super(plugin, func, event, index);
20
+ }
21
+ getContainerFiles() {
22
+ const event = this.event;
23
+ const customDockerFile = event.dockerFile;
24
+ const serverlessDir = this.plugin.serverless.config.servicePath;
25
+ const additionalDockerFiles = (event.additionalDockerFiles || []).map((file) => {
26
+ return { name: file.from, dir: serverlessDir, dest: file.to };
27
+ });
28
+ let safeDir = __dirname.split('/');
29
+ safeDir.splice(safeDir.length - 1, 1);
30
+ safeDir = safeDir.join('/');
31
+ const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
32
+ const isJava = (event && event.runtime && event.runtime.toLowerCase().indexOf('java') != -1);
33
+ const isPureContainer = (event.runtime == options_1.OFunctionProcessTaskRuntime.container);
34
+ if (isNodeJS) {
35
+ return [
36
+ (customDockerFile ?
37
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
38
+ { name: Globals_1.default.Process_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
39
+ (this.plugin.options.disableWebpack ?
40
+ { name: '.', dir: serverlessDir, dest: '/usr/src/app' } :
41
+ { name: '.webpack/service', dir: serverlessDir, dest: '/usr/src/app' }),
42
+ ...additionalDockerFiles
43
+ ];
44
+ }
45
+ else if (isJava) {
46
+ return [
47
+ (customDockerFile ?
48
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
49
+ { name: Globals_1.default.Process_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
50
+ { name: 'target/classes', dir: serverlessDir, dest: 'target/classes' },
51
+ { name: 'target/dependency', dir: serverlessDir, dest: 'target/dependency' },
52
+ ...additionalDockerFiles
53
+ ];
54
+ }
55
+ else if (isPureContainer) {
56
+ return [
57
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' },
58
+ ...additionalDockerFiles
59
+ ];
60
+ }
61
+ else {
62
+ throw new Error(`Unrecognized Process event type ${event.runtime}!`);
63
+ }
64
+ }
65
+ getContainerEnvironments() {
66
+ const event = this.event;
67
+ const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
68
+ return Object.assign(Object.assign(Object.assign({ 'ENTRYPOINT': this.func.getEntrypoint(this.event), 'ENTRYPOINT_FUNC': this.func.getEntrypointFunction(this.event) }, (isNodeJS ? { 'AWS_NODEJS_CONNECTION_REUSE_ENABLED': 1 } : {})), (event.newRelicKey ? {
69
+ 'NEW_RELIC_APP_NAME': `${this.plugin.getName()}-${this.func.getName()}-${this.plugin.stage}`,
70
+ 'NEW_RELIC_LICENSE_KEY': event.newRelicKey,
71
+ 'NEW_RELIC_ENABLED': true,
72
+ 'NEW_RELIC_NO_CONFIG_FILE': true,
73
+ } : {
74
+ 'NEW_RELIC_ENABLED': false
75
+ })), { 'STAGE': this.plugin.stage, 'AWS_REGION': { "Ref": "AWS::Region" }, 'AWS_ACCOUNT_ID': { "Ref": "AWS::AccountId" } });
76
+ }
77
+ getClusterTask() {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const TaskName = this._getTaskName();
80
+ const ECRRepoFullURL = yield this.getContainerImageURL();
81
+ const event = this.event;
82
+ return new BPromise((resolve) => __awaiter(this, void 0, void 0, function* () {
83
+ resolve(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: TaskName, cpu: (event.cpu || Globals_1.default.Process_DefaultCPU), memory: (event.memory || this.func.funcOptions.memory || Globals_1.default.Process_DefaultMemory), ec2LaunchType: !!event.ec2LaunchType }, (!!event.ec2LaunchType && event.daemonType ? { daemonEc2Type: true } : {})), (!event.ec2LaunchType ? { disablePublicIPAssign: true } : {})), { taskRoleArn: (event.role || { 'Fn::GetAtt': ['IamRoleLambdaExecution', 'Arn'] }), image: `${ECRRepoFullURL}` }), (event.entrypoint ? { entrypoint: event.entrypoint } : {})), { desiredCount: (event.concurrency || Globals_1.default.Process_DefaultConcurrency), environment: Object.assign(Object.assign({}, this.plugin.getEnvironmentIvars()), this.getContainerEnvironments()), logsMultilinePattern: (event.logsMultilinePattern || Globals_1.default.DefaultLogsMultilinePattern) }), (event.logsRetentionInDays && event.logsRetentionInDays != 'null' ? { logsRetentionInDays: event.logsRetentionInDays } : {})), (event.placementStrategies && event.placementStrategies != 'null' ? { placementStrategies: event.placementStrategies } : {})), (event.placementConstraints && event.placementConstraints != 'null' ? { placementConstraints: event.placementConstraints } : {})), (event.capacityProviderStrategy && event.capacityProviderStrategy != 'null' ? { capacityProviderStrategy: event.capacityProviderStrategy } : {})), (event.propagateTags && event.propagateTags != 'null' ? { propagateTags: event.propagateTags } : {})));
84
+ }));
85
+ });
86
+ }
87
+ }
88
+ exports.FunctionProcessTaskEvent = FunctionProcessTaskEvent;
89
+ //# sourceMappingURL=FunctionProcessTaskEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionProcessTaskEvent.js","sourceRoot":"","sources":["../src/resources/FunctionProcessTaskEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FunctionScheduledTaskEvent = void 0;
13
+ const FunctionContainerBaseEvent_1 = require("./BaseEvents/FunctionContainerBaseEvent");
14
+ const options_1 = require("../options");
15
+ const Globals_1 = require("../core/Globals");
16
+ const BPromise = require("bluebird");
17
+ class FunctionScheduledTaskEvent extends FunctionContainerBaseEvent_1.FunctionContainerBaseEvent {
18
+ constructor(plugin, func, event, index) {
19
+ super(plugin, func, event, index);
20
+ }
21
+ getContainerFiles() {
22
+ const event = this.event;
23
+ const customDockerFile = this.event.dockerFile;
24
+ const serverlessDir = this.plugin.serverless.config.servicePath;
25
+ const additionalDockerFiles = (this.event.additionalDockerFiles || []).map((file) => {
26
+ return { name: file.from, dir: serverlessDir, dest: file.to };
27
+ });
28
+ let safeDir = __dirname.split('/');
29
+ safeDir.splice(safeDir.length - 1, 1);
30
+ safeDir = safeDir.join('/');
31
+ const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
32
+ const isJava = (event && event.runtime && event.runtime.toLowerCase().indexOf('java') != -1);
33
+ const isPureContainer = (event.runtime == options_1.OFunctionScheduledTaskRuntime.container);
34
+ if (isNodeJS) {
35
+ return [
36
+ (customDockerFile ?
37
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
38
+ { name: Globals_1.default.Scheduled_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
39
+ (this.plugin.options.disableWebpack ?
40
+ { name: '.', dir: serverlessDir, dest: '/usr/src/app' } :
41
+ { name: '.webpack/service', dir: serverlessDir, dest: '/usr/src/app' }),
42
+ ...additionalDockerFiles
43
+ ];
44
+ }
45
+ if (isJava) {
46
+ return [
47
+ (customDockerFile ?
48
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' } :
49
+ { name: Globals_1.default.Scheduled_ImageByRuntime(event.runtime), dir: safeDir + '/resources/assets', dest: 'Dockerfile' }),
50
+ { name: 'target/classes', dir: serverlessDir, dest: 'target/classes' },
51
+ { name: 'target/dependency', dir: serverlessDir, dest: 'target/dependency' },
52
+ ...additionalDockerFiles
53
+ ];
54
+ }
55
+ else if (isPureContainer) {
56
+ return [
57
+ { name: customDockerFile, dir: serverlessDir, dest: 'Dockerfile' },
58
+ ...additionalDockerFiles
59
+ ];
60
+ }
61
+ else {
62
+ throw new Error(`Unrecognized Scheduled event type ${event.runtime}!`);
63
+ }
64
+ }
65
+ getContainerEnvironments() {
66
+ const event = this.event;
67
+ const isNodeJS = (event && event.runtime && event.runtime.toLowerCase().indexOf('node') != -1);
68
+ return Object.assign(Object.assign(Object.assign({ 'ENTRYPOINT': this.func.getEntrypoint(this.event), 'ENTRYPOINT_FUNC': this.func.getEntrypointFunction(this.event) }, (isNodeJS ? { 'AWS_NODEJS_CONNECTION_REUSE_ENABLED': 1 } : {})), (event.newRelicKey ? {
69
+ 'NEW_RELIC_APP_NAME': `${this.plugin.getName()}-${this.func.getName()}-${this.plugin.stage}`,
70
+ 'NEW_RELIC_LICENSE_KEY': event.newRelicKey,
71
+ 'NEW_RELIC_ENABLED': true,
72
+ 'NEW_RELIC_NO_CONFIG_FILE': true,
73
+ } : {
74
+ 'NEW_RELIC_ENABLED': false
75
+ })), { 'STAGE': this.plugin.stage, 'AWS_REGION': { "Ref": "AWS::Region" }, 'AWS_ACCOUNT_ID': { "Ref": "AWS::AccountId" } });
76
+ }
77
+ getClusterTask() {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const TaskName = this._getTaskName();
80
+ const ECRRepoFullURL = yield this.getContainerImageURL();
81
+ const event = this.event;
82
+ return new BPromise((resolve) => __awaiter(this, void 0, void 0, function* () {
83
+ resolve(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: TaskName, cpu: (event.cpu || Globals_1.default.Scheduled_DefaultCPU), memory: (event.memory || this.func.funcOptions.memory || Globals_1.default.Scheduled_DefaultMemory), disablePublicIPAssign: true, ec2LaunchType: !!event.ec2LaunchType }, (!!event.ec2LaunchType && event.daemonType ? { daemonEc2Type: true } : {})), { taskRoleArn: (event.role || { 'Fn::GetAtt': ['IamRoleLambdaExecution', 'Arn'] }), image: `${ECRRepoFullURL}` }), (event.entrypoint ? { entrypoint: event.entrypoint } : {})), { desiredCount: 0, environment: Object.assign(Object.assign({}, this.plugin.getEnvironmentIvars()), this.getContainerEnvironments()) }), (event.placementStrategies && event.placementStrategies != 'null' ? { placementStrategies: event.placementStrategies } : {})), (event.placementConstraints && event.placementConstraints != 'null' ? { placementConstraints: event.placementConstraints } : {})), (event.capacityProviderStrategy && event.capacityProviderStrategy != 'null' ? { capacityProviderStrategy: event.capacityProviderStrategy } : {})), (event.propagateTags && event.propagateTags != 'null' ? { propagateTags: event.propagateTags } : {})), { logsMultilinePattern: (event.logsMultilinePattern || Globals_1.default.DefaultLogsMultilinePattern) }), (event.logsRetentionInDays && event.logsRetentionInDays != 'null' ? { logsRetentionInDays: event.logsRetentionInDays } : {})), { schedulerRate: event.schedulerRate, schedulerConcurrency: (event.concurrency || Globals_1.default.Scheduled_DefaultConcurrency) }), (event.schedulerInput ? { schedulerInput: event.schedulerInput } : {})));
84
+ }));
85
+ });
86
+ }
87
+ }
88
+ exports.FunctionScheduledTaskEvent = FunctionScheduledTaskEvent;
89
+ //# sourceMappingURL=FunctionScheduledTaskEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionScheduledTaskEvent.js","sourceRoot":"","sources":["../src/resources/FunctionScheduledTaskEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ FROM ghcr.io/hybridless/node:10-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+ COPY proxy.js /usr/src/hybridless-runtime/proxy.js
6
+
7
+ # Set the working directory
8
+ WORKDIR /usr/src/app
9
+
10
+ RUN cd /usr/src/hybridless-runtime/ && npm i -S @hybridless/runtime-nodejs-httpd@latest
11
+
12
+ # Run the specified command within the container.
13
+ ENTRYPOINT node ../hybridless-runtime/proxy.js
@@ -0,0 +1,13 @@
1
+ FROM ghcr.io/hybridless/node:12-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+ COPY proxy.js /usr/src/hybridless-runtime/proxy.js
6
+
7
+ # Set the working directory
8
+ WORKDIR /usr/src/app
9
+
10
+ RUN cd /usr/src/hybridless-runtime/ && npm i -S @hybridless/runtime-nodejs-httpd@latest
11
+
12
+ # Run the specified command within the container.
13
+ ENTRYPOINT node ../hybridless-runtime/proxy.js
@@ -0,0 +1,13 @@
1
+ FROM ghcr.io/hybridless/node:14-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+ COPY proxy.js /usr/src/hybridless-runtime/proxy.js
6
+
7
+ # Set the working directory
8
+ WORKDIR /usr/src/app
9
+
10
+ RUN cd /usr/src/hybridless-runtime/ && npm i -S @hybridless/runtime-nodejs-httpd@latest
11
+
12
+ # Run the specified command within the container.
13
+ ENTRYPOINT node -e ../hybridless-runtime/proxy.js
@@ -0,0 +1,24 @@
1
+ //Interruption handler
2
+ process.on('SIGINT', function() {
3
+ console.log("Caught interrupt signal");
4
+ process.exit(1);
5
+ });
6
+ //Execution scope
7
+ (async () => {
8
+ //Get inputs
9
+ let input = {};
10
+ try { input = JSON.parse(process.argv[2]); }
11
+ catch (e) { console.log('[Hybridless Runtime] - Error while decoding inputEvent parameter!', e); }
12
+
13
+ //Init lambda event and call it
14
+ const LambdaEvent = require("@hybridless/runtime-nodejs-httpd").LambdaEvent;
15
+ const functionPath = `${__dirname}/../app/${process.env.ENTRYPOINT}`
16
+ const lambda = new LambdaEvent({ payload: input }, functionPath, process.env.ENTRYPOINT_FUNC);
17
+ //Callout
18
+ const resp = await lambda.invoke();
19
+
20
+ //Return
21
+ console.log(resp);
22
+ if (resp.getCode && resp.getCode() == 200) process.exit(0);
23
+ else process.exit(1);
24
+ })();
@@ -0,0 +1,8 @@
1
+ FROM public.ecr.aws/lambda/java:11
2
+
3
+ # Copy function code and runtime dependencies from Maven layout
4
+ COPY target/classes ${LAMBDA_TASK_ROOT}
5
+ COPY target/dependency/* ${LAMBDA_TASK_ROOT}/lib/
6
+
7
+ #
8
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT::${ENTRYPOINT_FUNC:-handleRequest}"
@@ -0,0 +1,8 @@
1
+ FROM public.ecr.aws/lambda/java:8
2
+
3
+ # Copy function code and runtime dependencies from Maven layout
4
+ COPY target/classes ${LAMBDA_TASK_ROOT}
5
+ COPY target/dependency/* ${LAMBDA_TASK_ROOT}/lib/
6
+
7
+ #
8
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT::${ENTRYPOINT_FUNC:-handleRequest}"
@@ -0,0 +1,8 @@
1
+ FROM public.ecr.aws/lambda/java:8al12
2
+
3
+ # Copy function code and runtime dependencies from Maven layout
4
+ COPY target/classes ${LAMBDA_TASK_ROOT}
5
+ COPY target/dependency/* ${LAMBDA_TASK_ROOT}/lib/
6
+
7
+ #
8
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT::${ENTRYPOINT_FUNC:-handleRequest}"
@@ -0,0 +1,7 @@
1
+ FROM public.ecr.aws/lambda/nodejs:10
2
+
3
+ # Copy function code
4
+ COPY /usr/src/app/ ${LAMBDA_TASK_ROOT}
5
+
6
+ #
7
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT.$ENTRYPOINT_FUNC"
@@ -0,0 +1,7 @@
1
+ FROM public.ecr.aws/lambda/nodejs:12
2
+
3
+ # Copy function code
4
+ COPY /usr/src/app/ ${LAMBDA_TASK_ROOT}
5
+
6
+ #
7
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT.$ENTRYPOINT_FUNC"
@@ -0,0 +1,7 @@
1
+ FROM public.ecr.aws/lambda/nodejs:14
2
+
3
+ # Copy function code
4
+ COPY /usr/src/app/ ${LAMBDA_TASK_ROOT}
5
+
6
+ #
7
+ ENTRYPOINT /lambda-entrypoint.sh "$ENTRYPOINT.$ENTRYPOINT_FUNC"
@@ -0,0 +1,15 @@
1
+ FROM ghcr.io/hybridless/node:10-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+ COPY proxy.js /usr/src/httpd/proxy.js
6
+
7
+ # Set the working directory
8
+ WORKDIR /usr/src/app
9
+
10
+ RUN cd /usr/src/httpd/ && npm i -S @hybridless/runtime-nodejs-httpd@latest
11
+
12
+ EXPOSE $PORT
13
+
14
+ # Run the specified command within the container.
15
+ ENTRYPOINT node ../httpd/proxy.js
@@ -0,0 +1,9 @@
1
+ FROM ghcr.io/hybridless/webdevops/php-nginx:alpine-php5
2
+
3
+ # customize fastcgi
4
+ RUN echo proxy_buffer_size 128k; >> /opt/docker/etc/nginx/vhost.common.d/10-php.conf
5
+ RUN echo proxy_buffers 4 256k; >> /opt/docker/etc/nginx/vhost.common.d/10-php.conf
6
+ RUN echo proxy_busy_buffers_size 256k; >> /opt/docker/etc/nginx/vhost.common.d/10-php.conf
7
+
8
+ # Copy files
9
+ COPY /app/ /app/
@@ -0,0 +1,9 @@
1
+ FROM ghcr.io/hybridless/webdevops/php-nginx:alpine-php7
2
+
3
+ # customize fastcgi
4
+ RUN echo proxy_buffer_size 128k; >> /opt/docker/etc/nginx/conf.d/10-php.conf
5
+ RUN echo proxy_buffers 4 256k; >> /opt/docker/etc/nginx/conf.d/10-php.conf
6
+ RUN echo proxy_busy_buffers_size 256k; >> /opt/docker/etc/nginx/conf.d/10-php.conf
7
+
8
+ # Copy files
9
+ COPY /app/ /app/
@@ -0,0 +1,15 @@
1
+ const Runtime = require("@hybridless/runtime-nodejs-httpd");
2
+ const runtimeInstance = new Runtime({
3
+ host: '0.0.0.0',
4
+ port: process.env.PORT,
5
+ timeout: process.env.TIMEOUT,
6
+ cors: (process.env.CORS ? JSON.parse(process.env.CORS) : null),
7
+ function: {
8
+ path: process.env.ENTRYPOINT,
9
+ handler: process.env.ENTRYPOINT_FUNC,
10
+ preload: true
11
+ },
12
+ healthCheckRoute: process.env.HEALTH_ROUTE,
13
+ baseDir: `${__dirname}/../app/`
14
+ });
15
+ runtimeInstance.start();
@@ -0,0 +1 @@
1
+ <?php echo('Healthy!'); ?>
@@ -0,0 +1,10 @@
1
+ FROM ghcr.io/hybridless/node:10-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+
6
+ # Set the working directory
7
+ WORKDIR /usr/src/app
8
+
9
+ # Run the specified command within the container.
10
+ ENTRYPOINT node -e "require('./$ENTRYPOINT').$ENTRYPOINT_FUNC()"
@@ -0,0 +1,10 @@
1
+ FROM ghcr.io/hybridless/node:13-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+
6
+ # Set the working directory
7
+ WORKDIR /usr/src/app
8
+
9
+ # Run the specified command within the container.
10
+ ENTRYPOINT node -e "require('./$ENTRYPOINT').$ENTRYPOINT_FUNC()"
@@ -0,0 +1,10 @@
1
+ FROM ghcr.io/hybridless/node:10-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+
6
+ # Set the working directory
7
+ WORKDIR /usr/src/app
8
+
9
+ # Run the specified command within the container.
10
+ ENTRYPOINT node -e "require('./$ENTRYPOINT').$ENTRYPOINT_FUNC()"
@@ -0,0 +1,10 @@
1
+ FROM ghcr.io/hybridless/node:13-alpine
2
+
3
+ # Copy files
4
+ COPY /usr/src/app/ /usr/src/app/
5
+
6
+ # Set the working directory
7
+ WORKDIR /usr/src/app
8
+
9
+ # Run the specified command within the container.
10
+ ENTRYPOINT node -e "require('./$ENTRYPOINT').$ENTRYPOINT_FUNC()"