错误消息:
Error: There was an error deploying functions
fireblese-debug.log包含以下内容:
[debug] [2021-11-16T12:12:16.165Z] Error: Failed to upsert schedule function lab2 in region europe-west3
功能代码:
exports.lab2 =
functions
.region('europe-west3')
.pubsub.schedule('*/10 * * * *')
.onRun(lab);
我能做什么?谷歌支持导致stackoverflow,所以我把它发布在这里。有没有更好的方法来处理谷歌云的问题?
当您在Firebase函数中使用计划函数时,会创建一个应用程序引擎实例,该实例是Cloud Scheduler工作所必需的。你可以在这里阅读。在设置过程中,系统会提示您选择项目的默认谷歌云平台(GCP(资源位置(如果在设置另一项服务时尚未选择(。
您收到该错误是因为您指定的默认GCP资源位置与您计划的云功能的区域之间存在差异。如果您在Firebase中单击项目概述旁边的齿轮,您可以看到您的资源所在的位置。将默认的GCP资源位置设置为与调度器功能区域相同,解决了该问题。
我们的调度函数部署失败的原因是因为cron作业公式。由于某种原因,firebase不能理解0 0 3 1/1 * ? *
,但可以理解every 5 minutes
。
很遗憾firebase没有提供更好的错误消息。Error: Failed to upsert schedule function xxx in region xxx
太通用了。
我在部署调度函数时遇到了同样的问题,我通过以下几个步骤解决了这个问题:
- 步骤1:重命名计划函数(例如:newScheduleABC(,然后只部署它:
$Firebase仅部署函数:newScheduleABC
注意:正如@Nicholas所提到的,Unix Cron格式GCP接受的只有5个字段:schedule(***(
- 步骤2:通过转到Firebase控制台删除旧的(计划(功能:https://console.firebase.google.com/.../functions,您将在那里看到您的所有功能。单击函数末尾的垂直省略号,然后单击"删除">
就是这样。从现在开始应该没有问题。
您可以从管理功能中阅读更多信息