Serverless Framework部署ZIP包Lambda及EventBridge触发配置
Serverless Framework部署预打包ZIP Lambda并配置EventBridge触发方案
要实现预打包ZIP格式Lambda函数的部署,同时保留原有EventBridge规则创建能力,只需要在原有函数配置基础上增加包路径指定配置,调整handler匹配ZIP内结构即可,原有EventBridge事件配置无需修改。
具体调整项
- 修改
handler字段值,使其和ZIP包解压后的实际处理程序路径完全匹配:比如ZIP解压后根目录存在index.py,处理方法为handler,则该字段值为index.handler - 为对应函数新增
package配置块,禁用Serverless默认的源码打包逻辑,直接指定本地预打包ZIP作为部署产物:- 设置
individually: true开启函数独立部署配置 - 设置
artifact字段为本地ZIP文件的相对/绝对路径
- 设置
调整后完整配置示例
functions: lambdaForSecurityHub: name: securityhub-forwarder role: SecurityHubLambdaRole # 请替换为你的ZIP包内实际的处理程序路径 handler: lambda_handler.lambda_handler # 新增预打包ZIP指定配置 package: individually: true # 请替换为你本地ZIP文件的实际存放路径 artifact: ./securityhub-forwarder.zip events: - eventBridge: eventBus: ${self:custom.securityhubEventBusArn} name: securityhub-findings-resolver-rule pattern: source: - aws.ec2 - aws.iam - aws.s3 detail-type: - AWS API Call via CloudTrail detail: eventSource: - ec2.amazonaws.com - iam.amazonaws.com - s3.amazonaws.com eventName: - TerminateInstances - DeleteRole - DeleteBucket - DeleteSecurityGroup
验证注意事项
- 若你的serverless.yml全局配置了通用package打包规则,函数级的artifact配置优先级更高,会直接使用指定ZIP包,不会触发全局打包逻辑
- 正式部署前可执行
sls package命令验证部署产物,确认输出的部署包为你指定的ZIP文件,避免路径配置错误- 若部署后Lambda提示找不到处理程序,请优先检查ZIP包内的文件层级和handler字段的路径是否对应,不要多写或少写目录层级
内容的提问来源于stack exchange,提问作者krisdigitx
相关产品推荐
相关产品推荐

