看起来加密的无服务器 Cloudwatch 事件
Serverless Cloudwatch events appearing encrypted
我正在测试 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'));
...
});
我正在测试 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'));
...
});