部署 Google Cloud Run Function v2 - 触发器未调用/运行

问题描述 投票:0回答:1

我正在将 Google Cloud Run Functions 从 v1 和 Node 12 迁移到 v2 和 Node 20。 到目前为止,我已经升级了 onSchedule 和 onMessagePublished 触发器,没有任何问题。

当尝试部署实时数据库触发器并使用 eventarc 时,事情似乎出现了问题。

这是我的测试功能代码:

const { onValueCreated } = require("firebase-functions/v2/database");
const { logger } = require("firebase-functions");

exports.testEventarc = onValueCreated(
  {
    ref: "/test/{id}",
  },
  async (event) => {
    logger.info("Value created:", event.data.val());
  },
);

我已经更新了 firebase-functions,我的 firebase 工具版本是 13.22.0

$ npm install --save firebase-functions@latest
$ npm install -g firebase-tools

我还尝试在部署之前重新添加项目,使用

$ firebase use --add

使用以下命令部署我的函数时,没有出现任何错误。

$ firebase deploy --only functions:testEventarc
...
✔  functions[testEventarc(us-central1)] Successful create operation.
i  functions: cleaning up build files...

✔  Deploy complete!

但是 - 该功能的触发器不正确。 导航到 Google Cloud Console“Cloud Run 函数”并选择函数“testEventarc”时,触发器具有以下属性:

Eventarc trigger
Name: testeventarc-834306
Event provider: Firebase Realtime Database
Event type: google.firebase.database.ref.v1.created
Receive events from: us-central1
Service account: [email protected]
Retry on failure: Disabled

这里有三件事看起来很奇怪:

  1. 事件类型 - 这应该是 v2 函数!?
  2. 云控制台(Cloud Run Functions)中触发类型为“未知触发”
  3. 服务帐户 - 这应该是 eventarc 帐户吗? (IE。 服务帐户:[电子邮件受保护])

我部署的更新功能没有响应任何数据库事件,触发器似乎不正确。

我可以采取什么措施来解决这个问题并部署升级后的功能?

编辑: eventarc触发器是否需要与数据库位于同一区域? 我自己制作了一些触发器,由于我的数据库位于触发器之外的另一个区域,因此 UI 中不允许创建触发器。 部署没有警告或给出任何与此相关的错误! 触发器真的应该显示为:“未知触发器”吗? #困惑

google-cloud-platform firebase-realtime-database google-cloud-functions google-cloud-run firebase-tools
1个回答
0
投票

好的,这些是我的发现!

eventarc 需要数据库触发器位于同一区域

这是对未使用 Eventarc 的 v1 Cloud Run Functions 的重大更改。

我自己做了一些触发因素并得出了这个结论。 我的数据库位于触发器之外的另一个区域,通过 UI 创建触发器时不允许这样做。

但是,部署没有警告或给出任何与此相关的错误!

还有;令人困惑的是,新触发器显示为“未定义触发器”并具有 v1 属性 - 但触发器现在被调用!

Eventarc trigger
Name: testeventarc-834306
Event provider: Firebase Realtime Database
Event type: google.firebase.database.ref.v1.created
Receive events from: us-central1
Service account: [email protected]
Retry on failure: Disabled

不过,一切都不太顺利——触发器不可靠和/或损坏。 它在部署时进行操纵并在已创建的节点上不稳定地触发。

已就此主题创建了另一个问题 --> Google Cloud Run Function v2 - 不稳定的触发

© www.soinside.com 2019 - 2024. All rights reserved.