Как я могу загружать и получать доступ к файлам с помощью Cloud Composer? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть несколько случаев использования файлов, которые я не знаю, как лучше всего выполнить Cloud Composer. Как мне лучше всего это сделать?

1) Мне нужно использовать файл закрытого ключа (.pem) для доступа к SFTP-серверу. Где должен храниться этот файл и как к нему обращаться? В первоначальном Airflow я просто поместил бы файл в папку / keys / в том же каталоге, что и /dags/.

2) Мне нужно переместить файлы с SFTP-сервера в облачное хранилище. С помощью Airflow on prem я загружаю их с SFTP-сервера в определенное место на рабочем экземпляре Airflow и затем загружаю оттуда. Могу ли я сделать что-то подобное с Composer или есть обходной путь, так как я не могу получить доступ к файловой системе?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Для 2., на основе документации Cloud Composer:

Когда вы изменяете DAG или плагины в хранилище Cloud Storage, Cloud Composer синхронизирует данные по всем узлам кластера.Cloud Composer синхронизирует dags / и plugins / folder однонаправленно путем локального копирования и синхронизирует данные / и logs / folder в двух направлениях с помощью Cloud Storage FUSE.

вы можете записывать файлы в локальный каталог /home/airflow/gcs/data в операторах и облачном композиторе будет синхронизировать каталог с gs://bucket/data в двух направлениях.

подробнее вы можете посмотреть в этом документе, чтобы узнать, как Google Cloud Composer взаимодействует с облачным хранилищем Google: https://cloud.google.com/composer/docs/concepts/cloud-storage

0 голосов
/ 15 мая 2018

1) Предполагая, что к файлу .pem нужно обращаться только во время выполнения задачи (в отличие от времени разбора определения DAG), вы можете поместить его в каталог / data в хранилище Cloud Storage среды .Он монтируется с предохранителем на пути / home / airflow / gcs / data.Вы можете загружать файлы с помощью Cloud Composer компонент gcloud .

2) Здесь есть 2 варианта.

  1. Запись с вашего SFTP-сервера на /home / airflow / gcs / data, который установлен в вашем хранилище Cloud Storage.Вы можете оставить его там или использовать GoogleCloudStorageToGoogleCloudStorageOperator , чтобы переместить его туда, где вы действительно хотите.

  2. Если вы хотите скопировать на локальный диск и с локального диска в облачное хранилище, вам нужно выполнить оба шага в рамках одной и той же задачи (поскольку в средах Cloud Composer используется CeleryExecutor, задачив пределах одной и той же DAG не гарантированно работать на той же машине).Вы должны иметь возможность писать в / home / airflow и /tmp.

...