Ошибка выборки: запрос на https://db.fauna.com / сбой, причина: запись EPIPE

#javascript #netlify #faunadb #netlify-function

#javascript #netlify #faunadb #netlify-функция

Вопрос:

Я пытаюсь запустить свое новое веб-приложение, используя функции Netlify, обращающиеся к FaunaDB, и, хотя кажется, что оно отлично работает локально (через netlify dev), когда оно подключено, кажется, что каждый 3-й вызов базы данных завершается ошибкой со следующей ошибкой:

 FetchError: request to https://db.fauna.com/ failed, reason: write EPIPE
at ClientRequest.<anonymous> (/var/task/src/node_modules/faunadb/node_modules/node-fetch/lib/index.js:1461:11)
at ClientRequest.emit (events.js:315:20)
at TLSSocket.socketErrorListener (_http_client.js:426:9)
at TLSSocket.emit (events.js:315:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  type: 'system',
  errno: 'EPIPE',
  code: 'EPIPE'
}
  

Я понятия не имею, что это значит или что я, возможно, делаю неправильно или как это исправить. Похоже, это на стороне Фауны.

Весь «серверный код», выполняющий вызовы Fauna, находится в различных функциях Netlify (которые, я полагаю, просто завернуты в лямбды AWS). Эту ошибку генерируют различные вызовы различных функций, вызывающие разные функции Netlify, а не только одну конкретную.

Ответ №1:

Ошибка, которую вы получаете, может быть вызвана проблемой, аналогичной запросу FaunaDB из функций AWS Lambda: https://docs .fauna.com/fauna/current/drivers/known_issues

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

Типичным решением является создание объекта client и выполнение ваших запросов в логике основного обработчика, а не в логике инициализации.

Я не знаю, полезен ли этот ответ для вашей ситуации. Если это так, дайте мне знать, и мы сможем обновить руководство в документации Fauna .