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

Bal*_*esh 1 google-cloud-platform google-cloud-pubsub airflow 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
Run Code Online (Sandbox Code Playgroud)

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

Rya*_*uan 5

目前,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
Run Code Online (Sandbox Code Playgroud)

参考:

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