我正在使用 Serverless Framework (v3) 和 Node.js (v18)。如果 Cognito 自定义触发器 lambda 函数中添加了这一行,它会自动创建一个 lambda 函数 (custom-resource-existing-cup)。
existing: true
没关系,但问题是这个 lambda 函数使用的是 Node 16,即使我使用 Node 18。
我尝试更改此自定义 lambda 函数的 Node.js 版本,但我做不到,因为它是由无服务器框架自动生成的。 有办法解决这个问题吗?因为它很快就要弃用了。
自定义资源的 Lambda 函数具有 Nodejs16 运行时硬编码。 https://github.com/serverless/serverless/blob/d0e3056b77ba295adb87ceeca9a49a26b315f083/lib/plugins/aws/custom-resources/index.js#L165-L179
const customResourceFunction = {
Type: 'AWS::Lambda::Function',
Properties: {
Code: {
S3Bucket,
S3Key,
},
FunctionName: absoluteFunctionName,
Handler,
MemorySize: 1024,
Runtime: 'nodejs16.x',
Timeout: 180,
},
DependsOn: [],
};
我尝试编辑node_modules作为此链接,效果很好。
https://github.com/serverless/serverless/issues/12133#issuecomment-1958961198