问题描述
我正在使用无服务器框架进行部署。当我们在 AWS 上部署它时,它会抛出以下错误。但我的 zip 文件大小为 45mb,本地解压后大小为 130mb。
无服务器错误----------------------------------------
发生错误:SharedLambdaLayer - 解压缩后的大小必须小于 262144000 字节(服务:AWSLambdaInternal;状态代码:400;错误代码:InvalidParameterValueException;请求 ID:27f9378e-b9ea-42c5-ad73-a3b7cf9d5>。
这是我的环境 操作系统:win32 节点版本:12.19.0 框架版本:2.35.0 插件版本:4.5.3 SDK版本:4.2.2 组件版本:3.8.2
service: rxd-layers
frameworkVersion: '2'
useDotenv: true
unresolvedVariablesNotificationMode: error
configValidationMode: error
plugins:
serverless-plugin-git-variables
serverless-dotenv-plugin
custom:
stageVariables:
gitBranch: ${opt:stage,git:branch}
package:
include:
- /nodejs/node_modules/shared # no need to add this yourself,this plugin does it for you
exclude:
- /nodejs/node_modules/**
- /nodejs/shared/**
provider:
stage: ${opt:stage,git:branch}
name: aws
runtime: nodejs12.x
region: ${env:AWS_REGION_CRED,'us-east-1'}
versionFunctions: true
lambdaHashingVersion: 20201221
layers:
shared:
path: shared
description: This layer is for node packages of all services
resources:
Outputs:
SharedLayerExport:
Value:
Ref: SharedLambdaLayer
Export:
Name: SharedLambdaLayer
解决方法
这是由于 geo-tz
库造成的。它在 AWS 上的 255MB
环境中为 geo-tz 创建的解压缩大小几乎超过 linux
,这是主要问题。所以我只是卸载了这个包。之后我的层部署正确。