没有计划,无法创建计划程序作业



我一直在尝试为pub子函数设置时间表,这取决于我想要部署的环境,我所遵循的过程只是将这些cron字符串参数添加为环境变量。

.env.dev:

CRON_4H=every 4 hours
CRON_12H=every 12 hours
CRON_24H=every 24 hours

在函数定义中使用该参数

exports.myfunction = functions.pubsub.schedule(process.env.CRON_12H)
.onRun(context => {
// ETC
});

我得到以下错误:

如果没有调度,则无法创建调度程序作业

{
"id": "myfunction",
"project": "----",
"region": "----",
"entryPoint": "----",
"platform": "gcfv1",
"runtime": "nodejs16",
"scheduleTrigger": {
"schedule": "",
"timeZone": null
},
"labels": {
"deployment-tool": "cli-firebase"
},
"availableMemoryMb": 512,
"timeoutSeconds": 300,
"environmentVariables": {
"MIN_INSTANCES_1": "0",
"MIN_INSTANCES_3": "0",
"MIN_INSTANCES_5": "0",
CRON_4H=every 4 hours,
CRON_12H=every 12 hours,
CRON_24H=every 24 hours,
"FIREBASE_CONFIG": "--------",
"codebase": "default",
"securityLevel": "SECURE_ALWAYS"
}

到部署时,env-var似乎是空的,时间表和时区确实是空的。对此有什么建议吗?

编辑:似乎我正在设置运行时环境变量,如何为firebase函数定义构建环境变量?

我找不到设置"构建";变量,当时我唯一能使用的变量是基于firebase配置的项目ID,该配置在";构建";,所以我把方法改为:

在自己要导入的JS文件中:

let envProjectId = ''
if (process.env && process.env.FIREBASE_CONFIG) {
envProjectId = JSON.parse(process.env.FIREBASE_CONFIG).projectId
}
exports.instances =
envProjectId !== 'prod-projectI-id'
? {
MIN_INSTANCES_1: 0,
MIN_INSTANCES_3: 0,
MIN_INSTANCES_5: 0,
}
: {
MIN_INSTANCES_1: 1,
MIN_INSTANCES_3: 3,
MIN_INSTANCES_5: 5,
}

它不像把所有的变量放进一个合适的env文件那么优雅,但对我来说很有效。

相关内容

最新更新