我们的应用程序在 dynamodb 中有现有数据库。对于我们的新 React 应用程序之一,我们想要使用 AWS Amplify,并且我们正在尝试使用现有的表。
我创建了一个框架项目,然后转到后端
AWS AppSync console -> Data Sources
并将现有表映射到它。我将该表定义添加到了我的 React 应用程序中的 schema.graphql 中。当我进行放大推送时,我看到它在 dynamodb 中创建一个新表,而不是指向现有数据库。
我还尝试在 AppSync Console 中映射其中一个表,并从本地项目执行
amplify pull
,假设这将在我的本地 schema.graphql 中添加表的定义,但这也没有发生。它没有从后端应用程序同步控制台提取新映射的数据源的详细信息。
我现有的数据库有大量数据,并且也与其他应用程序共享。我不想创建新表。
您能建议如何实现这一点吗?
我们还有现有的 lamdba 函数,我们也希望将其利用到这个新的 Amplify 项目中。您也可以为此提出建议吗?
非常感谢任何帮助!
下面文件中的第 22 行显示了 graphql.schema 转换器运行时如何构造表名;也就是说 - 该名称源自 GraphQLAPI ID,这似乎是一个单向过程。
TableName: joinWithEnv('-', [SyncResourceIDs.syncTableName, Fn.GetAtt(ResourceConstants.RESOURCES.GraphQLAPILogicalID, 'ApiId')]),
唯一的选择是尝试修补生成的 CFN 脚本。
您可以使用
amplify import storage
导入现有 DynamoDB 表或 S3 存储桶。
更多信息:https://docs.amplify.aws/cli/storage/import/
另请参阅 重新使用现有的 AppSync GraphQL API - 如果 lambda 函数由 API 封装,它可能有助于重用它们。
我们在 Gen2 中有关于此的文档。设置架构和资源后,您将需要添加模型和查询
请按照文档这里