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

TypeScript AWS Lambda模板:自动传递函数参数失效问题排查

问题分析与解决方案

核心问题

你写的代码里,main函数并没有调用findUsers,而是直接返回了findUsers这个函数的引用。AWS Lambda执行main时,会传入event、context、callback等参数,但你的main只是把函数本身返回,根本没把参数传给findUsers,自然不会生效。

之前能生效的原因应该是你直接把main赋值为findUsers(比如export const main = findUsers;),而不是用async箭头函数包裹。现在加了async event => findUsers,相当于多了一层函数,这层函数只返回findUsers,不执行它。

解决方案

要实现自动传参,有两种简洁的写法:

  1. 直接复用函数引用(最精简)
    因为findUsers本身就返回Promise,不需要额外的async包裹,直接把main指向它即可:

    export const main = findUsers;
    
    const findUsers = (event) => 
      new Promise((resolve, reject) => {
        // ...你的逻辑
      });
    
  2. 展开参数传递(如果需要保留async层,比如后续要加前置逻辑)
    用剩余参数接收所有传入的参数,再展开传给findUsers:

    export const main = async (...args) => findUsers(...args);
    
    const findUsers = (event) => 
      new Promise((resolve, reject) => {
        // ...你的逻辑
      });
    

TypeScript配置的影响

这个问题和你提供的tsconfig.json配置无关,核心是函数引用与函数调用的逻辑错误。不过strict: true模式下,如果findUsers的参数类型和Lambda的参数类型不匹配,会有类型提示,但不会导致传参失效。

内容的提问来源于stack exchange,提问作者Tamás Polgár

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:25:17