【问题标题】:Serverless framework deployment with external dependencies problem具有外部依赖问题的无服务器框架部署
【发布时间】:2019-06-29 06:45:15
【问题描述】:
我有两个 lambda 函数: lambda_fn_1 和 lambda_fn_2 具有以下依赖项:
1. lambda_fn_1 有“requests”模块作为外部依赖
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。无服务器模板文件应该做哪些更改?
【问题讨论】:
标签:
amazon-web-services
serverless
requirements.txt
【解决方案1】:
而不是像这样拥有一个包含两个依赖项的 requirements.txt 文件:
- requirements.txt:
- requests
- psycopg2
有两个单独的 requirements.txt 文件,每个文件用于一个 lambda 函数,该 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
“module”描述了框架提取 requirements.txt 文件的位置,因此它只会提取该特定文件夹中的文件。