Express Lambda-GraphQL端点可以在任何地方工作,但同一域上的另一个Lambda端点除外

Express Lambda-GraphQL端点可以在任何地方工作,但同一域上的另一个Lambda端点除外,express,aws-lambda,amazon-rds,apollo,serverless,Express,Aws Lambda,Amazon Rds,Apollo,Serverless,因此,我在app.mydomain.com/graphql 堆栈由运行在express上的Apollo组成,由Sequelize解析,指向RDS数据库 我的主要web应用程序lambda端点是app.mydomain.com/,它由express、vue和Apollo客户端组成。接下来,我将称之为Web服务器 使用此设置,以下是有效的方法: 当graphql服务器和Web服务器在本地运行时,站点获取数据 当Web服务器是本地的,但指向生产graphql端点时,站点获取数据 生产graphql端点

因此,我在
app.mydomain.com/graphql

堆栈由运行在express上的Apollo组成,由Sequelize解析,指向RDS数据库

我的主要web应用程序lambda端点是
app.mydomain.com/
,它由express、vue和Apollo客户端组成。接下来,我将称之为Web服务器

使用此设置,以下是有效的方法:

  • 当graphql服务器和Web服务器在本地运行时,站点获取数据

  • 当Web服务器是本地的,但指向生产graphql端点时,站点获取数据

  • 生产graphql端点可以通过它在app.mydomain.com/graphiql上提供的graphiql平台获取数据
  • 生产图SQL端点通过
    curl
    从本地计算机获取数据
  • 不过。当我的Web服务器在生产环境中运行时,它无法从graphql端点获取数据。成功的graphiql请求和失败的web服务器请求的头完全相同,但前者返回HTTP状态
    200
    和数据,后者返回
    502
    和无数据

    这怎么可能?是否需要更改某种IAM或VPC设置,以使一个Lambda端点到达另一个端点


    我有点困惑,因为graphiql和域外请求似乎工作正常。

    您解决了这个问题吗?我认为可能的原因是apollo server express将带有
    req
    的上下文作为属性传递,而apollo server lambda将带有
    event
    的上下文作为属性传递。您解决了这个问题吗?我认为这可能是因为apollo server express将带有
    req
    的上下文作为属性传递,而apollo server lambda将带有
    event
    的上下文作为属性传递。