首页 > 解决方案 > 想要使用 apache 气流 [DAG] 文件将文件上传到 s3

问题描述

我想制作一个 DAG 文件(apache 气流),用于将 rar 文件上传到任何人尝试过的 s3 存储桶。?请建议,

我在我的 DAG 文件上尝试了这些东西,但出现了一些错误

from airflow.operators import SimpleHttpOperator, HttpSensor,   , EmailOperator, S3KeySensor

错误是

/usr/local/lib/python3.6/dist-packages/airflow/utils/helpers.py:439:弃用警告:直接从“airflow.operators”导入“SimpleHttpOperator”已被弃用。请改为从“airflow.operators.[operator_module]”导入。Airflow 2.0 将完全放弃对直接导入的支持。

弃用警告)/usr/local/lib/python3.6/dist-packages/airflow/utils/helpers.py:439:弃用警告:直接从“airflow.operators”导入“HttpSensor”已被弃用。请改为从“airflow.operators.[operator_module]”导入。Airflow 2.0 将完全放弃对直接导入的支持。

DeprecationWarning)/usr/local/lib/python3.6/dist-packages/airflow/utils/helpers.py:439:DeprecationWarning:直接从“airflow.operators”导入“EmailOperator”已被弃用。请改为从“airflow.operators.[operator_module]”导入。Airflow 2.0 将完全放弃对直接导入的支持。

如何解决这个问题。?

标签: amazon-s3airflow

解决方案


这只是一个警告,而不是错误。ADeprecationWarning通常暗示你正在做的事情现在可以工作,但可能会在未来的版本中中断。如果您的任务失败,请忽略这些消息并查找正确的错误。

运算符的代码一直位于 下,但为了方便起见airflow.operators.[operator_module],它也直接在下提供。airflow.operators例如,SimpleHttpOperatorhttps://github.com/apache/airflow/blob/1.10.9/airflow/operators/http_operator.py中定义,因此从中导入它airflow.operators.http_operator肯定会起作用。但是,由于https://github.com/apache/airflow/blob/1.10.9/airflow/operators/init .py #L97-L99airflow.operators中当前存在的代码,从它导入它也将起作用,至少目前如此在您当前版本的 Airflow 中。基本上,您可以通过将导入更新为以下内容来解决这些警告:

from airflow.operators.http_operator import SimpleHttpOperator
from airflow.operators.email_operator import EmailOperator
from airflow.sensors.http_sensor import HttpSensor
from airflow.sensors.s3_key_sensor import S3KeySensor

请注意,目前仅在master分支上,尚未发布任何版本,一些第三方运营商和传感器也已再次移动。例如,S3KeySensor将在 下找到providers.amazon.aws.sensors.s3_key.py。正如预期的那样,从“旧”路径导入会得到类似的弃用消息,https://github.com/apache/airflow/blob/97a429f9d0cf740c5698060ad55f11e93cb57b55/airflow/sensors/s3_key_sensor.py#L25-L28


推荐阅读