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 架构错误(资源不在 stackUpdateComplete 状态)
将对象存储到数组中,而不在 AWS AppSync 架构中创建新表