【发布时间】:2019-12-24 13:20:33
【问题描述】:
在一个框架内,我正在构建一些在主要 Faas 提供程序(aws、gcp、azure、alicloud)上运行的函数。主函数本质上是一个基于环境变量的 elif,它决定调用哪个函数(“在 aws 上做事”、“在 gcp 上做事”)等。这些函数基本上只是从适当的数据库(aws->dynamo、gcp->firestore、azure->cosmos)中读取。
通过他们的门户网站将我的 zip 上传到谷歌云功能时,我收到以下错误:
Function failed on loading user code. Error message: You must specify a region.
我担心这与我的 piplock 文件有关,并且与 aws 依赖项发生冲突。不过不确定。我无法在网上找到有人使用 gcp 收到此错误消息的任何地方(当然不是通过使用在线控制台),并且只能使用 aws 看到此错误的结果。
我的 requirements.txt 文件很简单:
google-cloud-firestore==1.4.0
piplock 包含 google 要求,但未在任何地方说明该地区。但是,当使用 gcp 控制台时,它会自动上传到 us-central1。
【问题讨论】:
-
在 Google 网上论坛中发现错误。如果其他人有这个问题,那是因为您正在导入 boto 并上传到 gcp。 GCP说这是boto的错。因此,您可以拆分代码以便只引入必要的 gcp 文件,或者根据环境变量将导入包装在 if 中。
-
你能链接到你找到的线程吗?
-
它在 google 上一个封闭的 Cloud Functions Beta 测试组中。如果您可以访问该组,链接是groups.google.com/forum/#!searchin/cloud-functions-beta-testers/…
-
gcp 产品经理的响应是“大家好——关闭它。原来这不是 Cloud Functions/gcloud 中的问题。错误是由
boto库发出的:“您必须指定一个区域。”这很令人困惑,因为区域的概念适用于 AWS 和 GCP。我们正在对我们的错误消息进行调整,希望将来能更明显一点。“ -
你能添加这个作为答案吗?我认为这对社区很有用
标签: python python-3.x google-cloud-platform google-cloud-firestore google-cloud-functions