首页 > 解决方案 > 如何使用 Cloud Composer 下载和访问文件?

问题描述

我有一些与文件相关的用例,我不确定如何使用 Cloud Composer 最好地完成这些用例。我应该如何最好地完成这些?

1)我需要使用私钥(.pem)文件来访问 SFTP 服务器。该文件应存储在何处以及应如何访问?在本地 Airflow 中,我只需将文件放在与 /dags/ 相同目录中的文件夹 /keys/ 中。

2)我需要将文件从 SFTP 服务器移动到云存储。使用 Airflow on prem,我将这些从 SFTP 服务器下载到 Airflow 工作实例上的特定位置,然后从那里上传。我是否可以使用 Composer 做类似的事情,或者是否有解决方法,因为我无法访问文件系统?

标签: google-cloud-platformgoogle-cloud-composer

解决方案


1)假设 .pem 文件只需要在任务运行时访问(而不是 DAG 定义解析时),您可以将其放在环境的 Cloud Storage 存储桶的 /data 目录中。它在路径 /home/airflow/gcs/data 上安装了保险丝。您可以使用 Cloud Composer gcloud 组件上传文件。

2)这里有2个选项。

  1. 从您的 SFTP 服务器写入 /home/airflow/gcs/data,该文件已熔断安装到您的 Cloud Storage 存储桶中。您可以将其留在那里或使用GoogleCloudStorageToGoogleCloudStorageOperator将其移动到您真正想要的位置。

  2. 如果要复制到本地磁盘和从本地磁盘复制到 Cloud Storage,则需要在同一个任务中执行这两个步骤(由于 Cloud Composer 环境使用 CeleryExecutor,因此不能保证同一个 DAG 中的任务在同一台机器)。您应该能够写入 /home/airflow 和 /tmp。


推荐阅读