gpt4 book ai didi

node.js - 运行 nodejs + expressjs 时访问 aws-lambda 上下文

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:51 24 4
gpt4 key购买 nike

我刚刚开始使用 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;

我的问题:

  1. 有没有办法用这个访问 AWS-Lambda“上下文”结构?
  2. 如果没有,使其可用的最佳“模式”是什么?

感谢任何意见。

最佳答案

您需要添加包含在 aws-serverless-express 包中的中间件,它公开了 eventcontext 对象。你这样添加它:

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

配置此中间件后,eventcontext 对象将添加到请求中。您可以像这样访问这些对象:

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

关于node.js - 运行 nodejs + expressjs 时访问 aws-lambda 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42436527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com