带有存储触发器的 Google 云函数 python37 不会部署,也不会提供任何日志

Mic*_*ele 2 python google-cloud-platform google-cloud-functions

我尝试从终端使用 gcloud 进行部署,并通过 UI 进行了尝试,但在部署日志中的部署(构建工作)期间出现了相同的错误:

错误:函数终止。推荐操作:检查日志以了解终止原因。函数无法初始化。

gcloud 告诉我以下内容:

错误:(gcloud.functions.deploy)OperationError:代码=13,消息=由于运行状况检查失败,函数部署失败。这通常表示您的代码已成功构建但在测试执行期间失败。检查日志以确定原因。如果它看起来是暂时的,请在几分钟后再次尝试部署。

所以,我去了日志,什么都没有,nada,nisba。不是一条线。尝试将 RAM 增加到 2GB,尝试将与 main.py 处于同一级别的 .py 文件打包到根目录之外,但没有运气。显然,如果我在本地从测试脚本调用 main.py 中的处理程序函数,在 virtualenv (py37) 中使用来自 requirements.txt 的包运行它,它就可以工作。使用函数框架在本地运行它?有用。

以下是我目前调用 gcloud 进行部署的方式:

gcloud functions deploy load_to_bigquery \
  --project=project-platform-dev \
  --region europe-west1 \
  --runtime python37 \
  --memory 1024MB \
  --entry-point handler \
  --env-vars-file .env.dev.yaml \
  --trigger-resource the-source-bucket \
  --trigger-event google.storage.object.finalize
Run Code Online (Sandbox Code Playgroud)

Ego*_*eev 5

目前 GCF 受此问题影响:

由于外部 aiohttp/yarl 依赖中断,GCF Python37 函数部署失败

一些客户报告 Python3.7 / Python3.8 云函数部署失败,并显示以下错误消息:

Python3.7 运行时:加载用户代码时函数失败。

" 由于运行状况检查失败,函数部署失败。这通常表明您的代码已成功构建,但在测试执行期间失败。检查日志以确定原因。如果它看起来是暂时的,请在几分钟后再次尝试部署。“

客户(用户)项目的 Stackdriver 日志中没有可见错误,但在内部,我们确实收到了针对包含其中一个依赖项的函数 Python37 运行时环境库的堆栈跟踪。

在我们的 GCF Python37 运行时中使用的 aiohttp 库使用了 yarl 依赖项,此问题的根本原因是 yarl 库的错误版本)

在发布短期修复之前可用的解决方法: