【问题标题】:No module named providers.google.cloud.operators.pubsub: Google Cloud Composer没有名为 providers.google.cloud.operators.pubsub 的模块:Google Cloud Composer
【发布时间】:2020-01-29 18:44:18
【问题描述】:

我正在尝试设置响应 Cloud Pub/Sub 消息的 DAG。它需要我在我的 DAG 代码中添加以下导入语句:

from airflow.providers.google.cloud.operators.pubsub import (
PubSubCreateSubscriptionOperator, PubSubCreateTopicOperator, PubSubDeleteSubscriptionOperator,
PubSubDeleteTopicOperator, PubSubPublishMessageOperator,
)
from airflow.providers.google.cloud.sensors.pubsub import PubSubPullSensor

DAG 导入失败,因为它无法解析依赖关系。谁能告诉我所需的依赖项以及如何将它们带入 Cloud Composer 环境?

【问题讨论】:

    标签: google-cloud-platform airflow google-cloud-pubsub google-cloud-composer


    【解决方案1】:

    目前,Google Cloud Composer 仅发布到 Airflow V1.10.3。 V1.10.3 或 V1.10.2 的文件夹结构与当前 master 分支中的不同。而且运营商的名字也可能不同。

    因此,Google Cloud Pub/Sub 运营商和传感器的导入应该是这样的:

    from airflow.contrib.operators.pubsub_operator import (
        PubSubPublishOperator, PubSubSubscriptionCreateOperator,
        PubSubSubscriptionDeleteOperator, PubSubTopicCreateOperator,
        PubSubTopicDeleteOperator)
    from airflow.contrib.sensors.pubsub_sensor import PubSubPullSensor
    

    参考:

    V1.10.2 发布/订阅

    https://github.com/apache/airflow/blob/1.10.2/airflow/contrib/operators/pubsub_operator.py https://github.com/apache/airflow/blob/1.10.2/airflow/contrib/sensors/pubsub_sensor.py

    V1.10.3 发布/订阅

    https://github.com/apache/airflow/blob/1.10.3/airflow/contrib/operators/pubsub_operator.py https://github.com/apache/airflow/blob/1.10.3/airflow/contrib/sensors/pubsub_sensor.py

    【讨论】:

    • 它解决了 Pub/Sub 与 Airflow DAG 的集成。但是,我想了解是否有任何方法可以在新消息到达 Pub/Sub 主题时自动启动 DAG。一种方法是将云功能设置为传入消息的观察者。是否有任何直接的方法可以让 Airflow 本身检测到 Pub/Sub 主题上的传入消息并将自身作为事件操作触发。
    • @BalajeeVenkatesh 在这里回答您的问题:stackoverflow.com/a/58575463/9465561
    猜你喜欢
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2019-02-02
    • 2016-07-11
    • 2023-03-25
    • 2019-02-01
    相关资源
    最近更新 更多