#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. Спасибо!