【问题标题】:gcp - Trigger Cloud Function on database insert?gcp - 在数据库插入时触发云功能?
【发布时间】:2019-12-16 08:31:30
【问题描述】:

不知道如何搜索;我正在寻找一种在 Cloud SQL 中将新行插入数据库时​​触发 Cloud Function 的方法。搜索“谷歌云功能事件”(或“触发器”)会显示 Firebase 结果,这不是我想要的。

有一系列的云函数可以接收数据并根据客户的需要进行转换;最后,经过一些操作,这些数据最终出现在一个表中。是否有我可以收听的事件,以便我可以访问新插入的行?如果没有,我可能最终会使用 Cloud Scheduler 并定期查看数据库。但是,这种解决方案似乎不适合长期使用。

如果有任何建议,我将不胜感激。

【问题讨论】:

  • CloudSQL 尚不支持此功能。使用 Aurora 可以做到这一点,因此 CloudSQL 将来可能会提供此功能以保持竞争力。但目前不可用。

标签: google-cloud-platform google-cloud-functions


【解决方案1】:

目前没有官方 Cloud Function 事件可以在 Cloud SQL 数据库更改时触发。您可以在Events and Triggers 文档中查看可用的事件。

您仍然可以使用 Cloud Pub/Sub 执行类似的操作,并且可以通过以下两种方式完成:

1 - 首先是通过 Stackdriver 上的 creating a sink 启用并将日志从 Cloud SQL 实例导出到 Pub/Sub 主题,并让 Cloud Function 监听该主题。

虽然此方法不需要您更改将数据插入数据库的方式,但它可能会暴露太多信息,因为所有查询都将记录在 Stackdriver 上。这也意味着您无法完全控制传递给函数的信息,因为消息将是日志条目的内容。

2 - 理想的解决方案是创建 Pub/Sub 主题并在您将新数据插入数据库时​​发布到该主题。这样,您可以更好地控制发送到主题的信息。您可以在Cloud Pub/Sub 文档中找到有关如何设置新主题的更多信息。

【讨论】:

  • 对于第 2 点。您是说将数据插入数据库的云功能是将消息发布到发布/订阅的功能,还是通知发布/订阅的数据库?我正在寻找 Cloud SQL 可以触发消息到 pub/sub 的方法,因为我使用表约束并且只有在满足约束时才会触发。
  • 关于您的问题,是的,它不一定来自 GCF。我的意思是,无论应用程序将数据插入到 Cloud SQL DB,也可以在每次插入调用时发布到 Pub/Sub 主题。目前无法从 Cloud SQL like in Aurora 调用 GCF 或将其发布到 Pub/Sub 主题。
猜你喜欢
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多