/sls-py

Primary LanguageJavaScript

sls-py

sls-py

plugins:
  - sls-py
provider:
  name: aws
  runtime: python3.9
  region: eu-west-1
  vpc:
    subnetIds: !Split [",", "subnet-id1,subnet-id2"]
    securityGroupIds: !Split [",", "sg-id1,sg-id2"]
custom:
  pythonRequirements:
    # shared properties across all lambda functions
    enableLambdaInsights: true
    vpc: ${self:provider.vpc}
    timeout: 900
    # pip arguments for dependency installation
    indexUrl: https://pypi.org/simple
    extraIndexUrl: https://pypi.org/simple
    trustedHost: pypi.org
    # common modules between all lambda functions
    shared:
      common_utils: ../shared
      common_data: ../data
    # files and directories to exclude
    exclude:
      - somefile.txt
      - data.tmp


functions:
  hello:
    handler: handler.hello

Note

filter using the exclude option.

In handler.py, shared code can be imported like this:

from common_utils import shared_resource

Requirements


  • python & pip installed
  • minimum required node version >= 16

Features

  • shared is attached to all the lambdas.
    • you can place repeated dependencies inside your shared layer to:
      • save space.
      • reduce cold startup time.
      • much faster deployments.
  • exclude works for excluding code and dependencies alike.

License: lgpl-3.0 or later