【发布时间】:2019-12-28 15:56:58
【问题描述】:
我将 Python 应用程序部署到 Google Cloud Functions 并收到这条非常模糊的错误消息:
$ gcloud functions deploy parking_photo --runtime python37 --trigger-http
Deploying function (may take a while - up to 2 minutes)...failed.
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. Error message: 'main'
我不知道出了什么问题。四处寻找没有结果。有人可以帮忙吗?
我相信我的代码布局是正确的:
$ tree
.
├── main.py
├── poetry.lock
├── pyproject.toml
├── README.rst
├── requirements.txt
└── tests
├── __init__.py
└── test_burrowingowl.py
我的main.py 文件有一个与函数名匹配的函数:
import operator
from datetime import datetime
import logbook
from flask import Request, abort, redirect
from pydantic import ValidationError
from pydantic.dataclasses import dataclass
from google.cloud import storage
from pytz import timezone
logger = logbook.Logger(__name__)
storage_client = storage.Client()
@dataclass
class Form:
bucket: str = ...
parkinglot: str = ...
space_id: int = ...
tz: str = ...
def parking_photo(request: Request):
# Some code
return
更新
感谢您的回答。当我有一段时间没有收到来自 StackOverflow 的通知时,这个话题不在我的视线范围内。
去年,我通过放弃使用 dataclass 来修复它。当时谷歌声称支持 Python 3.7 但实际上不支持,这就是为什么dataclass 不起作用。
当您尝试重现此问题时,可能 Google 已经修复了 Python 3.7 兼容性。
【问题讨论】:
-
无法复制。你能分享你的 requirements.txt 文件吗?
标签: python python-3.x google-cloud-platform google-cloud-functions