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