4

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

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

我还尝试在 AppSync 控制台中映射其中一个表,并amplify pull从本地项目中进行映射,假设这将在我的本地 schema.graphql 中添加表的定义,但这也没有发生。它没有从后端应用同步控制台拉下新映射的数据源的详细信息。

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

你能建议如何做到这一点吗?

此外,我们还有现有的 lamdba 函数,我们也希望将其用于这个新的 Amplify 项目。您能否也为此提出建议。

任何帮助深表感谢!

4

2 回答 2

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 脚本。

于 2021-01-09T12:32:50.677 回答
0

您可以使用它amplify import storage来导入现有的 DynamoDB 表或 S3 存储桶。

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

另请查看 重用现有 AppSync GraphQL API - 如果它们被 API 包装,它可能有助于重用 lambda 函数。

于 2021-09-30T11:17:57.977 回答