无服务器框架部署与外部依赖关系问题

时间:2019-02-05 12:34:43

标签: amazon-web-services serverless requirements.txt

我有两个lambda函数:lambda_fn_1和lambda_fn_2具有以下依赖关系: 1. lambda_fn_1具有“请求”模块作为外部依赖项 2. lambda_fn_2具有“ psycopg2”模块作为外部依赖项

我想使用无服务器框架将这些功能部署到AWS Lambda。这是我的serverless.yaml模板文件:https://i.stack.imgur.com/HrMOV.png

我创建了一个具有两个依赖项的requirements.txt文件。现在,我希望仅使用“ requests”依赖模块来部署lambda_fn_1,而仅使用“ psycopg2”依赖模块来部署lambda_fn_2。应该对无服务器模板文件进行哪些更改?

1 个答案:

答案 0 :(得分:2)

不是只有一个具有两个依赖项的require.txt文件:

- requirements.txt:
    - requests
    - psycopg2

具有两个单独的require.txt文件,每个文件对应一个lambda函数,该函数仅具有该lambda函数所需的依赖项。这将是新的文件夹结构:

- lambda_fn_1:
    - requirements.txt (requests)
    - handler.py
- lambda_fn_2:
    - requirements.txt (psycopg2)
    - handler.py

这将在无服务器模板中进行修改:

- lambda_fn_1:
    handler: handler.lambda_handler
    module: lambda_fn_1
- lambda_fn_2:
    handler: handler.lambda_handler
    module: lambda_fn_2

模块”描述了框架在其中拾取requirements.txt文件的位置,因此,它将仅在该特定文件夹中拾取该文件。