airflow.providers.google.cloud.triggers.pubsub

此模块包含 Google Cloud Pub/Sub 触发器。

PubsubPullTrigger

使用所需参数初始化 Pub/Sub 拉取触发器。

模块内容

class airflow.providers.google.cloud.triggers.pubsub.PubsubPullTrigger(project_id, subscription, max_messages, ack_messages, gcp_conn_id, poke_interval=10.0, impersonation_chain=None)[source]

基类: airflow.triggers.base.BaseTrigger

使用所需参数初始化 Pub/Sub 拉取触发器。

参数:
  • project_id (str) – 订阅的 Google Cloud 项目 ID (模板化)

  • subscription (str) – Pub/Sub 订阅名称。不包含完整的订阅路径。

  • max_messages (int) – 每个 Pub/Sub 拉取请求要检索的最大消息数

  • ack_messages (bool) – 如果为 True,每条消息将立即确认,而不是由任何下游任务确认。

  • gcp_conn_id (str) – Google Cloud 连接 ID 的引用

  • poke_interval (float) – 检查状态的轮询间隔(秒)

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 用于使用短期凭据模拟的可选服务账号,或获取列表中最后一个账号的 access_token 所需的账号链列表,该账号将在请求中被模拟。如果设置为字符串,该账号必须授予发起账号 Service Account Token Creator IAM 角色。如果设置为序列,列表中的身份必须授予 Service Account Token Creator IAM 角色给直接前一个身份,列表中的第一个账号将此角色授予发起账号 (模板化)。

project_id[source]
subscription[source]
max_messages[source]
ack_messages[source]
poke_interval = 10.0[source]
gcp_conn_id[source]
impersonation_chain = None[source]
serialize()[source]

序列化 PubsubPullTrigger 参数和 classpath。

async run()[source]

在异步上下文中运行此触发器。

当触发器想要触发一个事件时,应 yield 一个 Event,如果完成则返回 None。因此,单事件触发器应先 yield,然后立即返回。

如果它 yield,很可能会很快恢复,但也可能不会(例如,如果工作负载正在转移到另一个 triggerer 进程,或者多事件触发器被用于单事件任务延迟)。

无论哪种情况,Trigger 类都应假定它们会被持久化,并在不再需要时依赖于 cleanup() 方法被调用。

async message_acknowledgement(pulled_messages)[source]
property hook: airflow.providers.google.cloud.hooks.pubsub.PubSubAsyncHook[source]

此条目有帮助吗?