[英]Querying data from DynamoDB using AWS Amplify
我有一个 React 应用程序,我正在使用 AWS amplify。 我的问题是,当我从 DynamoDB 查询数据时,是通过 AWS AppSync 到 go 的正确方法,然后我有一个 lambda function 查询数据库还是 appsync 只是这样做? 这样做的正确途径是什么? 是 React->Appsync->lambda->DynamoDb 还是我遗漏了什么? 此外,dynamo db 是否需要位于 EC2 实例或 AWS fargate 之类的内部,还是可以单独放置? 谢谢!
你可以只做 React->AppSync->DynamoDb。 AppSync 具有可用于 DynamoDB 的一级集成,这意味着 DynamoDB 可以是 AppSync 数据源。 因此,您可以直接从 AppSync 查询、更新和删除 DynamoDb 中的项目,而无需通过 Lambda。
您可以先导出 GraphQl 生成的查询,然后使用此代码(GraphQl 生成这样的文件夹src/graphql/queries.js
const client = require("../common/gqlClient")();
const gql = require("graphql-tag");
const _ = require("lodash");
const { clubBySportStatus } = require("../common/queriesAndMutations");
let allClubsList = async (sport) => {
try {
let clubsList;
let clubsInfoList = [];
let nextTokenInfo = null;
do{
let clubs = await client.query({
query: gql(clubBySportStatus),
variables: {
sport: sport,
eq: { status: "ACTIVE" },
},
limit: 100,
nextToken: nextTokenInfo,
fetchPolicy: "network-only",
});
clubsList = clubs.data.clubBySportStatus.items;
clubsList.forEach((item) => clubsInfoList.push(item));
nextTokenInfo = clubs.data.clubBySportStatus.nextToken;
} while (Boolean(nextTokenInfo));
if (clubsInfoList && clubsInfoList.length) {
return {
success: true,
data: clubsInfoList,
};
}
} catch (eX) {
console.error(`Error in allClubsList: ${JSON.stringify(eX)}`);
return {
success: false,
message: eX.message,
};
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.