AWS AppSync Lambda解析器的Get查询返回类型可以是任何自定义类型或标量类型。以下是一个示例解决方法:
首先,创建一个Lambda函数来处理Get查询。在AWS控制台的Lambda服务中创建一个新函数,选择适当的运行时(例如Node.js、Python等)。
在Lambda函数的代码中,编写逻辑来处理Get查询。根据你的数据模型和需要的返回类型,可以使用DynamoDB或其他数据源进行数据检索。以下是一个示例代码片段,使用Node.js和DynamoDB:
const AWS = require('aws-sdk');
const dynamoDB = new AWS.DynamoDB.DocumentClient();
exports.handler = async (event) => {
const { id } = event.arguments; // 获取Get查询的参数
const params = {
TableName: 'YourTableName',
Key: {
id: id
}
};
try {
const data = await dynamoDB.get(params).promise(); // 使用DynamoDB进行查询
return data.Item; // 返回查询结果
} catch (error) {
console.error(error);
throw new Error('Error retrieving data from DynamoDB');
}
};
请注意,上述代码中的YourTableName
应该替换为你的DynamoDB表的名称。
将上述Lambda函数部署到AWS Lambda,并记下其ARN(Amazon资源名称)。
在AWS AppSync控制台中,创建一个新的数据源,并选择Lambda函数作为解析器。将步骤3中的Lambda函数ARN添加到解析器配置中。
在AppSync模式中,定义Get查询的返回类型。可以使用自定义类型或标量类型,具体取决于查询返回的数据结构。以下是一个示例模式片段:
type Query {
getItem(id: ID!): Item
}
type Item {
id: ID!
name: String
description: String
# 其他字段...
}
请根据你的数据模型定义适当的字段。
在AWS AppSync控制台中,创建一个新的解析器,将其与Get查询关联,并指定返回类型为上述定义的类型(例如Item
)。
保存并部署AppSync API。
现在,你的AppSync API就可以处理Get查询,并返回你定义的类型。