【问题标题】:Serverless Cloudwatch events appearing encrypted无服务器 Cloudwatch 事件显示为加密
【发布时间】:2020-04-19 12:44:22
【问题描述】:

我正在测试 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 };

【问题讨论】:

    标签: aws-lambda amazon-cloudwatch serverless-framework serverless aws-serverless


    【解决方案1】:

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

    这里的代码 sn-p 基本上显示了读取日志数据需要做什么。

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

    【讨论】:

    • 不幸的是我已经测试过base64解码它并没有工作
    • ohhhhhh 它也被压缩了......将测试它
    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2021-03-20
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多