我最终决定尝试使用AWS lambda创建出色的无服务器功能。对于第一个,我决定创建一个简单的函数来发送邮件。我计划能够向其发送邮件数据,然后我的功能将使用它们来发送邮件。很高兴知道,我的lambda必须可以从我的网站上访问,我打算从前端逻辑中调用它。
不幸的是,当我尝试从网站上启动lambda函数时遇到了CORS政策问题。但是,当我使用cURL从CLI启动时,一切正常。
我使用API-Gateway样板创建了lambda函数。我是一名前端开发人员,我了解一些传统的AWS服务,但是我第一次尝试使用lambda函数,因此我认为我的配置有问题。
我想与您分享我当前的lambda配置。您可以在下面找到它:
这是我的lambda设计
这是我的API-网关配置
此处是我的网关回复
此外,您还可以在我的lambda代码下面以及每次我尝试调用lambda时遇到的错误。
const getRes = (status, body) => {
return JSON.stringify({
statusCode: status,
headers: {
"Content-Type": "text/plain",
"Access-Control-Allow-Origin" : "*"
},
body,
});
};
exports.handler = async (event, context, callback) => {
if (event.body !== null && event.body !== undefined) {
/*
** SEND MAIL WITH BODY PARAMS
*/
const response = getRes(200, 'Mail sent');
callback(null, response);
} else {
const response = getRes(500, 'Params missed');
callback(null, response);
}
};
CORS策略已阻止从来源“ YYY”访问“ XXX”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。
我试图理解为什么我继续遇到这个问题而没有成功。我想我的API-网关配置有问题,但是找不到。
你有个主意吗?
谢谢!