我刚刚开始使用AWS-Lambda,AWS-API Gateway和ExpressJs。我无法在“ExpressJs”应用程序中找到AWS-Lambda“上下文”的可用性。
我正在使用:
在Aws Lambda中,我使用aws-serverless-express接收API-Gateway请求并初始化节点应用程序。以下是我从不同的教程等中找到的结构
lambda.js(从API-Gateway发起。在“app.js”调用中提供“context”变量)
'use strict'
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)
exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context)
app.js表达的核心是:
var express = require('express');
...
var app = express();
...
app.use('/', index);
...
module.exports = app;
我的问题:
任何意见都赞赏。
答案 0 :(得分:2)
您需要添加aws-serverless-express包中包含的中间件,这些中间件公开event
和context
个对象。你这样添加:
const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware')
app.use(awsServerlessExpressMiddleware.eventContext())
配置此中间件后,event
和context
个对象将添加到请求中。您可以像这样访问这些对象:
var event = req.apiGateway.event;
var context = req.apiGateway.context;