Enable local dependencies when deployed to lambda

I have a repo that consists of several “micro services” that I upload to AWS Lambda. In addition, I have several shared libraries that I would like to package when shipping to AWS.

Therefore, my directory structure looks like this:

/micro-service-1
    /dist
        package.json
        index.js
/micro-service-2
    /dist
        package.json
        index.js
/shared-component-1
    /dist
        package.json
        component-name-1.js
/shared-component-2
    /dist
        package.json
        component-name-2.js

The main deployment uses the convenient node-lambdanpm module, but when I refer to a local shared component with an expression like:

var sharedService = require('../../shared-component-1/dist/index');

node-lambda run, node-lambda deploy . , , "" , , , , gulp, , , - . :

  • gulp deploy local-deps
  • local-deps:
    • npm build --production
    • /local
  • :

    var sharedService = require('local/component-name-1');
    

, , . ? ? - - "gulp "?

+4
2

!: D

TL; DR - npm link, .

, :

- main-module
- referenced-module

node. cd referenced-module npm link, cd main-module npm link referenced-module, npm "" referenced-module main-module node_modules . . npm link package.json, (. npm link, ).

, main-module , , var test = require('referenced-module'), . module.exports referenced-module!

, main-module, AWS Lambda, , ! , , node-lambda, , ( - ).

, , , referenced-module, main-module , - gulp - .

, , , . - , , ( !), , .

FEB 2016

, , , , . Serverless. , API Gateway, Lambda, . script CloudFormation, , , . "" "prod"? . , , , , , !

+4

, AWS Lambdas. , , , .

, Windows, .

gulp , , npm.

, , , , .json , gulp , npm .

npm serverless-dependency-install gulp-dependency-install.

-1

Source: https://habr.com/ru/post/1614370/


All Articles