AWS Appsync 架构错误(资源不在 stackUpdateComplete 状态)

Posted

技术标签:

【中文标题】AWS Appsync 架构错误(资源不在 stackUpdateComplete 状态)【英文标题】:AWS Appsync schema error (Resource is not in the state stackUpdateComplete) 【发布时间】:2019-09-22 11:06:12 【问题描述】:

使用 AWS Appsync 开发 React 应用程序并首次尝试 graphQL。我的schema.graphql 对我来说很有意义,但抛出了一个我真的不知道如何查看发生了什么的错误。

这是一个应用程序,用户可以在其中使用通知系统发帖和评论。在amplify push 上获取Resource is not in the state stackUpdateComplete 错误消息

type User @model 
  id: ID!
  following: [User]
  follower: [User]
  post: [Post] @connection(name: "UserPost")
  comment: [Comment] @connection(name: "UserComment")
  notification: [Notification] @connection(name: "UserNotification")


type Post @model 
  id: ID!
  user: User! @connection(name: "UserPost")
  privacy: String!
  content: String!
  loved: [User]
  comment: [Comment] @connection(name: "PostComment")


type Comment @model 
  id: ID!
  user: User! @connection(name: "UserComment")
  content: String!
  loved: [User]
  post: Post @connection(name: "PostComment")


type Notification @model 
  id: ID!
  content: String!
  link: String!
  category: String!
  user: User! @connection(name: "UserNotification")

任何人都可以在我的架构文件上看到任何错误并知道如何在 Appsync 上以最佳方式调试错误吗?

【问题讨论】:

请编辑您的问题以包含您看到的实际错误消息。 @DanielRearden感谢您的评论。我刚刚添加了一条错误消息。 问:把整个栈删掉再重新构建会不会有问题?也许还检查 CloudFormation 是否有任何错误。由于对“用户”的引用,还要在 CLI 中检查 Cognito。 【参考方案1】:

connection 指令更改触发更新 DynamoDB GSI 时,会发生这种情况。 Cloudformation 对 DynamoDB GSI 有更新限制。 Amplify 团队正在积极研究 @key 指令,它将取代 @connection 指令。如果您要更改 @connection 指令,请暂时按照以下步骤操作

    每次推送只更改@connection 指令。如果要重命名连接,请先删除连接并进行推送,然后使用新名称添加它 如果推送导致失败并且后续推送可能会导致Resolver not found。这是由 Cloudformation 实现引起的,其中回滚删除了解析器,但没有创建原始解析器。您可以通过在 AppSync 控制台中添加缺少的解析器来解决此问题。

参考:https://github.com/aws-amplify/amplify-cli/issues/1406#issuecomment-494533788

【讨论】:

以上是关于AWS Appsync 架构错误(资源不在 stackUpdateComplete 状态)的主要内容,如果未能解决你的问题,请参考以下文章

AWS AppSync 更新架构

在aws appsync解析器中添加额外字段

aws amplify appsync 中的 Graphql 突变错误

在 aws appsync 解析器中添加额外字段

无法将大型 graphql 模式上传到 aws appsync

突变以在 AWS AppSync 上创建关系