Лямбда-функция истекает при вызове листов Google после выполнения запроса postgresql - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь написать функцию Lambda (используя AWS Cloud9), которая делает запрос в Redshift (используя пакет node-postgres), а затем записывает результат в Google Sheet (используя пакет googleapis).

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

Обе функциииндивидуально работает нормально. Функция query делает запрос и возвращает результат, а запрос записи записывает тестовую полезную нагрузку на лист. Тем не менее, если я пытаюсь вызвать функцию записи из функции запроса, все это зависает и в конечном итоге истекает. Это точный журнал из прогона.

Error: 
Read timeout on endpoint URL: "https://lambda.us-east-2.amazonaws.com/2015-03-31/functions/queryRedshift/invocations"

    at convertStderrToError (https://d28a1z68q19s1r.cloudfront.net/content/ce0bff16a8467f5a19e655ab833e28a385f3a62f/@aws/aws-toolkit-cloud9/configs/bundle.js:424:33)
    at exports.EventEmitter.<anonymous> (https://d28a1z68q19s1r.cloudfront.net/content/ce0bff16a8467f5a19e655ab833e28a385f3a62f/@aws/aws-toolkit-cloud9/configs/bundle.js:416:70)
    at exports.EventEmitter.EventEmitter.emit (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:20:23)
    at Consumer.onExit (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47444:80)
    at Consumer.<anonymous> (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47204:4)
    at Consumer.Agent._onMessage (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47289:4)
    at EngineIoTransport.EventEmitter.emit (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47041:16)
    at module.exports.onMessage (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47348:6)
    at module.exports.EventEmitter.emit (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:19:23)
    at module.exports.ReliableSocket.onMessage (https://d373lap04ubgnu.cloudfront.net/c9-af167ac416de-ide/build/configs/ide/@aws/cloud9/configs/ide/environment-default.js:47560:76)

Я попытался заново обработать код, чтобы отделить вещи, но на самом деле я не уверен, с чего начать, так как могу найти только одиндругая похожая проблема без ответа , и журнал не указывает на то, где что-то застревает (насколько я могу судить - я не очень опытен в этом).

Если кто-то можетпо крайней мере, укажи мне правильное направление, это было бы очень полезно!

Заранее спасибо!


РЕДАКТИРОВАТЬ: я также попробовал пакет node-redshift с тем же результатом.

1 Ответ

0 голосов
/ 07 ноября 2019

Из предоставленной вами информации ниже может быть ситуация:

  • Запрашивая лямбду, можно подключиться к красному смещению в AWS.
  • При записи лямбды можно подключиться к листу GoogleAPI через Интернет.

Запрашивая лямбду, не имеет подключения к Интернету для подключения к

lambda.us-east-2.amazonaws.com

Для лямбда-функции внутри VPC для доступа в Интернет вы должны сделать следующее,

https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/

У вас есть все подсети, подключенные к интернет-шлюзу, но ни в одной из них нет NAT-шлюза, если я прав.

...