Typescript 使用nest.js在AWS Lambda中获取Cognito数据(即requestContext)
我在下面的例子中 我所做的 1) 成功地将其部署到AWS并添加了一个Cognito授权程序(我已经验证了所有这些工作,并且正在requestContext中获取用户数据) 2) 设置NestJS以处理路由 我需要做什么 将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
事件
和上下文
变量交给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");
}