首页 > 解决方案 > 没有名为 providers.google.cloud.operators.pubsub 的模块:Google Cloud Composer

问题描述

我正在尝试设置一个响应 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-platformairflowgoogle-cloud-pubsubgoogle-cloud-composer

解决方案


目前,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


推荐阅读