在将 aws cdk 与 appsync 一起使用时,如何将突变添加到 graphql 架构并防止部署失败?
Posted
技术标签:
【中文标题】在将 aws cdk 与 appsync 一起使用时,如何将突变添加到 graphql 架构并防止部署失败?【英文标题】:While using aws cdk with appsync, how to add mutation to graphql schema and prevent deployment from failing? 【发布时间】:2020-08-17 01:49:15 【问题描述】:当我的架构看起来像这样时,aws cdk 部署良好(注意突变已被注释掉):
schema
query: Query
# mutation: Mutation
type AppUser
userId: String
fullName: String
type Query
getUser(id: ID!): AppUser
getUsers: [AppUser]
# type Mutation
# addUser(id: ID!, newUser: AppUser!): AppUser!
#
但是当我取消注释 Mutation 部分时:
schema
query: Query
mutation: Mutation
type AppUser
userId: String
fullName: String
type Query
getUser(id: ID!): AppUser
getUsers: [AppUser]
type Mutation
addUser(newUser: AppUser!): AppUser!
cdk 在AWS::AppSync::GraphQLSchema
处失败,并显示以下消息:
架构创建状态失败,详细信息:保存架构时发生内部故障。帮助?
【问题讨论】:
【参考方案1】:来自 aws cdk 的错误消息非常含糊。问题出在我的 graphql 架构上。 AppUser
类型不能用作 addUser
突变的输入类型。我的解决方案是创建一个与AppUser
具有相同数据结构的新类型,并以input
而不是type
开头。新架构如下所示:
schema
query: Query
mutation: Mutation
type AppUser
userId: String
fullName: String
input NewUser
userId: String
fullName: String
type Query
getUser(id: ID!): AppUser
getUsers: [AppUser]
type Mutation
addUser(newUser: NewUser!): AppUser!
【讨论】:
以上是关于在将 aws cdk 与 appsync 一起使用时,如何将突变添加到 graphql 架构并防止部署失败?的主要内容,如果未能解决你的问题,请参考以下文章
AWS-CDK Appsync Codefirst 输入类型
aws cdk appsync Schema Creation Status is FAILED with details: 保存架构时发生内部故障
验证 Apollo 客户端以使 AppSync 与 @aws_subscribe 一起使用