如何从日志中获取失败Firebase函数的执行上下文?

qxsslcnc  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(119)

我在Firestore文档上使用Firebase Functions触发器。如果我定义了一个如下的函数:

exports.myDocCreate = functions.firestore.document('docs/{docId}').onCreate(async (snap, context) => { 
  ///... code here
});

并且由于内部代码之外的原因(如可伸缩性)而失败,我是否能够在日志中的某个地方知道context是什么?
在函数代码内部,我处理错误并记录不知道在哪里处理的细节,但当它在我的控制之外失败时,我就迷失了,不知道上下文是什么,也不知道我的代码、数据或工作流的哪些组件受到了影响:(

q8l4jmvw

q8l4jmvw1#

当Firebase函数触发失败时,Firebase会在Firebase控制台中记录错误消息和堆栈跟踪。您可以通过单击3个垂直点按钮并选择查看日志,在Firebase函数控制台选项卡中找到这些日志。
在日志中,您将看到错误的详细信息,包括导致错误的触发器的上下文。这将包括触发函数的文档的ID,以及传递给函数的任何其他相关数据。
下面是它如何记录context.eventIdcontext.resource的一个示例:

function[us-central1-myDocCreate]
{
 "severity": "INFO",
 "message": "Context EventId: bc8bb0c4-7b90-4391-a99b-5fc28ae14cf8"
}

function[us-central1-myDocCreate]
{
 "service": "firestore.googleapis.com",
 "name": "projects/<project-id>/databases/(default)/documents/users/EAj372JWiCKFpz17O9CL",
 "severity": "INFO",
 "message": "Context Resource:"
}

通过查看错误消息和堆栈跟踪,可以确定错误的根本原因并采取措施解决该问题。如果错误与可伸缩性有关,则可能需要考虑优化函数代码或升级函数内存以支持更高的通信量。
您可以使用firebase emulators测试这些场景,您可以在firebase模拟器套件中查看日志。模拟器是一种本地运行的测试环境,因此您的工作流不会受到影响。

相关问题