Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase调度程序的云函数时区未更改_Firebase_Google Cloud Platform_Google Cloud Functions_Google Cloud Scheduler - Fatal编程技术网

Firebase调度程序的云函数时区未更改

Firebase调度程序的云函数时区未更改,firebase,google-cloud-platform,google-cloud-functions,google-cloud-scheduler,Firebase,Google Cloud Platform,Google Cloud Functions,Google Cloud Scheduler,我目前正在为Firebase scheduler创建和部署一个要定期在云函数中执行的函数,如下所示。 关键的一点是,我希望它在日本时间的0:05作为.timeZone('Asia/Tokyo')执行 部署本身工作正常,但当我查看GCP的云调度程序中的内容时,时区设置为(美国/洛杉矶),如下图所示,实际执行时间与日本时间不同 我在Cloud Scheduler function management(云调度器功能管理)屏幕中将时区手动更改为Japan time(日本时间),并确认实现了所需的行为,

我目前正在为Firebase scheduler创建和部署一个要定期在云函数中执行的函数,如下所示。 关键的一点是,我希望它在日本时间的0:05作为.timeZone('Asia/Tokyo')执行

部署本身工作正常,但当我查看GCP的云调度程序中的内容时,时区设置为(美国/洛杉矶),如下图所示,实际执行时间与日本时间不同

我在Cloud Scheduler function management(云调度器功能管理)屏幕中将时区手动更改为Japan time(日本时间),并确认实现了所需的行为,但当我再次部署该功能时,它仍然设置为(美国/洛杉矶)

我认为它可能会受到GCP区域本身的影响,我必须改变GCP区域,但我还没有找到可以改变它的地方。 但是,我认为应该能够从代码中为每个函数指定.timeZone。我不知所措

我不知道如何解决这个问题,我想知道是否有人能帮我

exports.XXX = functions.pubsub
.schedule('every day 0:05')
.timeZone('Asia/Tokyo')
.onRun((context) => {
///省略
});


提前感谢您。

这可能与您的CLI版本有关,请确保它已更新,如果您一直遇到问题,应联系firebase支持部门提交错误请求

另一个解决方案是,可以在
谷歌云平台(GCP)资源位置内将该区域设置为未定义。
请注意,除非您知道自己在做什么,并且希望设置所有默认位置,否则不建议设置GCP位置


参考资料:

我也遇到过同样的问题。还有一个类似的问题,降低firebase工具等级的解决方案对我很有效。

firebaser在这里

看起来firebase tools的9.12版中有一个bug,它强制所有云函数都部署在太平洋时区,而不管您在代码中设置的时区是什么


升级到9.12.1版应该可以解决这个问题。有关此问题的更多详细信息,请参阅Github回购协议。

谢谢您的回答!我尝试了更新CLI工具和部署,但问题是相同的。我还尝试使用命令
gcloud config set functions/region asia-northeast 1
更改GCP区域。更改区域很好,但是这个问题没有解决……困扰我的一件事是,即使在更改区域并再次部署之后,函数的区域仍然是us-central1,如图所示。哪些设置受此影响?功能[XXX(us-central1)]:成功的upsert计划操作。2个主要因素:CLI编译代码并将其发布到相关的云功能服务器,以及GCP使用的默认位置和Firebase的本地位置。有些是us-central1独有的,如托管。谢谢您的回答!在降级firebase工具之前,将
firebase工具升级到9.12.1,并将node.js版本从v14升级到v16(带nvm)解决了上述问题!感谢您标记@k_ele!我更新了我的答案。谢谢你的回答!在降级firebase工具之前,将
firebase工具升级到9.12.1,并将node.js版本从v14升级到v16(带nvm)解决了上述问题!