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

如何用CloudFormation Package为AWS Lambda添加控制台可见的auxiliary.json依赖文件

问题根因
  • 当前模板中Code属性直接指向单个文件lambdas/mylambda.py,执行aws cloudformation package时,CLI只会上传匹配到的单个文件,不会自动扫描同目录下的auxiliary.json,自然无法把依赖文件同步到Lambda运行环境和控制台。
  • Lambda控制台展示的可编辑代码文件列表,完全由上传的代码包内部结构决定,只有代码包根目录下包含的文件,才会被识别为顶层可在线编辑的文件,和你手动在控制台新建文件的结构保持一致。
实现步骤

完全不需要改变你现有的本地目录结构、不需要手动创建zip包、不需要手动操作S3,只需要调整模板配置即可:

  • 修改CloudFormation模板内的Lambda资源Code配置,将原本指向单个Python文件的路径,改为直接指向代码所在的lambdas/目录,调整后的完整资源示例:
Resources:
  MyLambda:
    Type: AWS::Lambda::Function
    Properties:      
      FunctionName: "MyLambda"
      Code: lambdas/
      Handler: "mylambda.lambda_handler"
      Runtime: "python3.8"
      Timeout: 30
      MemorySize: 128

小提示:因为打包后的代码包根目录会直接放置mylambda.py和auxiliary.json,没有嵌套的目录层级,所以Handler配置不需要做大的改动,只需要确保模块名和实际文件名一致即可。

  • 继续执行你原来的两条CLI命令,不需要调整任何参数:
    1. 运行aws cloudformation package时,CLI识别到Code指向本地目录,会自动递归把目录下的所有文件打包成临时格式的代码包,自动上传到你指定的S3存储桶,全程你不需要接触zip文件、不需要手动往S3传内容,和之前只部署单文件的操作流程完全一致。
    2. 运行aws cloudformation deploy完成栈更新即可。
  • 部署完成后打开Lambda控制台的代码编辑器,就能直接在顶层目录看到mylambda.py和auxiliary.json两个可在线查看、编辑的文件,运行时读取auxiliary.json的逻辑和你之前手动在控制台创建的版本完全一致。
注意事项
  • 不要在本地手动预先创建zip压缩包,所有打包动作交给CLI自动处理,避免出现目录层级嵌套的问题。
  • 确认lambdas/目录下没有多余的嵌套子文件夹,保证两个目标文件都在打包后的代码包根目录,否则控制台会把文件展示在深层路径下,和你手动创建的结构不一致。
  • 后续只要修改本地目录下的文件内容,重新跑一遍原来的package和deploy命令,就会自动把最新内容同步到Lambda,不需要额外操作。

注:Lambda平台本身对代码上传的底层要求是zip格式的代码包,这是平台的强制规则,这套流程把打包、上传的动作全部自动化,你全程不需要感知zip的存在,完全符合不想手动处理打包上传的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 14:24:02