AWS MWAA (управляемый поток воздуха Apache) куда поместить код python, используемый в dag?

#airflow #managed #mwaa

Вопрос:

Куда вы помещаете свой фактический код? DAG должны быть тонкими, это предполагает, что при запуске задачи она будет выполнять импорт и запускать некоторый код python.

Когда мы были в автономном потоке воздуха, я мог добавить в PYTHON_PATH свой корень проекта и выполнять импорт оттуда, но в управляемом потоке воздуха AWS я не нахожу никаких подсказок.

Ответ №1:

Поместите свои DAG в S3. После инициализации среды MWAA вы определите корзину S3, содержащую ваш код.

Например, создайте корзину <my-dag-bucket> и поместите свои файлы DAG во вложенную папку dags

 s3://<my-dag-bucket>/dags/ 
 

Также не забудьте определить все зависимости python в файле требований и поместить его в ту же корзину:

 s3://<my-dag-bucket>/requirements.txt
 

Наконец, если вам нужно предоставить собственные модули, заархивируйте их и тоже поместите zip-файл в корзину:

 s3://<my-dag-bucket>/plugins.zip
 

Видишь https://docs.aws.amazon.com/mwaa/latest/userguide/get-started.html

Комментарии:

1. И что вы делаете, когда у вас есть несколько проектов, которые вы хотите запустить в airflow? Я не могу застегнуть все это в plugins.zip

2. У вас есть несколько модулей python? Почему вы не можете поместить их в plugins.zip ?

3. У меня есть несколько команд, которые работают над разными проектами. У каждой команды есть свои собственные dag и зависимости.

4. Вы пытались поместить весь свой код в папку dag S3? Не уверен, что это сработает, но я полагаю, что MWAA синхронизирует любые файлы, размещенные там

5. Был один файл .airflowignore, в котором я могу игнорировать все, что не является DAG. Спасибо!