显示已加密的无服务器云观察事件



我正在测试Cloudwatch日志作为无服务器函数的触发器。但是,当我的无服务器函数被触发时,它只是输出乱码,我认为这是某种形式的加密。不幸的是,我不知道加密是什么。

下面是输出:

{"awslogs":{"data":"H4sIAAAAAAAAAGVR...4BmF05wEAAA=="}}

下面是函数的代码:

const handler = async (event) => {
console.log('*********RECEIVED EVENT FROM CLOUDWATCH**********')
console.log(JSON.stringify(event));
return {
statusCode: 200,
body: JSON.stringify(
event,
null,
2
)
}
};
export { handler };

您返回的"data"部分是 base64 编码和压缩的。要从事件中获取信息,您只需解码 base64 信息并解压缩数据。

这是一个代码片段,基本上显示了读取日志数据需要执行的操作。

...
const payload = Buffer.from(event.awslogs.data, 'base64');
zlib.gunzip(payload, (err, res) => {
if (err) {
...
}
const parsed = JSON.parse(res.toString('utf8'));
...
});

最新更新