我试图在 GCP 中部署一个函数 2 天,每次都收到以下错误。
OperationError: code=13, message=由于健康检查失败,函数部署失败。这通常表示您的代码已成功构建但在测试执行期间失败。检查日志以确定原因。如果它看起来是暂时的,请在几分钟后再次尝试部署。
日志查看器没有给出问题的正确解释。不断给出以下日志,直到部署失败。
“错误:函数终止。推荐措施:检查日志以了解终止原因。无法初始化函数。”
现在,有趣的事实是相同的代码在几周前就可以工作了。
这个问题真的让我怀疑是最近云功能升级后GCP的bug。
我无法导入 Google 的气流提供程序包。我使用的命令是
pip3 install apache-airflow-backport-providers-google
Run Code Online (Sandbox Code Playgroud)
它给了我错误
ERROR: Could not find a version that satisfies the requirement apache-airflow-backport-providers-google (from versions: none)
ERROR: No matching distribution found for apache-airflow-backport-providers-google
Run Code Online (Sandbox Code Playgroud)
由于这个原因,我的 DAG 卡住了,错误消息是
Broken DAGS: No module named 'airflow.providers'
Run Code Online (Sandbox Code Playgroud)
我检查了气流库:env/lib/python3.5/site-packages/airflow
找不到提供者文件夹。
编辑:当我按照答案中的建议将 python 版本升级到 3.6+ 时,上述问题得到解决。但现在,面临新的价值错误问题。DataprocInstantiateWorkflowTemplateOperator我导入后使用airflow.providers.google.cloud.operators.dataproc。
请在下面找到错误回溯。
Traceback (most recent call last):
File "workflow_dag.py", line 6, in <module>
from airflow.providers.google.cloud.operators.dataproc import DataprocInstantiateWorkflowTemplateOperator
File "/home/kshitij/env/lib/python3.7/site-packages/airflow/providers/google/cloud/operators/dataproc.py", line 36, in <module>
from google.cloud.dataproc_v1beta2.types import ( # pylint: disable=no-name-in-module
File …Run Code Online (Sandbox Code Playgroud) 在尝试上传 JSON 字符串并覆盖 GCS 存储桶中的现有对象时,出现以下错误。
google.api_core.exceptions.BadRequest: 400 POST https://storage.googleapis.com/upload/storage/v1/b/cc-freshdesk/o?uploadType=multipart: {
"error": {
"code": 400,
"message": "Provided CRC32C \"i8Z/Pw==\" doesn't match calculated CRC32C \"mVn0oQ==\".",
"errors": [
{
"message": "Provided CRC32C \"i8Z/Pw==\" doesn't match calculated CRC32C \"mVn0oQ==\".",
"domain": "global",
"reason": "invalid"
},
{
"message": "Provided MD5 hash \"6NMASNWhbd4WlIj/tWK4Sw==\" doesn't match calculated MD5 hash \"9H5THzsUBARmhzw5NjjgNw==\".",
"domain": "global",
"reason": "invalid"
}
]
}
}
: ('Request failed with status code', 400, 'Expected one of', <HTTPStatus.OK: 200>)
Run Code Online (Sandbox Code Playgroud)
找到下面的代码片段:
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
config_blob …Run Code Online (Sandbox Code Playgroud)