【问题标题】:How to enable cloud debugger for python flask app on Cloud Run如何在 Cloud Run 上为 python 烧瓶应用启用云调试器
【发布时间】:2021-11-16 22:13:28
【问题描述】:

我正在尝试为我在 Cloud Run 中运行的 Flask 应用启用 Google Cloud Debugger。

该项目是一个简单的“Hello World”,带有 Flask 和 Dockerfile。将 Bitbucket 的代码同步到 Cloud Source Repositories 并设置为在主分支更新时触发启动。

一切都按预期进行,新的推送触发了成功的构建。不过,现在我想添加 Cloud Debugger,但遇到了一些问题。

按照documentation,我有:

  • 启用云调试器 API
  • 已将pip install google-python-cloud-debugger添加到我的 Dockerfile 中
  • 在我的应用程序早期添加了以下代码
try:
  import googleclouddebugger
  googleclouddebugger.enable(
    breakpoint_enable_canary=True
  )

except ImportError:
  pass

我推送了更改,构建成功。

我可以看到 Cloud Repository 显示了正确的提交,但是当我在调试器下查看时,没有可见的应用程序(下面的屏幕截图 1),如果我在 Cloud Source Repo 中单击“开始调试”,我会收到一条消息说我需要设置调试器(截图 2)

谁能告诉我我错过了什么?

【问题讨论】:

  • 你有哪个版本的python?您安装了哪个云调试器版本?
  • 你部署了source-context.json文件cloud.google.com/debugger/docs/source-context#python
  • 您的 dockerfile 使用什么发行版? alpine 在 git 上被列为 python-debugger 的问题。
  • @Pentium10。谢谢你这么清晰的cmets。我目前正在运行 python 3.7。我从 3.9 降级,因为我发现关于需要什么的建议相互矛盾。我正在使用 Slim 发行版。我还没有部署 source-context.json 文件,因为没有提到与 Cloud Run 相关的内容,但接下来我会尝试一下。
  • @Pentium10 添加 source-context.json 没有帮助。也许接下来我会尝试不同的发行版...您有什么建议吗?

标签: python google-cloud-run google-cloud-debugger


【解决方案1】:

检查您的应用程序文件夹中是否有Service account credentials file

  1. 创建credentials file
  2. 从 Cloud Run 控制台中删除您的应用程序
  3. 将您的应用重新部署到 Cloud Run
  4. 如果您正确执行了这些步骤,您的应用程序应该会显示在“调试器”页面上。

问题的可能原因是您的应用由于缺少身份验证而无法与您的 GCP 项目通信。

如果它不起作用,请使用部署应用程序时提供的应用程序日志链接,并与错误共享日志。

【讨论】:

  • 我相信这就是问题所在。但我不确定如何最好地更新。在本地开发时,我一直在使用“gcloud auth application-default login”。用我自己的凭据临时授权。
  • 在本地工作,但是当推动 ot 云运行时,我得到访问权限问题:Permission 'cloudbuild.builds.create' denied on ....
  • @Finglish 我不确定你是否像最初那样尝试使用凭证文件,我收到了同样的错误,但添加文件修复了它
  • 我修复了 cloudbuild 问题,它不相关。我将尝试添加凭据文件,但从长远来看,我并不热衷于这样做,因为将未加密的密钥文件与代码一起存储似乎是个坏主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 2022-06-11
  • 2019-08-18
  • 1970-01-01
  • 2020-01-04
相关资源
最近更新 更多