我正在尝试使用Netlify函数访问FaunaDB来启动我的新Web应用程序,尽管它似乎在本地运行良好(通过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 Lambda)。各种错误调用了不同的Netlify函数,都产生了此错误,而不仅仅是一个错误。
答案 0 :(得分:1)
您收到的错误可能是由类似于从AWS Lambda函数查询FaunaDB的问题引起的:https://docs.fauna.com/fauna/current/drivers/known_issues
本质上,支持您的函数的Netlify函数上下文可能并不总是在运行。在这种情况下,恢复执行上下文并尝试下一次查询时,存储在FaunaDB驱动程序客户端对象中的连接状态可能会过时。
典型的解决方案是在主处理程序逻辑而不是初始化逻辑中创建客户端对象并执行查询。
我不知道此答案是否对您的情况有所帮助。如果是这样,请告诉我,我们可以更新动物区系文档中的指南。