2

首先,它看起来像这个线程,但它不是:Cloud Function发生未知错误:GCP Python

我部署了几次 Cloud Functions,它们仍然运行良好。尽管如此,从上周开始,按照相同的程序,我可以正确部署,但测试它们时我收到错误“Cloud Functions 中发生未知错误。尝试的操作失败。请重试,发送反馈”。

  • 在远程,脚本完美运行并写入云存储。

  • My Cloud Function 是一个带有 python 脚本的 zip,在 Cloud Storage 中加载一个 csv。

  • csv 权重 160kB,python 脚本 5kB。所以我使用了 128MiB 的内存分配。

  • 执行时间为 38 秒,几乎是默认超时时间的一半。

  • 它被配置为只允许项目内的流量。

  • 环境变量不是问题

它是由 pub/sub 触发的,我想要的是在我可以让它工作时安排它。

我很困惑。我现在非常缺乏想法,以至于我开始认为一切正常,但谷歌测试方法失败了......然而,当我在 Cloud Scheduler 中运行 pub/sub 主题时,它会在没有太多信息的情况下启动错误日志1 . 有没有人有同样的问题?

谢谢

4

1 回答 1

1
过去我自己的回答
  • 终于“解决”了。我正在处理 160kB CF 中的 csv,在我的计算机中执行时间持续 38 秒。出于某种原因,在 CF 中我需要 512MB 的分配内存和大于 60 秒的超时。
从最近的过去我自己的回答
  • 不要使用测试按钮测试 CF,因为有时它需要超过最大可用超时才能完成,因此您会收到错误。

如果您想轻松测试它

  • 在代码中的里程碑之后编写打印以检查脚本是如何演变的。
  • 使用日志界面。打印件将在那里显示;)
  • 此外,日志显示有价值的信息(有时甚至是可读的)。
  • 此外,如果您要发送例如到存储桶,请在 CF 完成后检查它们,也许您会感到惊讶。

综上所述,不要盲目相信测试按钮

从现在开始我自己的回答(已经后悔打印的事情):
  • 有很好的 python 库来检查日志,不要为此打印东西(如果你有时间的话)。
于 2020-05-31T17:18:17.390 回答