Нет модуля с именем «airflow.providers.ssh» в AWS Airflow (Amazon MWAA)

Мне нужно использовать sshoperator в DAG на AWS Airflow (Amazon MWAA), поэтому я импортировал следующую библиотеку в свой файл DAG.

from airflow.contrib.operators.ssh_operator import SSHOperator

Кажется, sshoperator был определен в библиотеке paramiko, поэтому я также добавил следующие модули в файл requiremets.txt.

  • парамико›=2,6,0
  • pysftp›=0.2.9
  • sshtunnel›=0,1,4

Но тем не менее, я получаю следующую ошибку при просмотре DAG

Broken DAG: 
  File "/usr/local/lib/python3.7/site-packages/airflow/contrib/operators/ssh_operator.py", 
  line from airflow.providers.ssh.operators.ssh import SSHOperator
  ModuleNotFoundError: No module named 'airflow.providers.ssh'

Насколько я понимаю, sshoperator является важным и встроенным оператором в Airflow, поэтому технически я не должен добавлять какие-либо дополнительные библиотеки или плагины в Airflow.


person Sam    schedule 16.06.2021    source источник


Ответы (1)


Искал нечто подобное и считаю, что нашел ответ на оба наших вопроса... Согласно Docker Questions...

Пакет Providers больше не входит в состав Airflow, но вы можете установить их отдельно с помощью pip, используя специальный пакет backport.

Похоже, что есть резервная копия для ssh здесь. Так что, наверное, просто нужно добавить это в файл requirements.txt?

person ET Come Back    schedule 16.06.2021
comment
Я исправил проблему, добавив apache-airflow-providers-ssh==1.3.0 в файл requirements.txt. - person Sam; 16.06.2021
comment
единственный недостаток заключается в том, что после добавления дополнительных модулей через файл requirements.txt он не позволяет вам запускать определенные команды cli для воздушного потока. Хуже того, вы не можете запустить засыпку - person Emerson; 20.07.2021