Работает ли http-proxy-middleware с Lambda без сервера? - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь прокси внешнего API через Лергду без сервера. В следующем примере используется следующий код: http://localhost: 3000 / users / 1 возвращает 200, но тело пусто. Я должен что-то пропустить: http://localhost: 3000 / users / 11 возвращает 404 (как и ожидалось).

index. js

'use strict';
const serverless = require('serverless-http');
const express = require('express');
const {
  createProxyMiddleware
} = require('http-proxy-middleware');

const app = express();

const jsonPlaceholderProxy = createProxyMiddleware({
  target: 'http://jsonplaceholder.typicode.com',
  changeOrigin: true,
  logLevel: 'debug'
});

app.use('/users', jsonPlaceholderProxy);

app.get('/', (req, res) => {
  res.json({
    msg: 'Hello from Serverless!'
  })
})

const handler = serverless(app);
module.exports.handler = async (event, context) => {
  try {
    const result = await handler(event, context);
    return result;
  } catch (error) {
    return error;
  }
};

serverless.yml

service: sls-proxy-test

provider:
  name: aws
  runtime: nodejs12.x

plugins:
  - serverless-offline

functions:
  app:
    handler: index.handler
    events:
      - http:
          method: ANY
          path: /
      - http: "ANY {proxy+}"

пакет. json

{
  "name": "proxy",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "sls": "sls",
    "offline": "sls offline start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "4.17.1",
    "http-proxy-middleware": "1.0.1",
    "serverless-http": "2.3.2"
  },
  "devDependencies": {
    "serverless": "1.65.0",
    "serverless-offline": "5.12.1"
  }
}
...