微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在无服务器框架内添加和执行自己的lambda函数?

如何解决如何在无服务器框架内添加和执行自己的lambda函数?

如何在不手动进入AWS控制台的情况下添加自己的lambda,最重要的是,如何从React应用程序中调用它?

当前,如果要执行自己的lambda函数,请转到AWS控制台并在此处手动创建它。显然,有一种方法可以在VS Code中进行本地处理,因为无服务器框架已经使用 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函数,而是使用无服务器框架架构在本地编写它并找到一种调用它的方法

我到处都看过,但是在学习无服务器框架架构的过程中,我感觉好像错过了一些非常重要的事情。

解决方法

如何在不手动进入AWS控制台的情况下添加自己的lambda,并且 最重要的是?

我希望您有带有功能配置的serverless.yml文件。这是带有可能的配置https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/

的模板

如果一切就绪,只需使用serverless deploy

即可轻松进行部署

https://www.serverless.com/framework/docs/providers/aws/guide/deploying/

这是来自无服务器示例的非常简单的示例-https://github.com/serverless/examples/tree/master/aws-node-rest-api

如何从我的React应用程序中调用它?

您需要一个公开的公共端点,您可以直接采用API Gateway生成的公共端点,也可以创建自定义域并将其映射到现有域。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。