gpt4 book ai didi

javascript - 错误为 "message": "Forbidden" trying to query an Apollo Serverless Lambda server

转载 作者:行者123 更新时间:2023-11-30 11:00:58 25 4
gpt4 key购买 nike

我正在尝试遵循这个示例,https://www.apollographql.com/docs/apollo-server/deployment/lambda/ ,创建一个返回“Hello world”的无服务器 GraphQL 服务器。

根目录基本上只包含两个文件,graphql.jsserverless.yml:

> tree . -I node_modules
.
├── graphql.js
├── package-lock.json
├── package.json
└── serverless.yml

如示例所示,graphql.js 读取

const { ApolloServer, gql } = require('apollo-server-lambda');

const typeDefs = gql`
type Query {
hello: String
}
`;

const resolvers = {
Query: {
hello: () => 'Hello world!',
},
}

const server = new ApolloServer({ typeDefs, resolvers });

exports.graphqlHandler = server.createHandler();

serverless.yml读取

service: apollo-lambda

provider:
name: aws
runtime: nodejs8.10
functions:
graphql:
handler: graphql.graphqlHandler
events:
- http:
path: graphql
method: post
cors: true
- http:
path: graphql
method: get
cors: true

这似乎部署成功:

> serverless deploy
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
.....
Serverless: Stack create finished...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service apollo-lambda.zip file to S3 (4.55 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
....................................
Serverless: Stack update finished...
Service Information
service: apollo-lambda
stage: dev
region: us-east-1
stack: apollo-lambda-dev
resources: 12
api keys:
None
endpoints:
POST - https://e9g6evoks0.execute-api.us-east-1.amazonaws.com/dev/graphql
GET - https://e9g6evoks0.execute-api.us-east-1.amazonaws.com/dev/graphql
functions:
graphql: apollo-lambda-dev-graphql
layers:
None
Serverless: Run the "serverless" command to setup monitoring, troubleshooting and testing.

但是,如果我去 Playground 并查询“你好”,我会收到一条“禁止”消息:

enter image description here

那就是我的

query {
hello
}

而不是导致 https://www.apollographql.com/docs/apollo-server/essentials/server/ 中记录的响应,结果为

{
"error": {
"message": "Forbidden"
}
}

知道我在这里做错了什么吗?

最佳答案

好的,我发现错误了。 apollo-server-lamdba 存在一个已知问题。

浏览 Playground 时(位于 https://e9g6evoks0.execute-api.us-east-1.amazonaws.com/dev/graphql ),端点的 URL 已预先归档,但它错过了 /dev/ 部分(在 serverless.yml 中定义的阶段部分)。只需添加它即可正常工作。

cfr:https://github.com/apollographql/apollo-server/issues/2136#issuecomment-458465128

关于javascript - 错误为 "message": "Forbidden" trying to query an Apollo Serverless Lambda server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com