没有名为 providers.google.cloud.operators.pubsub 的模块:Google Cloud Composer

No module named providers.google.cloud.operators.pubsub: Google Cloud Composer

我正在尝试设置一个 DAG 来响应 Cloud Pub/Sub 消息。它需要我在我的 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 Composer 仅发布了 Airflow V1.10.3。 V1.10.3 或 V1.10.2 的文件夹结构与当前 master 分支中的文件夹结构不同。并且运营商的名称也可能不同。

所以 Google 云 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 Pub/Sub

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 Pub/Sub

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