如何解决部署良好,无法在无服务器离线的情况下在本地运行Apollo服务器
通过以下页面,我将在AWS Lambda上使用无服务器框架进行部署:https://www.apollographql.com/docs/apollo-server/deployment/lambda/#gatsby-focus-wrapper。我运行“无服务器部署”,操场在以下位置运行良好:https://xxxxxx.execute-api.us-xxxx-x.amazonaws.com/dev/graphql。这是我的代码和yml文件,除了重命名1-2变量外,它们是完全相同的代码。
root / functions / main / index.handler:
const { ApolloServer,gql } = require('apollo-server-lambda');
// Construct a schema,using GraphQL schema language
const typeDefs = gql`
type Query {
hello: String
}
`;
// Provide resolver functions for your schema fields
const resolvers = {
Query: {
hello: () => 'Hello world!',},};
const server = new ApolloServer({
typeDefs,resolvers,context: ({ event,context }) => ({
headers: event.headers,functionName: context.functionName,event,context,}),});
exports.handler = server.createHandler();
无服务器yml:
service: myapp
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
functions:
graphql:
# this is formatted as <FILENAME>.<HANDLER>
handler: functions/main/index.handler
events:
- http:
path: graphql
method: post
cors: true
- http:
path: graphql
method: get
cors: true
plugins:
- serverless-offline
它在用于部署的云上运行良好,但是,如果我在本地运行“无服务器脱机”而不进行任何更改并访问http:// localhost:3000 / dev / graphql,它将输出:
{
"error": "Unexpected end of JSON input"
}
如果刷新页面,网页将返回“ HTTP ERROR 502”。 在我的IDE上,控制台会继续打印以下日志:
offline: GET /dev/graphql (λ: graphql)
offline: Failure: Query was defined in resolvers,but it's not an object
Error: Query was defined in resolvers,but it's not an object
我认为这是官方文档中非常基本的设置,并且我遵循完全相同的代码进行操作,这对于部署也很有效。不知道为什么通过使用serverless-offline无法在本地工作。有人可以看看吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。