2

我正在尝试使用访问 FaunaDB 的 Netlify 函数启动我的新 Web 应用程序,虽然它似乎在本地工作得很好(通过 netlify 开发),但当它在线时,感觉每次对数据库的第三次调用都失败并出现以下错误:

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 Lambdas)。各种不同的函数调用碰到不同的 Netlify 函数会产生这个错误,而不仅仅是一个错误。

4

1 回答 1

2

您收到的错误可能是由类似于从 AWS Lambda 函数查询 FaunaDB 的问题引起的:https ://docs.fauna.com/fauna/current/drivers/known_issues

本质上,支持您的函数的 Netlify 函数上下文可能并不总是在运行。如果是这种情况,当恢复执行上下文并尝试下一个查询时,存储在 FaunaDB 驱动程序的客户端对象中的连接状态可能会过时。

典型的解决方案是在主处理程序逻辑中而不是在初始化逻辑中创建客户端对象并执行您的查询。

我不知道这个答案是否对您的情况有帮助。如果是,请告诉我,我们可以更新 Fauna 文档中的指南。

于 2020-10-06T18:24:46.017 回答