通过创建一个DAG来调用我在另一个repo(按计划)中的python代码,我如何开始使用Airflow?

通过创建一个DAG来调用我在另一个repo(按计划)中的python代码,我如何开始使用Airflow?,airflow,airflow-scheduler,airflow-operator,airflow-worker,Airflow,Airflow Scheduler,Airflow Operator,Airflow Worker,我在本地机器上有一个git repo,上面有一些python代码 c:\repos\myrepo\src\test.py获取以下信息: 在这一点上,我并没有进一步理解我需要做什么,让我按照时间表(test.py)在repo中执行代码 一步一步地,我需要做什么来创建一个新的作业来执行我的代码 我没有看到这些示例DAG调用外部代码(另一个回购协议中的代码)。要执行的所有Python代码都包含在示例中 这里的说明中有很大的漏洞,可以帮助人们快速起床和行走 在气流主页上: http://:/home

我在本地机器上有一个git repo,上面有一些python代码 c:\repos\myrepo\src\test.py获取以下信息:

在这一点上,我并没有进一步理解我需要做什么,让我按照时间表(test.py)在repo中执行代码

一步一步地,我需要做什么来创建一个新的作业来执行我的代码

我没有看到这些示例DAG调用外部代码(另一个回购协议中的代码)。要执行的所有Python代码都包含在示例中

这里的说明中有很大的漏洞,可以帮助人们快速起床和行走


在气流主页上: http://:/home

没有[+]添加DAG(没有加号按钮)来添加DAG。是这样吗

另外,我需要以下方面的帮助: 这将有助于入门,但最终,我需要以编程方式将作业部署到服务器

任何帮助我穿越峡谷的人都会帮上忙。我不知道我是否应该将DAG代码添加到现有的回购协议中(用示例DAG代码包装test.py代码,在这里丢失)


或者我是否应该创建“airflow/”回购,将代码放在那里,将代码打包为库,导入等,然后从那里调用。

Step1.从airflow.cfg中找到$airflow\u HOME。这应该给出dags文件夹所在的路径。通常它位于/airflow/dags下/

步骤2.在/dags目录下添加一个名为test_dag.py的文件,其中包含以下代码

import time
from repos.myrepo.src.test import test_function # this how I would recommend you run your python code in the dag but its upto you if you want to execute a file 
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from airflow.operators.python import PythonOperator
from airflow.utils.dates import days_ago

default_args = {
    'owner': 'airflow',
}

 dag = DAG('dag_test',
    default_args=default_args,
    description='run_python',
    schedule_interval= None,
)
start= DummyOperator(task_id='start', dag=dag,)

run_this = PythonOperator(
    task_id='run_pythoncode',
    python_callable=test_function,
    dag=dag,
)
end= DummyOperator(task_id='end', dag=dag,)

start >> run_this >> end
步骤3.保存dag后,使用浏览器跳到Web服务器上,进入dag选项卡下,新创建的dag应位于暂停选项卡下,dag左侧将有一个启用/禁用按钮。单击以启用dag。启用dag后,单击触发dag或播放按钮。 [请注意,dag文件(test_dag.py)中出现的任何错误都会出现在您的dag页面的顶部

步骤4.**上述DAG的替代方法***。假设您希望从git存储库运行python文件,而不是将其导入DAG代码

import time
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from airflow.operators.bash import BashOperator
from airflow.utils.dates import days_ago

default_args = {
    'owner': 'airflow',
}

 dag = DAG('dag_test',
    default_args=default_args,
    description='run_python',
    schedule_interval= None,
)
start= DummyOperator(task_id='start', dag=dag,)

run_this_as_a_file = BashOperator(
    task_id='run_python_code_from_repo',
    bash_command='python c:\\repos\\myrepo\\src\\test.py',
    dag=dag,
)
end= DummyOperator(task_id='end', dag=dag,)

start >> run_this_as_a_file >> end