繁体   English   中英

Airflow kubernetesPorOperator 示例运行失败

[英]Airflow kubernetesPorOperator example fails to run

尝试运行示例 kubernetesPodOperator 检索:

[2020-05-25 20:00:40,475] {{ init .py:51}} 信息 - 使用执行器 LocalExecutor
[2020-05-25 20:00:40,475] {{dagbag.py:396}} 信息 - 从 /usr/local/airflow/dags/kubernetes_example.py 填充 DagBag
│ │ Traceback(最近一次通话最后):
│ │ 文件“/usr/local/bin/airflow”,第 37 行,在
│ │ args.func(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)

我只是从样本执行者那里拿走了它。 有人偶然发现了这个问题吗?

谢谢!

你需要有一个名字(你的 dag 的dag_id )。

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

您的 task_id 也应该有_ not -并且是: task_id="failing_task"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM