Gur*_*uru 7 graphql netlify apollo-server serverless
上下文: 我正在尝试通过 Netlify 使用 Apollo Server Lambda 部署 GraphQL。我的处理程序如下:
代码:
exports.handler = server.createHandler({
cors: {
origin: '*'
}
});
Run Code Online (Sandbox Code Playgroud)
我能够在 Netlify 上成功构建和部署 - 但是服务器在启动时抛出错误。Netlify 正在寻找要触发的事件,但我使用的 Apollo Server 处理程序没有提供。我们如何将此处理程序连接到使用事件的处理程序?
错误信息:
{"errorType":"Error","errorMessage":"Unable to determine event source based on event.","trace":["Error: Unable to determine event source based on event."," at getEventSourceNameBasedOnEvent (/var/task/node_modules/@vendia/serverless-express/src/event-sources/utils.js:88:9)"," at proxy (/var/task/node_modules/@vendia/serverless-express/src/configure.js:38:51)"," at handler (/var/task/node_modules/@vendia/serverless-express/src/configure.js:99:12)"," at Runtime.handler (/var/task/node_modules/apollo-server-lambda/dist/ApolloServer.js:51:27)"]}
Run Code Online (Sandbox Code Playgroud)
使用 Netlify CLI 时,请求似乎不包含某些AWS lambda 特定事件参数,而@vendia/serverless-express 需要它们。我能够通过以下方式修复本地开发环境中的类似情况:
const serverHandler = server.createHandler({
cors: {
origin: '*'
}
});
exports.handler = (event, context, callback) => {
return serverHandler(
{
...event,
requestContext: event.requestContext || {},
},
context,
callback
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |