2

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

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

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

4

2 回答 2

11

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。

于 2018-05-15T20:03:30.193 回答
2

2.,基于云作曲家文档:

当您修改 Cloud Storage 存储分区中的 DAG 或插件时,Cloud Composer 会在集群中的所有节点之间同步数据。Cloud Composer 通过本地复制单向同步 dags/ 和 plugins/ 文件夹,并通过 Cloud Storage FUSE 双向同步 data/ 和 logs/ 文件夹。

您可以在运营商中将文件写入本地目录/home/airflow/gcs/data,云作曲家将gs://bucket/data双向同步目录。

更多详细信息,您可以查看此文档以了解谷歌云作曲家如何与谷歌云存储交互: https ://cloud.google.com/composer/docs/concepts/cloud-storage

于 2018-11-08T10:10:18.947 回答