Reactjs AWS AppSync,变异后如何发送电子邮件?
我正在为一个小网站使用Amplify和Appsync,我正在尝试创建一个联系表单,我需要在变异后发送一封电子邮件。有人能建议最好的方法吗?其实很简单。执行变异时,可以调用lambda并使用aws sdk中的SES执行以下代码 当您选择函数作为数据源时,将触发AppSync中的lambda。不要忘记对此具有适当的IAM权限。然后需要两个映射模板,一个用于请求,一个用于响应。通过该请求,您可以将突变端点的输入参数传递给lambda mappingTemplate.request.vtl可能是这样的 对于mappingTemplate.response.vtl 这将执行lambda,并在event.aguments中传递参数Reactjs AWS AppSync,变异后如何发送电子邮件?,reactjs,amazon-web-services,aws-amplify,aws-appsync,Reactjs,Amazon Web Services,Aws Amplify,Aws Appsync,我正在为一个小网站使用Amplify和Appsync,我正在尝试创建一个联系表单,我需要在变异后发送一封电子邮件。有人能建议最好的方法吗?其实很简单。执行变异时,可以调用lambda并使用aws sdk中的SES执行以下代码 当您选择函数作为数据源时,将触发AppSync中的lambda。不要忘记对此具有适当的IAM权限。然后需要两个映射模板,一个用于请求,一个用于响应。通过该请求,您可以将突变端点的输入参数传递给lambda mappingTemplate.request.vtl可能是这样的
如何触发Lambda?我编辑了我的答案,让你看看如何触发Lambda。还有很多关于这个主题的文档,因为还有很多。例如,你需要获得正确的许可等@benra谢谢你的建议。一个问题。据我所知,那里有两个graphql调用,第一个是变异本身,而不是这里,第二个是发送电子邮件。你是怎么触发的?您是否有其中一个查询,其中包含两个查询?还是从客户端启动第二个?是否可以将所有内容委托给服务器,而只从客户端发送变异?非常感谢你的建议。
{
"version": "2018-05-29",
"operation": "Invoke",
"payload": {
"field": "fieldVariable"
"arguments": $utils.toJson($context.arguments)
}
}
#if( $context.result && $context.result.error )
$utils.error($context.result.error)
#else
$utils.toJson($context.result)
#end
import { SES } from 'aws-sdk';
...
exports.handler = async event => {
const bccEmailAddresses = [];
const ccEmailAddresses = [];
const toEmailAddresses = [];
const bodyData = '';
const bodyCharset = 'UTF-8';
const subjectdata = '';
const subjectCharset = 'UTF-8';
const sourceEmail = '';
const replyToAddresses = [];
const emailParams = {
Destination: {
BccAddresses: bccEmailAddresses,
CcAddresses: ccEmailAddresses,
ToAddresses: toEmailAddresses
},
Message: {
Body: {
Text: {
Data: bodyData,
Charset: bodyCharset
}
},
Subject: {
Data: subjectdata,
Charset: subjectCharset
}
},
Source: sourceEmail,
ReplyToAddresses: replyToAddresses
};
await SES.sendEmail(emailParams).promise();
}