【发布时间】:2019-05-30 22:02:41
【问题描述】:
我正在使用 servlerless/lambda 设置 graphql 端点,并且在尝试连接到 graphql-yoga 附带的 graphql 游乐场时收到错误消息。当我去有操场 (/playground) 的路线时,它会启动操场界面,但它只是说:
无法访问服务器
在操场的右上角。值得注意的是,我正在使用 makeRemoteExecutableSchema 实用程序代理到另一个 graphql 端点(这是我的名为 Prismic 的 CMS)。我不认为这是问题所在,因为在普通快递服务器上进行测试时,我已成功将其与操场连接。
这是我的 handler.js
中的代码'use strict';
const { makeRemoteExecutableSchema } = require('graphql-tools');
const { PrismicLink } = require("apollo-link-prismic");
const { introspectSchema } = require('graphql-tools');
const { ACCESS_TOKEN, CMS_URL } = process.env;
const { GraphQLServerLambda } = require('graphql-yoga')
const lambda = async () => {
const link = PrismicLink({
uri: CMS_URL,
accessToken: ACCESS_TOKEN
});
const schema = await introspectSchema(link);
const executableSchema = makeRemoteExecutableSchema({
schema,
link,
});
return new GraphQLServerLambda({
schema: executableSchema,
context: req => ({ ...req })
});
}
exports.playground = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
const graphQl = await lambda();
return graphQl.playgroundHandler(event, context, callback);
};
我已经按照this 指南让它运行到这里,并且我相当确定我已经遵循了适用于我正在尝试做的事情的类似步骤,但似乎无法弄清楚我在哪里出错了。
谢谢,
【问题讨论】:
-
您应该检查 Chrome 开发工具中的网络选项卡,以查看它向您的 graphql 端点触发的 HTTP 请求。希望它能告诉你更多关于错误的信息,如果你把它贴在这里,有人可能会提供帮助。
-
您使用的教程没有谈论权限。您是否为您的 lambda 配置了权限以允许网络请求?
标签: javascript node.js aws-lambda graphql