【发布时间】:2019-09-25 12:20:20
【问题描述】:
我正在编写一个 Lambda 函数,该函数将用于向 API 发送测试消息。如果出现错误,我将需要它来运行某些功能(例如通过 AWS 消息通知我)。我想通过状态码进行简单的测试。例如,如果我得到 2XX 什么都不做,如果我得到 4XX 或 5XX,请通知我,以便我可以研究问题。在测试环境中,我将正文作为 XML 字符串作为 JSON 对象中的值传递。
示例 Lambda 测试事件
{
"data": "<xml stuff, credentials, etc"
}
这是我的功能
exports.handler = async (event, context) => {
const https = require('https');
const options = {
hostname: 'https://mythingy.com',
port: 443,
path: '/target',
method: 'POST',
headers: {'Content-Type': 'application/xml'}
};
const req = https.request(options, res => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', d => {
process.stdout.write(d);
});
});
req.on('error', error => {
console.error(error);
});
req.write(event.data);
req.end();
};
我在 Lambda 中使用节点 10.x,我从 lambda 收到“结果成功”消息,但没有记录响应 statusCode。我已经通过几种方式完成了它,并且过去很容易从 Node fetch、ajax、http 请求中提取 statsCodes。我知道这可能与 Lambda 的 env 和承诺有关。谁能帮我弄清楚如何在 Lambda 中记录统计代码?
【问题讨论】:
-
你应该看看this。
标签: node.js https aws-lambda