AWS AppSync 更新架构

Posted

技术标签:

【中文标题】AWS AppSync 更新架构【英文标题】:AWS AppSync Update Schema 【发布时间】:2019-12-11 13:29:09 【问题描述】:

我正在使用 AWS AppSync Web 控制台,我从头开始创建了一个新 API。

我创建了一个这样的新资源:

type ToDo 
  id: ID!
  title: String!

AWS AppSync 创建 DynamoDB 表和架构后,如果我想更新架构并添加新字段该怎么办?

type ToDo 
  id: ID!
  title: String!
  completed: Boolean

我知道 AWS Amplify 有一个命令 amplify api gql-compile,然后是 amplify push,它将更新架构和 DynamoDB 表。

有没有办法通过 AWS AppSync web console 做到这一点?

【问题讨论】:

我相信你只是想在 web 控制台中简单地编辑和保存 正确,我想简单地编辑、保存和生成新的突变、查询和从网络更新数据库表。 @AbeEstrada 你找到解决方案了吗? @atlascoder 还没有,但也许新的Admin 是我需要的,但我需要看看 @AbeEstrada 谢谢,管理员对我来说是新功能 【参考方案1】:

如果您使用 AWS AppSync 控制台向导来创建它。您需要执行以下操作:

type ToDo 
    id: ID!
    title: String
    completed: Boolean # add here


input UpdateToDoInput 
    id: ID!
    title: String
    completed: Boolean # add here


input CreateToDoInput 
    title: String
    completed: Boolean # add here


input TableToDoFilterInput 
    id: TableIDFilterInput
    title: TableStringFilterInput
    completed: Boolean # add here

现在它们应该是控制台右上角的橙色按钮“保存架构”。如果您按下它,它将保存您的新架构,并且您可以针对您的 AWS AppSync API 运行一些新查询。

转到查询窗口并将完成添加到您的突变和 listToDos 选择集中。

# Click the orange "Play" button and select the createToDo
# mutation to create an object in DynamoDB.
# If you see an error that starts with "Unable to assume role",
# wait a moment and try again.
mutation createToDo($createtodoinput: CreateToDoInput!) 
  createToDo(input: $createtodoinput) 
    id
    title
    completed
  



# After running createToDo, try running the listToDos query.
query listToDos 
  listToDos 
    items 
      id
      title
      completed
    
  

更新您的查询变量以包含已完成的值


  "createtodoinput": 
    "title": "Hello, world!",
    "completed":true
  

对于一个简单的属性,这应该是您需要做的所有事情。

【讨论】:

感谢您的回答,但这就是为什么我想避免手动进行所有更改,希望在网络上有一个“更新资源”(amplify api gql-compile && amplify push)按钮,可以跟踪突变和查询,我可以只关注架构,因为您的解释适用于简单的更新。

以上是关于AWS AppSync 更新架构的主要内容,如果未能解决你的问题,请参考以下文章

用于 ElasticSearch 服务的简单 AWS AppSync 架构和解析器

用于更新相关表的 AWS Appsync 解析器

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

将对象存储到数组中,而不在 AWS AppSync 架构中创建新表

通过 AWS AppSync 中的突变更新 GraphQL 数据时出错

如何在 AWS AppSync GraphQL 架构上处理多个 @auth 指令?