Javascript Netflify lambda函数在本地工作,但不在生产中
我试图使用netlify及其lambda函数特性来运行节点函数。基于,我的函数/submission-created.js中有:Javascript Netflify lambda函数在本地工作,但不在生产中,javascript,node.js,aws-lambda,netlify,Javascript,Node.js,Aws Lambda,Netlify,我试图使用netlify及其lambda函数特性来运行节点函数。基于,我的函数/submission-created.js中有: const https = require("https"); exports.handler = async event => { const email = JSON.parse(event.body).payload.data.EMAIL const asking = JSON.parse(event.body).payload.d
const https = require("https");
exports.handler = async event => {
const email = JSON.parse(event.body).payload.data.EMAIL
const asking = JSON.parse(event.body).payload.data.ASKING
var formData = {
'email': email,
'first_name': '',
'last_name': asking,
'lists[]': 'NUM'
};
var encoded = Object.entries(formData).map(([k, v]) => `${k}=${encodeURIComponent(v)}`).join("&");
var endpoint = 'https://api.sendfox.com/contacts/?' + encoded;
const data = JSON.stringify(formData);
const options = {
method: 'POST',
connection: 'keep-alive',
headers: {
'Authorization': 'Bearer hhhhh',
'Content-Type': 'application/json',
},
'content-length': data.length,
};
console.log(email);
const req = https.request(endpoint, options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
console.log(d);
});
});
req.on('error', (e) => {
console.error(e);
});
req.write(data);
req.end();
return {
statusCode: 200,
body: data
};
}
当我使用netlify dev在本地运行它时,它可以像预期的那样工作,但是当推送到netlify用于构建站点的github repo时,它在生产环境中无法工作。我怎样才能解决这个问题
包结构如屏幕截图所示:
编辑:
netlify.toml:
[build]
functions = "./functions
没有错误。“站点上的输出”功能选项卡为:
8:57:43 PM: 2020-12-08T01:57:43.384Z undefined INFO to here
8:57:43 PM: 2020-12-08T01:57:43.390Z 8ca26edc-1f20-4c20-b038-
79ecdf206d92 INFO yt@ghj.org
8:57:43 PM: 2020-12-08T01:57:43.390Z 8ca26edc-1f20-4c20-b038-
79ecdf206d92 INFO 999
8:57:43 PM: 2020-12-08T01:57:43.390Z 8ca26edc-1f20-4c20-b038-
79ecdf206d92 INFO yt@ghj.org
8:57:43 PM: Duration: 39.71 ms Memory Usage: 69 MB Init Duration:
176.22 ms
如前所述,您提供的信息不足以说明出现了什么问题。然而,我会根据我所拥有的来回答 在教程中,我注意到了package的用法。 该软件包用于在不同的环境中设置不同的配置 它利用与环境相关的不同生产文件,例如,允许您为本地开发设置
.env
文件,并为生产设置不同的文件(例如.env.production
)
根据设置,在每个环境中使用的相应.env
文件中设置的变量将加载到进程.env
对象中
现在,在您的教程中,我注意到您已经从.env
加载了一些关键变量,例如EMAIL\u TOKEN
。我怀疑您的安装程序需要一个单独的dotenv
文件用于生产—如果找不到它,它会以空的方式无声地加载所需的参数。请分别修改加载的环境和环境中的配置
也可以考虑下面的教程。
你有<代码> NETLIFY吗?该功能是否运行不正常,或者根本没有显示在仪表板上?您已经对此进行了详细说明它在生产中不起作用。
。您是否收到任何错误?请参阅编辑。编辑不足。你期望得到什么?你能分享你的文件夹结构和你在发布时使用的东西吗