如何将计划好的函数部署到Google Firebase函数?
我已经创建了一个名为
cron-通知
我的函数代码
exports.notification_email = functions
.region('europe-west1')
.pubsub
.schedule('0 * * * *')
.timeZone('Europe/Stockholm')
.onRun(async (event) => { ... }当我尝试使用
$ firebase deploy --only functions:notification_email 我知道下面的错误。
错误: HTTP错误: 400,位置必须等于欧洲西部1,因为与此项目相关联的App Engine应用程序位于欧洲西部1
我可以部署其他的功能,没有计划“欧洲-西部1”。我认为我的项目是在欧洲-西部1(我如何核实?)
我还尝试创建一个名为notification_email,的函数,它位于欧洲--West1,直接从中创建,然后部署我的函数--覆盖它--结果也是一样。
我还尝试将区域设置为
gcloud配置集函数/欧洲区域-西部1
正如文档中所述,结果是相同的。
我的$ gclod配置列表
[core]
account = myAccount
disable_usage_reporting = True
project = myProject
[functions]
region = europe-west1请帮帮我!:)
发布于 2019-10-14 11:57:58
当您在Firebase函数中使用计划函数时,将创建一个App实例,该实例是云调度程序工作所需的。你可以读到它,这里。
当这些资源被启动以便调度程序工作时,它们使用默认为资源设置的位置。
用于Firebase的云功能(仅用于调度函数)--如果您运行计划函数,云计划程序需要一个Google App Engine应用程序;在它的设置过程中,会提示您选择项目的默认Google平台(GCP)资源位置(如果在设置其他服务时尚未选中它)。
我认为您得到了该错误,因为您指定的默认GCP资源位置与函数GCP资源位置之间存在差异。
更多背景:
重要:云计划程序要求您的项目有一个(GAE)应用程序;在它的设置过程中,会提示您选择项目的默认Google平台(GCP)资源位置。此位置将用于项目中需要位置设置的GCP服务,特别是默认云存储桶和云修复数据库。在设置项目的默认GCP资源位置时,首先要考虑您希望存储数据和文件的位置,其次,要运行和Cloud的任何触发函数。设置项目的默认GCP资源位置后,无法更改它。
如果您单击Firebase中项目概述旁边的齿轮,您可以看到您的资源位于何处。
希望这能有所帮助。
https://stackoverflow.com/questions/58147444
复制相似问题