Amazon cloudformation 将现有DynamoDB数据源与Amplify和AppSync一起使用

Amazon cloudformation 将现有DynamoDB数据源与Amplify和AppSync一起使用,amazon-cloudformation,aws-amplify,aws-appsync,Amazon Cloudformation,Aws Amplify,Aws Appsync,我有一个使用Amplify(使用AppSync API和Cognito)制作的工作应用程序。我想制作另一个不同的应用程序,但与我的第一个项目共享一些数据(相同的产品,但不同的目标、用法和安全规则) 有没有一种干净的方法可以在新项目中使用Amplify,告诉GraphQLAPI从我的第一个Amplify项目中获取DynamoDB中的一些数据 这些数据会经常更改,而且会很重,所以我不太喜欢任何同步解决方案 我考虑过这些解决方案,但我没有足够的经验来判断其中一个是否好: 在这个新项目中不使用Ampl

我有一个使用Amplify(使用AppSync API和Cognito)制作的工作应用程序。我想制作另一个不同的应用程序,但与我的第一个项目共享一些数据(相同的产品,但不同的目标、用法和安全规则)

有没有一种干净的方法可以在新项目中使用Amplify,告诉GraphQLAPI从我的第一个Amplify项目中获取DynamoDB中的一些数据

这些数据会经常更改,而且会很重,所以我不太喜欢任何同步解决方案

我考虑过这些解决方案,但我没有足够的经验来判断其中一个是否好:

  • 在这个新项目中不使用Amplify而是使用SAM(但我将失去Amplify提供的所有构建管道)
  • 对宿主和身份验证使用Amplify,但使用SAM配置AppSync并将其插入现有数据源
  • 也许云信息是答案,但我不知道如何在Amplify中直接与之交互

亚马逊有一篇关于微服务架构的文章,可能对您有用

我不确定Amplify是否支持向其添加多个api,如果支持,您可以添加它,然后只在其上拉api

在我看来,最简单的方法就是创建一个查询端点,使用lambda从其他数据源获取数据

因此,在这种情况下,您可以将您的模式编辑为如下内容

query
{
  externalData [ExternalData] @function(name: "getExternalData")
}
然后需要添加lambda函数
getExternalData
,该函数将负责根据需要查询数据


上面的文章提供了有关此体系结构的更深入的详细信息

您是否考虑过使用多前端工作流?是的,但我也希望得到不同的后端-使用不同的GraphQL api模式和不同的用户池。如果这是您所需要的唯一数据,您可以将微服务体系结构与AppSync一起使用,也许最简单的方法是使用解析程序从那里查询数据。我将在回答中对此进行扩展