请参阅 Application Integration 支持的连接器。
Cloud Pub/Sub 触发器
借助 Cloud Pub/Sub 触发器,您可以根据 Pub/Sub 中间件中的事件运行集成。
使用此触发器时,只要发布者将消息写入您选择的主题,您就可以执行集成。主题可以存在于集成所在的 Google Cloud 项目中,也可以存在于其他 Google Cloud 项目中。当此触发器执行时,还会将发布的消息写入 CloudPubSubMessage
输出变量。根据您的要求,您可以在下游触发器或任务中使用此变量。
准备工作
在配置 Cloud Pub/Sub 触发器之前,请确保在您的 Google Cloud 项目中执行以下任务。
- 将 Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) 分配给创建此触发器的用户。 - 为您集成的 Google Cloud 项目启用 Pub/Sub API。
- 确认您具有 Pub/Sub 主题。如需创建新的 Pub/Sub 主题,请执行以下操作:
- 转到 Cloud 控制台中的 Pub/Sub 主题页面。
- 点击创建主题。
- 在主题 ID 字段中,提供唯一的主题名称。
- 点击保存。
如需详细了解如何使用 IAM 角色管理访问权限,请参阅访问权限控制。
如需了解如何向主账号授予角色,请参阅授予、更改和撤消访问权限。
添加 Cloud Pub/Sub 触发器
如需将 Cloud Pub/Sub 触发器添加到新的或现有的集成,请按以下步骤操作:- 在 Google Cloud 控制台中,前往 Application Integration 页面。
- 在导航菜单中,点击 Integrations(集成)
此时将显示集成列表页面,其中列出了 Google Cloud 项目中提供的所有集成。
- 选择现有集成,或点击创建集成以创建新集成。
要创建新的集成,请执行以下操作:
- 在 Create Integration(创建集成)窗格中输入名称和说明。
- 选择集成区域。
- 为集成选择服务帐号。您随时可以在集成工具栏的 集成摘要窗格中更改或更新集成的服务帐号详细信息。
- 点击创建。
系统会在集成编辑器中打开集成。
- 在集成编辑器导航栏中,点击触发器以查看可用触发器的列表。
- 点击 Cloud Pub/Sub 触发器元素,并将其放置在设计器中。
配置 Cloud Pub/Sub 触发器
点击集成编辑器中的 Cloud Pub/Sub 触发器元素以查看触发器配置窗格,然后执行以下任务:
- 在 Pub/Sub 主题字段中,按以下格式指定触发器应监听的主题:
projects/PROJECT_ID/topics/TOPIC_ID
如需查看 Google Cloud 项目中的所有可用主题,请参阅主题中的主题名称列。您也可以从其他 Google Cloud 项目中选择其他主题。
替换以下内容:PROJECT_ID
:创建主题的 Google Cloud 项目。TOPIC_ID
:您的 Pub/Sub 主题的 ID。主题可以位于您的集成所在的 Google Cloud 项目中,也可以存在于其他 Google Cloud 项目中。
- 选择要用于调用集成的服务帐号。您也可以选择已在集成中创建的配置变量。配置变量的值必须是格式如下的服务帐号电子邮件地址:
SERVICE_ACCOUNT_NAME@project-id.iam.gserviceaccount.com
。例如application-integration-invoke@project123.iam.gserviceaccount.com
。如需了解如何创建配置变量,请参阅创建变量;如需了解如何创建服务帐号,请参阅创建服务帐号。
如果您选择配置变量,则必须向该配置变量引用的服务帐号授予所需的角色。如需详细了解如何授予角色,请参阅必需的 IAM 角色。
如果没有服务帐号,请点击服务帐号列表中的新建,创建一个服务帐号。
默认情况下,订阅的有效期选项设为 never expire
。如果要将到期时间设置为其他值,请在 Google Cloud 控制台中转到 Pub/Sub 订阅页面并修改订阅。
服务账号所需的 IAM 角色
在选择服务帐号时点击授予,系统会自动为各个服务帐号提供以下角色。
服务账号 | 已授予 IAM 角色 |
---|---|
Application Integration 的默认服务帐号:service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com |
如果 Pub/Sub 主题的 Google Cloud 项目与集成的 Google Cloud 项目不同,则默认服务帐号需要该主题的 Google Cloud 项目中的 Pub/Sub Editor 角色。 |
您为此触发器选择的服务账号 |
Application Integration 调用方 (roles/integrations.integrationInvoker )
|
触发器输出
对于每个事件,Cloud Pub/Sub 触发器会生成一个 CloudPubSubMessage
输出变量,您可以在下游任务中使用该变量。该变量采用 JSON 格式,并且具有 PubsubMessage
结构。
注意事项
- Pub/Sub 消息的大小上限为 10 MB。如需了解 Pub/Sub 的所有限制,请参阅 Pub/Sub 配额和限制。
- Pub/Sub 可能会将同一消息多次写入一个主题。要了解 Pub/Sub 的此行为,请参阅至少传送一次。因此,您必须将集成设计为具有幂等性,以免允许将消息多次写入一个主题。
消息标头中的
message_id
字段唯一标识 Pub/Sub 消息。 - 如果您取消发布集成,系统不会删除 Pub/Sub 订阅,以免丢失消息。但是,如果您删除集成的已发布版本或所有集成版本,则 Pub/Sub 订阅也会被删除。
为您的集成创建带有过滤条件的订阅
如果要为 Pub/Sub 订阅设置过滤条件以处理集成中的特定事件,请按以下步骤操作:
- 发布已配置 Cloud Pub/Sub 触发器的集成。此步骤会在集成项目中创建订阅。
- 在 Google Cloud 控制台中,前往订阅页面。
- 打开相应订阅并复制所有详细信息,包括订阅名称。
- 删除现有订阅。
- 使用您在第 3 步中复制的已删除订阅的所有详细信息(包括订阅名称)创建新订阅,然后在新订阅中添加过滤条件。
新创建的订阅会触发与过滤后的消息的集成。
SLA 例外情况
Cloud Pub/Sub 触发器依赖于 Pub/Sub 产品。由于此依赖项位于 Application Integration 外部,因此仅当 Cloud Pub/Sub 触发器成功开始执行 active
集成时,Application Integration 服务等级协议 (SLA) 条款及条件才适用。