Pub/Sub 触发器
在 Cloud Functions 中,Pub/Sub 触发器能够使函数被调用以响应 Pub/Sub 消息。为函数指定 Pub/Sub 触发器时,您还需要指定 Pub/Sub 主题。每当有消息发布到指定主题时,系统都会调用您的函数。
若要使函数使用 Pub/Sub 触发器,必须将其作为事件驱动型函数实现:
如果您使用 CloudEvent 函数,则 Pub/Sub 事件数据会以 CloudEvents 格式传递给您的函数,并且 CloudEvent 数据载荷的类型为
MessagePublishedData
。如果您使用后台函数,则 Pub/Sub 事件数据载荷会以
PubsubMessage
格式直接传递给您的函数。
Google 事件代码库包含用于处理事件数据的其他资源。
Deployment
您可以在部署函数时指定 Pub/Sub 触发器。如需查看有关如何部署函数的一般说明,请参阅部署 Cloud Functions 函数;如需了解有关在部署期间配置 Pub/Sub 触发器的详细信息,请参阅此部分。
gcloud
如果您要使用 gcloud CLI 进行部署,则可以使用此处所示的标志配置 Pub/Sub 触发器:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-topic=YOUR_PUBSUB_TOPIC \ [--retry] \ ...
--trigger-topic
标志用于指定触发器要监控的 Pub/Sub 主题。发布到此主题的消息会触发对函数的调用。--retry
标志用于控制是否自动重试失败的函数调用。如需了解详情,请参阅重试事件驱动型函数。
旧版 Pub/Sub 事件
Cloud Functions (第 1 代) 中的旧版函数对 Pub/Sub 触发器使用不同的事件类型:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=providers/cloud.pubsub/eventTypes/topic.publish \ --trigger-resource=YOUR_PUBSUB_TOPIC \ ...
已在使用这些事件的旧版函数支持此事件类型。但是,我们建议您改用 --trigger-topic
标志,因为我们今后可能会移除旧版事件类型。
控制台
如果您要使用 Google Cloud 控制台进行部署,则可以在触发器部分中配置 Pub/Sub 触发器。
对于 Cloud Functions(第 2 代):
- 在触发器类型字段中,选择 Cloud Pub/Sub。
- 在 Cloud Pub/Sub 主题字段中,选择触发器要监控的主题。发布到此主题的消息会触发对函数的调用。
- 选择或取消选择失败时重试复选框,以控制 Cloud Functions 函数是否自动重试失败的函数调用。如需了解详情,请参阅重试事件驱动型函数。
点击更多选项以对触发器进行其他配置:
在触发器类型字段中,指定 Google 来源、自定义或第三方之一:
Google 来源可让您为 Pub/Sub、Cloud Storage、Firestore 和其他 Google 事件提供方指定触发器。在 Eventarc 触发器窗格中时,使用事件提供方字段来选择提供要触发函数的事件类型的产品。然后,在事件字段中,选择要用作触发器的事件。
自定义选项可让您通过应用代码生成和使用事件。按照 Eventarc 触发器窗格中的提示创建渠道。渠道是一种资源,用作将自定义事件从使用方传送到提供方的管道。自定义事件会发布到渠道,并且 Eventarc 触发器会订阅这些事件。
第三方选项可让您与提供 Eventarc 来源的非 Google 提供方集成。如需了解详情,请参阅 Eventarc 中的第三方事件。
在事件字段中,选择一个触发事件。默认值为
google.cloud.pubsub.topic.v1.messagePublished
。(可选)在服务账号字段中,选择要用作 Eventarc 触发器的身份的服务账号。如需了解详情,请参阅触发器身份。
点击保存触发器。
对于 Cloud Functions(第 1 代):
- 在触发器类型字段中,选择 Cloud Pub/Sub。
- 在选择 Cloud Pub/Sub 主题字段中,选择触发器要监控的主题,或选择创建主题以打开一个窗口,创建一个新主题。当消息发布到函数的主题时,系统会触发对函数的调用。
- 选中或取消选中失败时重试复选框,以控制是否自动重试失败的函数调用。如需了解详情,请参阅重试事件驱动型函数。
后续步骤
- 了解如何编写事件驱动型函数。
- 了解如何部署 Cloud Functions 函数。
- 如需查看如何使用 Pub/Sub 触发器编写、部署和调用函数的示例,请参阅 Pub/Sub 函数教程。