Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services aws lambda:如何从真实请求(非测试)获取console.log日志?_Amazon Web Services_Amazon Cloudfront_Amazon Cloudwatch - Fatal编程技术网

Amazon web services aws lambda:如何从真实请求(非测试)获取console.log日志?

Amazon web services aws lambda:如何从真实请求(非测试)获取console.log日志?,amazon-web-services,amazon-cloudfront,amazon-cloudwatch,Amazon Web Services,Amazon Cloudfront,Amazon Cloudwatch,我读过这个文件,做了这个lambda: exports.handler = async (event) => { // TODO implement // const response = { // statusCode: 200, // body: JSON.stringify('Hello from Lambda!'), // }; console.log(123321); console.log(event.Re

我读过这个文件,做了这个lambda:

exports.handler = async (event) => {
    // TODO implement
    // const response = {
    //     statusCode: 200,
    //     body: JSON.stringify('Hello from Lambda!'),
    // };
    console.log(123321);
    console.log(event.Records[0].cf.response);
    console.log(event.Records[0].cf.request);
    console.log(JSON.stringify(event.Records[0].cf));
    console.log(event);
    console.log(arguments);

    //Get contents of response
    const response = event.Records[0].cf.response;
    //Return modified response

    return response;
};
当我对假模型使用“测试”时,它可以工作(日志发送到CloudWatch),但当我添加CloudFront触发器和发送请求时,日志不会发送到任何CloudWatch

  • 如何从lambda获取真实(从生产)
    事件
    对象
  • 如何从CloudFront触发的lambda发送/获取日志
    由于Lambda由CloudFront触发,它现在成为Lambda@Edge,因此CloudWatch日志流是在调用Lambda实例的区域中创建的(这由CloudFront决定)

    因此,在测试之后,可以使用提供的shell脚本轻松确定特定区域

    您可以使用标题处的下拉菜单切换区域:

    由于Lambda由CloudFront触发,它现在成为Lambda@Edge,因此CloudWatch日志流是在调用Lambda实例的区域中创建的(这由CloudFront决定)

    因此,在测试之后,可以使用提供的shell脚本轻松确定特定区域

    您可以使用标题处的下拉菜单切换区域:

    你的lambda有没有接到电话?我的意思是,当您使用CloudFront时,您是否在CloudWatch中看到其他控制台日志?@tenorfly,是的,它调用了,因为我在url
    xxx.CloudFront.net/test1.html
    中看到了响应。我没有任何日志,不是用“测试”按钮调用它。不,我的意思是当它在CloudFront后面时,它会被调用吗。我知道在测试时会调用它。@tenorfly现在来检查它吗?当您尝试通过CloudFront调用lambda时,它应该记录一些内容,如果没有,那么它甚至不会被调用。为了使调试更容易、更清晰,请更改代码,例如添加另一个
    console.log
    并保存它,以便下次调用lambda时,它将创建新的CloudWatch日志流。如果没有创建流,则不会调用lambda。是否会调用您的lambda?我的意思是,当您使用CloudFront时,您是否在CloudWatch中看到其他控制台日志?@tenorfly,是的,它调用了,因为我在url
    xxx.CloudFront.net/test1.html
    中看到了响应。我没有任何日志,不是用“测试”按钮调用它。不,我的意思是当它在CloudFront后面时,它会被调用吗。我知道在测试时会调用它。@tenorfly现在来检查它吗?当您尝试通过CloudFront调用lambda时,它应该记录一些内容,如果没有,那么它甚至不会被调用。为了使调试更容易、更清晰,请更改代码,例如添加另一个
    console.log
    并保存它,以便下次调用lambda时,它将创建新的CloudWatch日志流。如果没有创建流,则不会调用lambda。