通过代码生成 Airflow 的 DAG 文件。
通过代码生成 python 脚本文件放到指定文件夹。脚本文件内部的代码整体上是差不多的,部分细节可能会差别比较大。
dag_id = "test_one",
task_id = "bash_task_one",
echo_content = "hello"
func_name = "func_one"
func_content = """
print("world")
"""
content = f'''
from datetime import datetime
from airflow import DAG
from airflow.decorators import task
from airflow.operators.bash import BashOperator
with DAG(dag_id="{dag_id}",
start_date=datetime(2022, 1, 1),
schedule="0 0 * * *") as dag:
hello = BashOperator(task_id="{task_id}", bash_command="echo {echo_content}")
@task()
def {func_name}():
{func_content}
hello >> {func_name}()
'''
with open('/root/dags/test.py', 'w', encoding='utf-8') as fb:
fb.write(content)
把代码放到多行字符串里,然后写到文件中。
不知道各位大佬们有没有什么好的建议
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.