0.0.2 • Published 6 years ago

serverless-python-requirements-common-copy v0.0.2

Weekly downloads
15
License
MIT
Repository
github
Last release
6 years ago

serverless-python-requirements-common-copy

A Serverless framework plugin to copy specified directory or file into artifact

Works with serverless-python-requirements

Requires Serverless >= v1.12

Supported only using with Per-function requirements

Install

npm install --save serverless-python-requirements-common-copy

Source directory structure

Same as serverless-python-requirements

├── serverless.yml
└── src
     ├── function1
     │      ├── requirements.txt
     │      └── function1.py
     ├── function2
     │      ├── requirements.txt
     │      └── function2.py
     └── function3
            ├── requirements.txt
            └── function3.py

Settings

serverless.yml

plugins:
  - serverless-python-requirements
  - serverless-python-requirements-common-copy

provider:
  # This is example
  name: aws
  profile: AWS_PROFILE_NAME
  region: ap-northeast-1
  runtime: python3.6

package:
  individually: true

custom:
  pythonRequirements:
    # This is example
    dockerizePip: true
    dockerImage: lambci/lambda:build-python3.6
    zip: false
    slim: true
  pythonRequirementsCommonCopy:
    # Put your desired directory or file
    - ./common/some_lib.py  # example of file
    - ./environments        # example of directory
 
functions:
  function1:
    module: src/function1
    handler: function1.lambda_handler    
    pythonRequirementsCommonCopy:
      - ./key/hoge.pem  # example of file
      - ./some_dir      # example of directory
  function2:
    module: src/function2
    handler: function2.lambda_handler    
    pythonRequirementsCommonCopy:
      - ./key/fuga.pem  # example of file
      - ./some_dir      # example of directory
  function3:
    module: src/function3
    handler: function3.lambda_handler
    # just omit `pythonRequirementsCommonCopy` to ignore this plugin

Artifacts after packaging

Inside zip file

├── function1.py
├── requests             # library directory from requirements.txt
├── common
│    └── some_lib.py     # specified file by service level
├── environments         # specified directory by service level
│      ├── setting.json
│      └── secret.txt
├── key
│    └── hoge.pem        # specified file by function level
└── some_dir             # specified directory by function level
       ├── foo.py
       └── bar.py

TODO

  • Automatic testing

License

MIT