我刚刚开始使用 AWS-Lambda、AWS-API 网关和 ExpressJs。我无法找到 AWS-Lambda“上下文”如何在我的“ExpressJs”应用程序中可用。
我正在使用:
- AWS-Lambda
- AWS-API 网关
- NodeJs v4.3.2
- ExpressJs 4.14.1
- ClaudiaJs 2.7.0
在 Aws Lambda 中,我使用 aws-serverless-express 接收 API 网关请求并初始化 Node 应用程序。以下是我从不同的教程等中找到的结构
lambda.js(从 API 网关启动。在调用“app.js”时提供“上下文”变量)
'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 express 的核心是:
var express = require('express');
...
var app = express();
...
app.use('/', index);
...
module.exports = app;
我的问题:
- 有没有办法用这个访问 AWS-Lambda“上下文” 结构?
- 如果没有,使其可用的最佳“模式”是什么?
感谢任何意见。
最佳答案
您需要添加包含在 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;
关于node.js - 运行 nodejs + expressjs 时访问 aws-lambda 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42436527/