Firebase调度程序的云函数时区未更改
我目前正在为Firebase scheduler创建和部署一个要定期在云函数中执行的函数,如下所示。 关键的一点是,我希望它在日本时间的0:05作为.timeZone('Asia/Tokyo')执行 部署本身工作正常,但当我查看GCP的云调度程序中的内容时,时区设置为(美国/洛杉矶),如下图所示,实际执行时间与日本时间不同 我在Cloud Scheduler function management(云调度器功能管理)屏幕中将时区手动更改为Japan time(日本时间),并确认实现了所需的行为,但当我再次部署该功能时,它仍然设置为(美国/洛杉矶) 我认为它可能会受到GCP区域本身的影响,我必须改变GCP区域,但我还没有找到可以改变它的地方。 但是,我认为应该能够从代码中为每个函数指定.timeZone。我不知所措 我不知道如何解决这个问题,我想知道是否有人能帮我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(日本时间),并确认实现了所需的行为,
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)解决了上述问题!