Nexmo Client Library для Node.js работает после развертывания на AWS lambda - PullRequest
0 голосов
/ 13 марта 2020

Создана проблема в репозитории nexmo/nexmo-node, но, тем не менее, публикация здесь для большего охвата

Я развернул лямбда-функцию проверки номера телефона через безсерверный сервер. nexmo.message.sendSms работает без проблем в моей локальной среде разработчика (протестировано с serverless offline). Но я не думаю, что он работает после развертывания на AWS.

Вот что я делаю:

const Nexmo = require('nexmo');
const privateKey = require('./privateKey');

const getNexmoInstance = (environment) => {
  const nexmo = new Nexmo({
    apiKey: environment.nexmoAPIKey,
    apiSecret: environment.nexmoAPISecret,
    applicationId: environment.nexmoAPPId,
    privateKey: Buffer.from(privateKey.key),
  }, {
    debug: true,
  });

  return nexmo;
};

const sendSMS = async (from, to, text, environment) => {
  const nexmo = getNexmoInstance(environment);
  nexmo.message.sendSms(from, to, text, { type: 'unicode' }, (err, responseData) => {
    console.log('nexmo err', err);
    console.log('nexmo responseData', responseData);
  });
  return null;
};

Видите сообщения журнала внутри обратного вызова? (console.log('nexmo err', err); и др. c). Они не отображаются после развертывания (как я уже сказал, работает нормально на локальных).

Поскольку я установил debug: true, он регистрирует следующее: - info: sending message from +44750.... - info: Request: { host: 'rest.nexmo.com', port: 443....

Но обратный вызов не вызывается, журнал сообщений не зарегистрирован на панели инструментов Nexmo тоже. Есть ли какие-либо дополнительные настройки, связанные с сервером, о которых я не знаю?

  • Версия пакета Nexmo: 2.6.0
  • Время выполнения: nodejs12.x

1 Ответ

0 голосов
/ 13 марта 2020

Хорошо, насколько я вижу, проблема в операторе return null, который возвращается до запуска обратного вызова, и поэтому вы не видите никаких результатов.

также я не вижу никаких причина также использовать async.

const sendSMS = (from, to, text, environment) => {
  const nexmo = getNexmoInstance(environment);
  return nexmo.message.sendSms(from, to, text, { type: 'unicode' }, (err, responseData) => {
    if(err) console.error(err);
    console.info(responseData);
    return;
  });
};

должен сделать свое дело.

, если бы вы могли поделиться своим лямбда-обработчиком / конфигурацией, может быть даже проще помочь вам усовершенствовать эту конечную точку / функция.

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