Пример Airflow kubernetesPorOperator не запускается - PullRequest
1 голос
/ 25 мая 2020

Попытка запустить образец kubernetesPodOperator возвращает:

[2020-05-25 20: 00: 40,475] {{ init .py: 51}} ИНФОРМАЦИЯ - Использование исполнителя LocalExecutor
[2020-05-25 20: 00: 40,475] {{dagbag.py:396}} ИНФОРМАЦИЯ - заполнение DagBag из /usr/local/airflow/dags/kubernetes_example.py
│ │ Traceback (последний вызов последний):
│ │ Файл "/ usr / local / bin / airflow", строка 37, в
│ │ args.fun c (args)
│ Файл "/ usr / local / lib / python3 .7 / site-packages / airflow / utils / cli.py ", строка 75, в оболочке
│ │ return f (* args, ** kwargs)
│ │ Файл "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", строка 523, выполняется
│ │ dag = get_dag (args)
│ │ Файл "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", строка 149, в get_dag
│ │ 'parse.'. format (args.dag_id))
│ airflow.exceptions.AirflowException: dag_id не может быть найден: kubernetes_example. Либо dag не существует, либо его не удалось проанализировать.

Это код, который я использую:

from airflow import DAG
from datetime import datetime, timedelta
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
from airflow.operators.dummy_operator import DummyOperator
from airflow.utils.dates import days_ago



default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': days_ago(1),
    'email': ['airflow@example.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=60)
}

dag = DAG(
    'kubernetes_example', default_args=default_args, schedule_interval=timedelta(minutes=60))


start = DummyOperator(task_id='run_this_first', dag=dag)

passing = KubernetesPodOperator(namespace='airflow',
                          image="python:3.6.10",
                          cmds=["Python","-c"],
                          arguments=["print('hello world')"],
                          labels={"foo": "bar"},
                          name="passing-test",
                          task_id="passing-task",
                          env_vars={'EXAMPLE_VAR': '/example/value'},
                          in_cluster=True,
                          get_logs=True,
                          dag=dag
                          )

failing = KubernetesPodOperator(namespace='airflow',
                          image="ubuntu:18.04",
                          cmds=["Python","-c"],
                          arguments=["print('hello world')"],
                          labels={"foo": "bar"},
                          name="fail",
                          task_id="failing-task",
                          get_logs=True,
                          dag=dag
                          )

passing.set_upstream(start)
failing.set_upstream(start)

Я только что взял его из примера исполнителя. Кто-нибудь сталкивался с этой проблемой?

Спасибо!

1 Ответ

0 голосов
/ 25 мая 2020

У вас должно быть имя (dag_id для вашего дага).

dag = DAG(
    dag_id='kubernetes_example', 
    default_args=default_args, 
    schedule_interval=timedelta(minutes=60)
)

Также ваш task_id должен иметь _ не - и быть: task_id="failing_task"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...