aws лямбда: как получить логи console.log из реального запроса (не тестового)? - PullRequest
0 голосов
/ 20 ноября 2018

Я прочитал этот документ: https://docs.aws.amazon.com/en_us/lambda/latest/dg/nodejs-prog-model-logging.html и сделал это лямбда:

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 function configuration

  1. как получить реальный (с производства) event объект из лямбды
  2. как отправлять / получать журналы из лямбды, которая запускается CloudFront?

1 Ответ

0 голосов
/ 20 ноября 2018

Из-за того, что Lambda запускается CloudFront, теперь он становится Lambda @ Edge, поэтому потоки CloudWatch Log создаются в регионе, где вызывается экземпляр Lambda (это определяется CloudFront).

AWS Lambda @ Edge Docs для устранения неполадок , конкретный регион может быть легко определен с помощью прилагаемого сценария оболочки.

Вы можете переключать регион, используя раскрывающийся список в заголовке: enter image description here

...