NodeJs npm requestretry package не работает на AWS Lambda Nodejs8.10 - PullRequest
0 голосов
/ 15 декабря 2018

Вот мой тестовый код nodejs8.10:

var request = require('requestretry');
const testRequest = async() =>{
  request({
    url: 'https://jsonplaceholder.typicode.com/posts/1',
    json: true,        
    maxAttempts: 5,   // (default) try 5 times
    retryDelay: 5000,  // (default) wait for 5s before trying again
    retryStrategy: request.RetryStrategies.HTTPOrNetworkError 
  }, function(err, response, body){       
    if (response) {
        console.log('The number of request attempts: ' + response.attempts);
        console.log(body);
    }else{
         console.log('error: ', err);
    }
  });
}


testRequest(); // for local implementation

exports.handler = async (event) => {    
  let x = await testRequest();
  const response = {
    statusCode: 200,
    body: JSON.stringify('Hello from Test Lambda!'),
  };

  return response;
};

против.Тестовый код nodejs6.10:

var request = require('requestretry');

function testRequest () {
  request({
    url: 'https://jsonplaceholder.typicode.com/posts/1',
    json: true,
    // The below parameters are specific to request-retry
    maxAttempts: 5,   // (default) try 5 times
    retryDelay: 5000,  // (default) wait for 5s before trying again
    retryStrategy: request.RetryStrategies.HTTPOrNetworkError // (default) retry on 5xx or network errors
  }, function(err, response, body){
    // this callback will only be called when the request succeeded or after maxAttempts or on error
    if (response) {            
        console.log(body);
    }
  });
}

 testRequest();

 exports.handler = (event, context, callback) => {    
     testRequest();
     const response = {
       statusCode: 200,
       body: JSON.stringify('Hello from Lambda!'),
     };
    callback(null, response);
 };

Он не отображает журнал, связанный с пакетом requestretry на лямбда-узлах 8.10, и никаких сообщений об ошибках.Тем не менее, он может получить ответ и логи, выполнив команду node <filename> на локальном компьютере после npm install с необходимыми пакетами, такими как 'requestretry' и его необходимыми пакетами.Если приведенный выше файл преобразован в формат Nodejs6.10, и он не будет иметь проблемы как на AWS Lambda, так и на локальном компьютере.

Мне нужно выяснить причину, прежде чем я преобразую коды из nodejs6.10 (обратный вызовформат) в nodejs8.10 (асинхронный формат).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...