如何将现有的 dynamo 数据库与 AWS Amplify 和 graphql 结合使用

问题描述 投票:0回答:3

我们的应用程序在 dynamodb 中有现有数据库。对于我们的新 React 应用程序之一,我们想要使用 AWS Amplify,并且我们正在尝试使用现有的表。

我创建了一个框架项目,然后转到后端

AWS AppSync console -> Data Sources
并将现有表映射到它。我将该表定义添加到了我的 React 应用程序中的 schema.graphql 中。当我进行放大推送时,我看到它在 dynamodb 中创建一个新表,而不是指向现有数据库。

我还尝试在 AppSync Console 中映射其中一个表,并从本地项目执行

amplify pull
,假设这将在我的本地 schema.graphql 中添加表的定义,但这也没有发生。它没有从后端应用程序同步控制台提取新映射的数据源的详细信息。

我现有的数据库有大量数据,并且也与其他应用程序共享。我不想创建新表。

您能建议如何实现这一点吗?

我们还有现有的 lamdba 函数,我们也希望将其利用到这个新的 Amplify 项目中。您也可以为此提出建议吗?

非常感谢任何帮助!

graphql aws-amplify aws-appsync aws-amplify-sdk-js
3个回答
1
投票

下面文件中的第 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 脚本。


1
投票

您可以使用

amplify import storage
导入现有 DynamoDB 表或 S3 存储桶。

更多信息:https://docs.amplify.aws/cli/storage/import/

另请参阅 重新使用现有的 AppSync GraphQL API - 如果 lambda 函数由 API 封装,它可能有助于重用它们。


0
投票

我们在 Gen2 中有关于此的文档。设置架构和资源后,您将需要添加模型和查询

请按照文档这里

© www.soinside.com 2019 - 2024. All rights reserved.