Я уже некоторое время борюсь с проблемой в моей DAG Apache Airflow. Я пытаюсь использовать модуль snowflake-connector-python в своей DAG, и он включен в мой файл requirements.txt. Однако, когда я пытаюсь запустить DAG, я продолжаю получать следующее сообщение об ошибке:
`Broken DAG: [/usr/local/airflow/dags/my_dag.py] Traceback (most recent call last):`
`File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed`
`File "/usr/local/airflow/dags/my_dag.py", line 12, in <module>`
`from snowflake.connector.pandas_tools import pd_writer`
`ModuleNotFoundError: No module named 'snowflake'`
Я пробовал все, что мог придумать, в том числе:
Проверка того, что модуль включен в файл requirements.txt и что файл правильно отформатирован Перезапуск планировщика Airflow и веб-сервера Очистка кеша Airflow DAG Проверка того, что используется правильная среда Python Установка модуля с помощью pip в правильной среде Несмотря на все эти усилия, сообщение об ошибке сохраняется. Есть ли у кого-нибудь другие предложения по решению этой проблемы? Буду очень признателен за любую помощь или совет. Спасибо.
Я пробовал все и не могу найти решение`
это в мваа? Вы загрузили файл requirements.txt в s3? Как выглядит ваш файл требований? Вы проверили журналы cloudwatch в разделе airflow-xxxx-Worker и искали требования_установить?
MWAA — хитрый зверь, надеюсь, это поможет:
Сначала проверьте группу журналов WebServer в CloudWatch, есть отдельный поток журналов requirements_install
, который точно скажет вам, что установлено во время запуска службы. Там вы найдете ошибки.
Это плохо документировано, но если вы настроите частный веб-сервер MWAA, у него не будет доступа к Интернету даже для загрузки пакетов. Решение состоит в том, чтобы установить пакеты из requirements.txt
в plugins.zip
и загрузить их в корзину, которую использует MWAA.
Также обязательно следуйте рекомендациям по MWAA:
https://docs.aws.amazon.com/mwaa/latest/userguide/working-dags-dependencies.html
Здравствуйте, Яцек Штандера, я не смог найти первые инструкции, которые вы сказали в своем ответе. Нет потока журнала моего облачного наблюдения, может мне помочь?
Если вы не настроили ведение журнала, я бы включил их немедленно. Вот как это сделать: docs.aws.amazon.com/mwaa/latest/userguide/…
Внесение изменений в файл requirements.txt может оказаться сложной задачей, поэтому я всегда рекомендую разработчикам сначала протестировать его с помощью mwaa-local-runner. Используя этот проект, вы можете использовать тестовые требования ./mwaa-local-env для проверки любых изменений локально, прежде чем вы отправите их в свою среду MWAA.
Если у вас возникли проблемы, их устранение локально намного проще и обычно (по моему опыту) приводит вас к выяснению того, что вам нужно изменить.
Обычно, когда мне нужно внести изменения в файл requirements.txt, я делаю следующее:
--constraint "/usr/local/airflow/dags/updated-constraints.txt"
(в приведенном выше примере мой «модифицированный» файл ограничений, который я скопировал в папку S3 Dags, называется updated-constraints.txt
Вы можете увидеть, как я сделал это с некоторым кодом - https://github.com/094459/cdk-mwaa-redshift
Есть ли шанс, что вы запускаете Airflow за пределами вашей виртуальной среды, где установлен пакет?