【发布时间】:2021-01-09 14:03:26
【问题描述】:
如何在不手动进入 AWS 控制台的情况下添加自己的 lambda,最重要的是,如何从我的 React 应用程序中调用它?
目前,如果我想执行自己的 lambda 函数,我会转到 AWS 控制台并在那里手动创建它。显然,有一种方法可以在 VS Code 中本地执行此操作,因为 serverless-framework 已经使用 fullstack-app 部署创建了它的功能。
这是我当前使用控制台在 AWS 中创建的 Lambda 函数(使用 Amazon SES 从联系表发送电子邮件)。
var aws = require('aws-sdk');
var ses = new aws.SES({region: 'us-east-1'});
exports.handler = (event, context, callback) => {
var params = {
Destination: {
ToAddresses: [`${event.toEmail}`]
},
Message: {
Body: {Html: { Data: `${event.body}`}
},
Subject: { Data: `${event.subject}`}
},
Source: `${event.fromEmail}`
};
ses.sendEmail(params, function (err, data) {
callback(null, {err: err, data: data});
if (err) {
console.log(err);
context.fail(err);
} else {
console.log(data);
context.succeed(event);
}
});
};
我在 AWS 中为它创建了一个 REST API,并使用 axios 从我的 React 应用程序中调用它:
axios.post(`https://xxxxxxxx.execute-api.us-east-1.amazonaws.com/default/contactFormSend`, email)
.then(res => {console.log(res)})
我的目标是不在 AWS 控制台中手动创建 lambda 函数,而是使用无服务器框架架构在本地编写它并找到调用它的方法。
我到处寻找,但在学习无服务器框架架构的过程中,我觉得我错过了一些非常重要的东西。
【问题讨论】:
标签: javascript reactjs aws-lambda serverless-framework aws-serverless