访问 Google 云存储触发事件 "Pub/Sub"?

Access to the Google Cloud Storage Trigger Events "Pub/Sub"?

我在 Cloud Function 上设置了一个 Google 云存储触发器,最大实例数为 5,用于触发云存储桶的 google.storage.object.finalize 事件。 The docs state that these events are "based on" the Cloud Pub/Sub.

有谁知道:

不,不,不。当您将 Cloud Functions 插入 Cloud Storage 事件时,所有的东西都由 Google 在幕后处理,您什么也看不到,也无法与任何东西交互。

但是,您可以更改通知机制。而不是直接在 Cloud Storage Event 上插入 Cloud Functions,plug a PubSub on your Cloud Storage event.

从那里,您可以访问您的 pubsub。监控队列,清除它,创建你想要的订阅,...

使用存储通知的推荐方法是使用 Pubsub。

传统存储通知仍然有效,但使用 pubsub,您可以“窥视”pubsub 消息队列并在需要时将其清除。

此外,您可以使用云处理 pubsub 事件 运行 - 这更容易开发和测试(只是网络服务),更容易部署(只是一个容器)并且它可以并行处理多个请求而无需必须支付更多费用(当您同时有很多请求时这很好)。

pubsub 存储通知去了哪里?

您可以使用 gsutil 命令查看 gcloud 通知的位置:

% gsutil notification list gs://__bucket_name__
projects/_/buckets/__bucket_name__/notificationConfigs/1
        Cloud Pub/Sub topic: projects/__project_name__/topics/__topic_name__
        Filters:
                Event Types: OBJECT_FINALIZE

有什么方法可以获取队列深度(或同等深度?)

在 pubsub 中,您可以订阅多个主题。 如果没有订阅,消息就会丢失。

要将数据发送到云函数或云 运行,您需要设置推送订阅。 根据我的经验,您将无法看到发生了什么,因为点击速度更快:99.9999% 的时间您会发现它是空的。

您可以在控制台中查看“队列”depht(pubsub -> 选择主题 -> 选择订阅)。

如果您需要解决此问题,请设置第二个订阅,其生存时间足够短,不会使用很多 space(您需要为此付费)。

有什么办法清除事件吗?

您可以清空 pubsub 订阅中的消息,但是... ...如果您再次使用云功能的推送通知,它会比您“点击”快得多。

如果您需要,它在 Web 控制台上(打开 pubsub 订阅并单击右上角的垂直“...”)。