在一个框架内,我正在构建一些在主要Faas提供程序(aws,gcp,azure,alicloud)上运行的功能。主要功能本质上是一个基于环境变量的省略号,该环境变量决定调用哪个函数(“在aws上执行操作”,“在gcp上执行操作”)等。这些功能实际上只是从适当的数据库(aws-> dynamo,gcp-> firestore,azure-> cosmos)中读取的。
通过他们的门户网站将zip上传到google cloud函数时,出现以下错误:
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
密码锁包含Google要求,但未在任何地方说明该地区。但是,使用gcp控制台时,它会自动上传到us-central1。
答案 0 :(得分:0)
在Google网上论坛中发现错误。如果还有其他人遇到此问题,那是因为您要导入boto并上传到gcp。 GCP说这是boto的错。因此,您可以拆分代码,以便仅导入必要的gcp文件,或者将导入包装在基于环境var的if中。
gcp产品管理器的响应是:“大家好-请关闭此功能。原来这不是Cloud Functions / gcloud中的问题。错误是boto库发出的错误:”您必须指定一个区域。”这令人困惑,因为区域的概念适用于AWS和GCP。我们正在对错误消息进行调整,以期希望将来会更加明显。”