在AWS AppSync中,可以使用GraphQL订阅来监听数据的变化。如果订阅的输入在Mutation的列表中,则可以触发订阅。
下面是一个使用AWS AppSync和AWS Lambda解决此问题的示例:
type Mutation {
addInput(input: String!): [String]
}
type Subscription {
onInputAdded(input: String!): String
}
配置AWS AppSync来处理Mutation和Subscription操作。启用AWS Lambda作为数据源,以便在Mutation时触发Subscription。例如,在AWS AppSync控制台中创建一个数据源,将其类型设置为AWS Lambda,并指定Lambda函数。
创建一个AWS Lambda函数来处理Mutation操作并触发Subscription。以下是一个示例的Node.js Lambda函数代码:
// AWS SDK和AWS AppSync客户端的导入
const AWS = require('aws-sdk');
const appsync = new AWS.AppSync();
// Lambda处理程序
exports.handler = async (event) => {
const input = event.arguments.input;
// 更新数据或触发其他逻辑
// 触发Subscription
await appsync.startSchemaUpdate({
apiId: '',
definition: `mutation { onInputAdded(input: "${input}") }`
}).promise();
return ['Success'];
};
在Lambda函数中,我们首先获取输入数据,然后根据业务逻辑更新数据。接下来,我们使用AWS SDK调用AppSync的startSchemaUpdate方法,将订阅的输入作为mutation发送给AppSync。这将触发相应的Subscription。
请确保将
替换为您的AppSync API的实际ID。
这是一个简单的示例,您可以根据实际需求进行扩展和修改。