You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS CDK部署Lambda时如何调用第三方Python仓库的代码

最优方案及代码实现

首先你需要先将第三方仓库的代码引入CDK部署流程,以下是优先级最高的实现方案:

前置准备

在你的CDK项目根目录下创建专门存放Lambda代码的目录,例如./lambda,完成以下操作:

  • 通过以下三种方式之一引入3rdPartyRepo的代码,可根据团队协作规则选择:
    • 直接将3rdPartyRepo中的PyFile.py复制到./lambda目录下,适合不常更新的第三方代码
    • 将3rdPartyRepo作为git子模块添加到CDK项目中,无需手动复制文件,每次部署前拉取子模块即可同步最新代码
    • 将3rdPartyRepo发布为团队内部私有PyPI包,后续通过依赖管理引入
  • 在./lambda目录下新建test.py入口文件,内容如下:
from PyFile import functionToUseForLambda

lambda_handler = functionToUseForLambda

<CODE_GOES_HERE> 填写内容

直接使用CDK原生的Code.from_asset方法指向Lambda代码目录即可:

Code.from_asset("./lambda")

完整的Function定义示例:

from aws_cdk import aws_lambda as _lambda

class RawDataStack(core.Stack):
    ...
    handler = _lambda.Function(self, "initial-load-lambda",
                       runtime=_lambda.Runtime.PYTHON_3_8,
                       code=_lambda.Code.from_asset("./lambda"),
                       handler="test.lambda_handler",
                       environment={"BUCKET": raw_bucket.bucket_name})

其他可选优化方案

  • 如果不想把第三方仓库代码复制到当前仓库,可以将3rdPartyRepo的Python代码打包为Lambda层,在CDK中先定义层资源,再在Function配置中关联该层,此时code参数只需要指向你自己的入口文件目录即可
  • 如果依赖较多,推荐使用@aws-cdk/aws-lambda-python-alpha模块的PythonFunction构造,它会自动安装requirements.txt中的依赖,你可以将3rdPartyRepo发布为内部私有PyPI包,直接加入requirements.txt即可,无需手动管理文件同步
  • 如果通过CI/CD部署,可以在部署流程中先克隆3rdPartyRepo,将需要的代码和你的入口文件打包为zip包,code参数改为Code.from_asset("./lambda-package.zip")即可

内容的提问来源于stack exchange,提问作者shamwow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 08:24:02