我有一个使用Amplify制作的工作应用程序(带有AppSync API和Cognito)。我想做另一个不同的应用程序,但与我的第一个项目共享一些数据(相同的产品,但不同的目标,用途和安全规则)。
有没有一种干净的方法可以在新项目中使用Amplify,让GraphQL API从我的第一个Amplify项目中获取DynamoDB中的一些数据?
这些数据会经常变化,而且会很重--所以我不太喜欢任何同步解决方案。
我想过这些解决方案,但我没有足够的经验来判断其中是否有一个是好的。
亚马逊有一篇关于微服务架构的文章,可能对你有用。https:/aws.amazon.comlogmobileappsync-microservices。
我不知道Amplify是否支持添加多个API,如果支持,你可以添加,然后只拉上那个API。
我认为最简单的方法就是创建一个查询端点,使用lambda从你的其他数据源中获取数据。
所以,在这种情况下,你可以编辑你的模式,就像这样
query
{
externalData [ExternalData] @function(name: "getExternalData")
}
然后你需要添加lambda函数 getExternalData
,它将负责根据需要查询数据。
上面的文章对这个架构有更深入的介绍