如何在 CodeStar 项目中重用代码?
How to re-use code in a CodeStar project?
我创建了一个 CodeStar 项目(Python Web 服务模板作为起点),我正在使用 vscode 对其进行编辑。
到目前为止,我已将生成的项目自定义为具有两个 lambda。结构如下:
buildspec.yml
functions/lambda1
functions/lambda2
template-configuration.json
template.yml
它可以使用 "sam local start-api" 并通过使用 AWS 仪表板进行测试。
但是,除了在每个 lambda 上复制粘贴“.py”文件以用作模块之外,我没有设法重用 "lambda1" 和 "lambda2" 之间的代码。尝试编辑 requirements.txt 以指向带有 lib 的 git 存储库但没有成功。
另一种尝试是尝试使用 "Lambda Dashboard" 添加 "Layer",最终重写了 lambda 代码。
综上所述,关于如何在 CodeStar 项目中重用代码有什么建议吗?
为了创建图层,必须编辑 CodeStar 项目 Cloudformation 模板:
- 创建图层https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html
- 参考它在 lambda 上的用法 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers
除了将相同的文件复制并粘贴到每个 lambda 之外,其他重用代码的方法是将其推迟到构建。
文件夹结构如下:
your_project---- lambda1 -- lambda1_code.py
|
|--- lambda2 -- lambda2_code.py
|
---- common_modules -- common_module.py
并修改构建脚本:
- cp ./common_modules/common_module.py ./lambda1/
- cp ./common_modules/common_module.py ./lambda2/
我创建了一个 CodeStar 项目(Python Web 服务模板作为起点),我正在使用 vscode 对其进行编辑。
到目前为止,我已将生成的项目自定义为具有两个 lambda。结构如下:
buildspec.yml
functions/lambda1
functions/lambda2
template-configuration.json
template.yml
它可以使用 "sam local start-api" 并通过使用 AWS 仪表板进行测试。
但是,除了在每个 lambda 上复制粘贴“.py”文件以用作模块之外,我没有设法重用 "lambda1" 和 "lambda2" 之间的代码。尝试编辑 requirements.txt 以指向带有 lib 的 git 存储库但没有成功。
另一种尝试是尝试使用 "Lambda Dashboard" 添加 "Layer",最终重写了 lambda 代码。
综上所述,关于如何在 CodeStar 项目中重用代码有什么建议吗?
为了创建图层,必须编辑 CodeStar 项目 Cloudformation 模板:
- 创建图层https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html
- 参考它在 lambda 上的用法 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers
除了将相同的文件复制并粘贴到每个 lambda 之外,其他重用代码的方法是将其推迟到构建。
文件夹结构如下:
your_project---- lambda1 -- lambda1_code.py
|
|--- lambda2 -- lambda2_code.py
|
---- common_modules -- common_module.py
并修改构建脚本:
- cp ./common_modules/common_module.py ./lambda1/
- cp ./common_modules/common_module.py ./lambda2/