如何获取作曲家数据文件夹的GCS路径

时间:2019-07-16 06:52:01

标签: airflow google-cloud-composer

我需要将文件从FTP服务器复制到特定的GCS位置。 我正在使用ftp_hook将文件下载到/ data文件夹中。 我需要将此文件移到其他GCS存储桶中,而不是Composer GCS存储桶中。

我正在尝试使用GoogleCloudStorageToGoogleCloudStorageOperator运算符将文件从作曲家存储桶复制到所需存储桶。 为此,我需要在Airflow任务中阅读作曲家的文章。我不想将其添加为自定义变量,因为我的作曲家本身是动态创建的。 那么如何获取我的数据文件夹所在的作曲家存储桶的信息?

1 个答案:

答案 0 :(得分:2)

我不确定您是否要动态地执行此操作(即,同一DAG无需修改也可以在其他Composer env中工作),无论哪种方式,这就是我的想法:

  • (无动态)您可以检查Composer在环境中使用的存储分区,该存储分区应位于“ DAGs文件夹”下(实际上是DAG所在的文件夹,只需取/dags

  • (动态)由于您想要的是将文件从Composer复制到GCS,因此可以使用FileToGoogleCloudStorageOperator并使用将文件映射到{{3} }。请注意,本地存储区和Composer存储区彼此映射,因此访问路径home/airflow/gcs/data/file1gs://<bucket>/data/file1的路径“相同”。

  • (半动态)您可以使用Composer Bucket获取环境详细信息并解析存储桶。当然,您需要事先知道名称,位置和项目。

在这三者中,我说使用 FileToGoogleCloudStorageOperator 的那一种是最干净,最简单的。