Typescript 使用nest.js在AWS Lambda中获取Cognito数据(即requestContext)

Typescript 使用nest.js在AWS Lambda中获取Cognito数据(即requestContext),typescript,aws-lambda,nestjs,Typescript,Aws Lambda,Nestjs,我在下面的例子中 我所做的 1) 成功地将其部署到AWS并添加了一个Cognito授权程序(我已经验证了所有这些工作,并且正在requestContext中获取用户数据) 2) 设置NestJS以处理路由 我需要做什么 将事件和上下文变量交给NestJS控制器或可注入服务,以便我可以进行进一步的验证和个性化设置 main.ts首先路由请求的snipbit。注意事件和上下文 async function bootstrapServer(): Promise<Server> { if

我在下面的例子中

我所做的

1) 成功地将其部署到AWS并添加了一个Cognito授权程序(我已经验证了所有这些工作,并且正在requestContext中获取用户数据)

2) 设置NestJS以处理路由

我需要做什么

事件
上下文
变量交给NestJS控制器或可注入服务,以便我可以进行进一步的验证和个性化设置

main.ts首先路由请求的snipbit。注意事件和上下文

async function bootstrapServer(): Promise<Server> {
  if (!cachedServer) {
    try {
      const expressApp = require('express')();
      const nestApp = await NestFactory.create(AppModule, expressApp);
      nestApp.use(eventContext());
      await nestApp.init();
      cachedServer = createServer(expressApp, undefined, binaryMimeTypes);
    }
    catch (error) {
      return Promise.reject(error);
    }
  }
  return Promise.resolve(cachedServer);
}

export const handler: Handler = async (event: any, context: Context) => {
  cachedServer = await bootstrapServer();
  // LOOK HERE!!!!!!
  // How do I pass  event and context
  return proxy(cachedServer, event, context, 'PROMISE').promise;
}
import { AppService } from './app.service';

@Controller()
export class AppController {
  // how do I access event and context in this controller class?
  constructor(private readonly appService: AppService) {}

  @Get('hello')
  getHello(): string {
    return this.appService.getHello();
  }
}

终于找到了这个

给了我需要的提示

的一部分是将事件信息添加到
req
正文的中间件

在app.ts(或任何您的启动文件中)

和在控制器/分解器中

  @Query(returns => String)
  async eventCreate(@Context() context, @Info() info): Promise<string> {
      let c = context;
      return Promise.resolve("WTF");
  }
@Query(返回=>字符串)
异步事件创建(@Context()Context,@Info()Info):承诺{
设c=上下文;
返还承诺。解决(“WTF”);
}
  @Query(returns => String)
  async eventCreate(@Context() context, @Info() info): Promise<string> {
      let c = context;
      return Promise.resolve("WTF");
  }