4

我试图部署一个 PubSub 功能:

exports.sendReminder 
    = functions.pubsub.schedule('0 6 * * *').timeZone('Asia/Kolkata').onRun((context) => {
        console.log('Wake up! It\'s 6AM');
        return null;
    }
);
  1. 在我第一次尝试部署该功能之前,云计划 API 被禁用。
  2. 它自动启用。
  3. PubSub 也已启用。

预期行为

由于 Cloud Scheduler API 和 PubSub 已为该项目启用。理想情况下,部署函数时不应出现任何错误。该错误确实提到了几分钟后尝试。但是自从我启用 PubSub 和 Cloud Scheduler API 以来已经 24 小时了。

实际行为

> eslint .

+  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
+  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (41.54 KB) for uploading
+  functions: functions folder uploaded successfully
i  functions: uploading functions in project: sendReminder(us-central1)
i  functions: creating Node.js 8 function sendReminder(us-central1)...
i  scheduler: ensuring required API cloudscheduler.googleapis.com is enabled...
i  pubsub: ensuring required API pubsub.googleapis.com is enabled...
+  scheduler: required API cloudscheduler.googleapis.com is enabled
+  pubsub: required API pubsub.googleapis.com is enabled

Error: HTTP Error: 403, Cloud Scheduler API has not been used in the project before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudscheduler.googleapis.com/overview then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

版本信息

节点:v12.10.0

firebase 功能:8.2.0

firebase 工具:8.2.0

火力基地管理员:8.2.0

4

1 回答 1

3

它终于奏效了。这很奇怪,因为我启用了所有必要的 API。它不起作用的可能原因是我在中断期间初始化了部署并且某些权限失败。因此,由于权限而被拒绝。

在过去的几天里,我与 firebase 团队保持联系。我们尝试了不同的东西。我按照 Firebase 支持人员的指示解决此问题的步骤:

  1. Disabled 已启用 Schedular API 并在控制台中再次启用它:https ://console.cloud.google.com/apis/library/cloudscheduler.googleapis.com

  2. 使用控制台创建了一个虚拟 cron 作业:https ://cloud.google.com/scheduler/docs/quickstart#create_a_job

  3. 使用 Firebase CLI 部署了该功能,并且可以正常工作。

于 2020-05-28T05:31:58.163 回答