在运行nodejs + expressjs时访问aws-lambda上下文

我刚刚开始使用AWS-Lambda,AWS-API Gateway和ExpressJs。 我在查找“ExpressJs”应用程序中如何使用AWS-Lambda“上下文”时遇到问题。

我在用着:

  • AWS-LAMBDA
  • AWS-API网关
  • NodeJs v4.3.2
  • ExpressJs 4.14.1
  • ClaudiaJs 2.7.0

在Aws Lambda中,我使用aws-serverless-express接收API网关请求并初始化节点应用程序。 以下是我从不同的教程中find的结构等

lambda.js(从API网关启动。在调用“app.js”时提供“context”variables)

'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.jsexpression的核心是:

 var express = require('express'); ... var app = express(); ... app.use('/', index); ... module.exports = app; 

我的问题:

  1. 有没有办法使用这种结构来访问AWS-Lambda“上下文”?
  2. 如果不是的话,最好的“模式”是什么?

任何input赞赏。

您需要添加暴露eventcontext对象的aws-serverless-express包中包含的中间件。 你可以像这样添加它:

 const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware') app.use(awsServerlessExpressMiddleware.eventContext()) 

一旦configuration了这个中间件, eventcontext对象将被添加到请求中。 你可以像这样访问这些对象:

 var event = req.apiGateway.event; var context = req.apiGateway.context;