我们在 dynamodb 中有现有的数据库用于我们的应用程序。对于我们的一个新 React 应用程序,我们想要使用 AWS Amplify,并且我们正在尝试使用现有表。
我创建了一个骨架项目并转到后端 AWS AppSync console -> Data Sources
并将现有表映射到它。我将该表定义添加到我的 react 应用程序中的 schema.graphql 中。当我进行放大推送时,我看到它在 dynamodb 中创建了一个新表,而不是指向现有的数据库。
我还尝试映射 AppSync 控制台中的一个表,并且做了 amplify pull
来自本地项目,假设将在我的本地 schema.graphql 中添加表的定义,但这也没有发生。它没有从后端应用同步控制台拉取新映射数据源的详细信息。
我现有的数据库有很多数据,也与其他应用程序共享。我不想创建一个新表。
你能建议如何做到这一点吗?
此外,我们还有现有的 lamdba 函数,我们也希望将其用于这个新的 Amplify 项目。您能否也为此提出建议。
任何帮助深表感谢!
最佳答案
下面文件中的第 22 行显示了当 graphql.schema 转换器运行时表名是如何构造的;也就是说 - 该名称源自 GraphQLAPI ID,这似乎是一种单向过程。
TableName: joinWithEnv('-', [SyncResourceIDs.syncTableName, Fn.GetAtt(ResourceConstants.RESOURCES.GraphQLAPILogicalID, 'ApiId')]),
https://github.com/aws-amplify/amplify-cli/blob/e1e07b245db0963c4655e646c53e7615febe2930/packages/graphql-transformer-core/src/util/syncUtils.ts唯一的选择是尝试修补生成的 CFN 脚本。
关于graphql - 如何将现有的 dynamo db 与 AWS Amplify 和 graphql 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65553573/