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

无Lambda场景下Serverless打包Zip归档的实现方案咨询

解决Serverless框架无functions时无法打包指定文件夹的问题

方案1:添加占位空函数触发打包流程

Serverless框架的打包逻辑默认绑定functions配置,所以可以通过添加一个无实际业务作用的占位函数,强制框架触发打包流程,再通过package配置精准指定要打包的文件夹:

  1. 在serverless.yml中添加空函数配置:
functions:
  dummy:
    handler: dummy.handler # 无需实际存在该文件,仅用于触发打包逻辑
  1. 配置package段,锁定打包范围:
package:
  include:
    - ./your-target-folder/** # 替换为你需要打包的目标文件夹路径
  exclude:
    - node_modules/**
    - .git/**
    - serverless.yml # 按需排除无关文件
  1. 执行sls package,框架会在.serverless目录下生成对应Zip包。后续可直接取用该包,或部署后删除占位函数。

方案2:用Serverless脚本插件手动触发打包

借助serverless-plugin-scripts插件,在部署流程中插入自定义打包命令,绕开框架默认的functions绑定逻辑:

  1. 安装插件:
npm install serverless-plugin-scripts --save-dev
  1. 在serverless.yml中配置插件与打包脚本:
plugins:
  - serverless-plugin-scripts

custom:
  scripts:
    before:deploy:package: 'zip -r ./output-package.zip ./your-target-folder' # 替换为你的打包命令与路径
  1. 执行sls deploy时,会先运行自定义zip命令生成包,再结合其他资源配置完成部署。

方案3:手动打包+Serverless资源上传

若仅需将打包后的文件上传至云服务(如S3),可完全手动打包,再通过Serverless的资源配置完成上传:

  1. 手动执行打包命令:
zip -r ./target-package.zip ./your-target-folder
  1. 在serverless.yml中配置云资源(以AWS S3为例):
resources:
  Resources:
    DeploymentBucket:
      Type: AWS::S3::Bucket
      Properties:
        BucketName: your-unique-bucket-name # 替换为你的Bucket名称
    UploadedPackage:
      Type: AWS::S3::Object
      Properties:
        Bucket: !Ref DeploymentBucket
        Key: packages/target-package.zip
        Source: ./target-package.zip
  1. 执行sls deploy,框架会自动将手动打包好的Zip上传至指定S3路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:20:39