【问题标题】:Use Stackdriver Debug with Google Cloud Functions将 Stackdriver Debug 与 Google Cloud Functions 结合使用
【发布时间】:2026-01-25 22:50:02
【问题描述】:

关于Debugging Firebase Cloud Functions using Stackdriver有一个类似的问题。

然而,那里的答案似乎对让 Stackdriver Debug 与我的普通 Cloud Function(不是 Firebase)一起工作毫无帮助。我尝试从 Github 和 Cloud Source Repository 获取代码——但这似乎不起作用。两次我都进入侧边栏:

此项目不包括任何正在运行的应用程序。

有关调试 Cloud Functions 的文档似乎没有提及使用 Stackdriver Debug。有什么方法可以将 Stackdriver Debug 与 Cloud Functions 一起使用?

【问题讨论】:

    标签: node.js google-cloud-platform google-cloud-functions stackdriver


    【解决方案1】:

    我最终从这个视频中找到了解决方案:https://youtu.be/BybYim0HRmY?t=21m42s

    很简单,您将require("@google/cloud-debug") 添加到您的index.js(或您的函数所在的任何文件)的顶部。然后将@google/cloud-debug 添加为package.json 中的依赖项。

    然后您可以手动将代码导入 Stackdriver Debug,一切顺利。

    【讨论】:

      【解决方案2】:

      Cloud Debugger 尚不支持 Cloud Functions。

      虽然通过添加 require("@google/cloud-debug") 似乎可以工作,但它并不像您希望的那样可靠。这是因为函数可能在调试器代码能够初始化或能够将结果报告回调试器服务器之前关闭。

      Google 的 Cloud Function 团队正在努力以可靠的方式启用调试器。

      【讨论】:

      【解决方案3】:

      cloud-debug 包似乎已过时,并已重命名为 @google-cloud/debug-agent:

          yarn add @google/cloud-debug
          yarn add v0.23.4
          [1/4] ?  Resolving packages...
          warning @google/cloud-debug@0.9.3: This module has been renamed to @google-cloud/debug-agent, please use that instead.
          warning @google/cloud-debug > google-auth-library > request > node-uuid@1.4.8: Use uuid module instead`
      

      【讨论】:

        【解决方案4】:

        Stackdriver Debugger npm 包已重命名为 @google-cloud/debug-agent,您需要使用新引入的 isReady 函数才能使其在 Google Cloud Functions 上可靠运行。

        在此处查看解决方案:https://medium.com/@thoughtspeed7/stackdriver-debugger-on-google-cloud-functions-d49a6ee5f12c

        【讨论】:

        • 您能否将该链接中的要点复制到您的答案中?
        最近更新 更多