Я пытаюсь проверить свою группу обеспечения доступности баз данных, используя интерфейс командной строки, во время разработки новых функций, но я не могу этого сделать. Мои группы DAG, DAG_ID = sample_dag, file: sample_dag.py находятся в папке ~ / airflow / dags (Ubuntu) и могут быть выполнены нормально через веб-интерфейс (нажав на значок Play). Внутри DAG есть несколько вызовов BASH OPERATOR, и каждый сценарий выполняется корректно, выводя протоколированный результат.
Однако я не могу получить доступ к той же функциональности DAG
через командную строку, запускается из той же папки, например:
визуализация воздушного потока sample_dag all 2019-01-14T06: 04: 05
Вывод вышеуказанной команды:
Test Dag Begin
Test Dag End
**** airflow.exceptions.AirflowException: dag_id не может быть найден: sample_dag. Либо даг не существует, либо не удалось разобрать. ****
Печать отладки в DAG выполняется, но сценарий Bash не вызывается (журнал сценариев не создается).
import datetime as dt
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
default_args = {
'owner': 'airflow',
'start_date': dt.datetime(2019, 1, 12),
'retries': 1,
'retry_delay': dt.timedelta(minutes=5),
'email_on_failure': False,
'email_on_retry': False,
}
dag = DAG('sample_dag', default_args=default_args, schedule_interval=None)
t0 = BashOperator(
task_id='all', bash_command='echo "Starting Tests..."', dag=dag)
t1 = BashOperator(
task_id='test_1',
bash_command='python3 /home/ubuntu/scripts/test_1.py &>> /home/ubuntu/scripts/test.log',
dag=dag)
t2 = BashOperator(
task_id='test_2',
bash_command='python3 /home/ubuntu/scripts/test_2.py &>> /home/ubuntu/scripts/test.log',
dag=dag)
t3 = BashOperator(
task_id='final', bash_command='echo "Client Profile Tests Complete"', dag=dag)
print("Test Dag Begin")
t0 >> t1
t0 >> t2
t1 >> t3
t2 >> t3
print("Test Dag End")