简体   繁体   English

Lambda 函数不会将正确的错误日志发送到给定的 email

[英]Lambda Functions don't send proper error logs to the Given email

I created this lambda function(lambda1) which will notify me about the errors that occurs in another lambda(Lambda2).我创建了这个 lambda 函数(lambda1),它将通知我另一个 lambda(Lambda2)中发生的错误。 here is the code for the lambda1 which will send email notification这是 lambda1 的代码,它将发送 email 通知

console.log("Loading function");
var AWS = require("aws-sdk");

exports.handler = function(event, context) {
    var eventText = JSON.stringify(event, null);
    console.log("Received event:", eventText);
    var sns = new AWS.SNS();
    var params = {
        Message: JSON.stringify(eventText), 
        Subject: "This is Error Notifiation in Lambdas",
        TopicArn: "arn:aws:sns:example/example"
    };
    sns.publish(params,  context.done);
};

the error logs that lambda2 generated are these. lambda2 生成的错误日志就是这些。

This is a sample DEBUG message..    
This is a sample INFO message.. !!
This is a sample ERROR message...

This above logs will trigger my lambda1 and lambda2 will send me these logs to my email.以上日志将触发我的 lambda1,而 lambda2 会将这些日志发送到我的 email。 But instead sending me the same logs, lambda2 sent me the following logs, "{\"awslogs\":{\"data\":\"H4sIAAAAAAAAADWQy27CMBBFfyVYXZLGz4mdXaSmbECVSFaFqHKIoZHyQIkpQoh/7wDtaDa+M75Hd66kc9NkD664HB1JyFtapF+rLM/TRUbmZDj3bkSZCS50HANViqHcDofFOJyOOInseYpa21W1jdw4DuPC4Rfrm/6wfKjP9dyPzna4zylnEeMRo9HmZZkWWV6UauekBKiBsr20oCthKlnHxnEtdi6+W0ynatqNzdE3Q//etN6NE0k2ZHV5Pkj5oGQ/rvf3wZU0NcIEKCUMFZwqwYBxg3CtY264VCBAMyk5k0ZoLMW4As2NkjxGoG/wMN52mJGBMEyImBpQcv5/MLTfZOv1x7rc+nuokPGQ0YLRRKmEmldQ4hMnFqgGZ8OK6jrEcCrUGmgo98pUYIACxFtffDdTgG2DCYmtCx7GwR/pFSuYzbY9uZW3X8lHDk6xAQAA\"}} strong text How will I get the same exact logs lambda1 generated? But instead sending me the same logs, lambda2 sent me the following logs, "{\"awslogs\":{\"data\":\"H4sIAAAAAAAAADWQy27CMBBFfyVYXZLGz4mdXaSmbECVSFaFqHKIoZHyQIkpQoh/7wDtaDa+M75Hd66kc9NkD664HB1JyFtapF+rLM/TRUbmZDj3bkSZCS50HANViqHcDofFOJyOOInseYpa21W1jdw4DuPC4Rfrm/6wfKjP9dyPzna4zylnEeMRo9HmZZkWWV6UauekBKiBsr20oCthKlnHxnEtdi6+W0ynatqNzdE3Q//etN6NE0k2ZHV5Pkj5oGQ/rvf3wZU0NcIEKCUMFZwqwYBxg3CtY264VCBAMyk5k0ZoLMW4As2NkjxGoG/wMN52mJGBMEyImBpQcv5/MLTfZOv1x7rc+nuokPGQ0YLRRKmEmldQ4hMnFqgGZ8OK6jrEcCrUGmgo98pUYIACxFtffDdTgG2DCYmtCx7GwR/pFSuYzbY9uZW3X8lHDk6xAQAA\"}}生成的强文本如何获得相同的确切日志

it looks like you need to decode the text in the event:data field, base64 decoder I think I have used before for something simmular.看起来你需要解码 event:data 字段中的文本,base64 解码器我想我以前用过类似的东西。

This will make you data readable and after that you can determine if you have what you want.这将使您的数据可读,然后您可以确定您是否拥有所需的内容。

My understanding of your issue: Lambda2 wirte error logs -> CW -> Lambda1 gets trigged by CW -> Lambda1 Select data from event and decode -> Lambda1 sends email.我对您的问题的理解: Lambda2 写入错误日志 -> CW -> Lambda1 被 CW 触发 -> Lambda1 Select 来自事件和解码的数据 -> Lambda1 发送 email。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM