您好,我正在使用lambda函数每2分钟更新一次数据库,但我不知道为什么它无法正常工作。当我在浏览器中打开URL时,我会收到所有控制台日志,但是当lambda发送请求时,控制台中不会记录任何日志。有什么问题?
我在后端使用apollo-expres-graphql并对前端做出反应。
lambda函数:
const https = require('https');
exports.handler = async (event) => {
let dataString = '';
const response = await new Promise((resolve, reject) => {
const req = https.get("https://example.com/api/req-update", function(res) {
res.on('data', chunk => {
dataString += chunk;
});
res.on('end', () => {
resolve({
statusCode: 200,
body: JSON.stringify('Success!')
});
});
});
req.on('error', (e) => {
reject({
statusCode: 500,
body: 'Something went wrong!'
});
});
});
return response;
};
我不明白你的问题。您是说要让https.get中的URL返回一些日志,而当您直接调用URL时,它会向您显示日志,但是此lambda不会返回日志?如果这是您要的,那么您的异步/等待承诺没有正确设置。另外,您不返回dataString。更改为此-
const https = require('https');
async function httpGet() {
let dataString = '';
const response = await new Promise((resolve, reject) => {
const req = https.get("https://example.com/api/req-update",
function(res) {
res.on('data', chunk => {
dataString += chunk;
});
res.on('end', () => {
resolve({
statusCode: 200,
body: JSON.stringify('Success!') // return dataString here
});
});
});
req.on('error', (e) => {
reject({
statusCode: 500,
body: 'Something went wrong!'
});
});
});
return response;
}
exports.handler = async (event) => {
return await httpGet();
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句