Airflow 2:获取任务内的执行日期

AFZ*_*Z84 5 python airflow

我曾经使用 python 运算符创建任务并在气流 1 中检索执行,如下所示

def task(**kwargs):
    date = kwargs['execution_date']
Run Code Online (Sandbox Code Playgroud)

使用新的任务流 api 执行此操作的正确方法是什么?(可能错过了)

谢谢

Nic*_*coE 9

您可以使用以下方法访问执行上下文get_current_context

from airflow.decorators import task
from airflow.operators.python import get_current_context

@task
def my_task():
    context = get_current_context()
    ti = context["ti"]
    date = context["execution_date"]
Run Code Online (Sandbox Code Playgroud)

文档在这里。试试看!

更新:

上面的代码工作得很好,但是,所谓的context对象,可以在任务装饰函数中直接访问。这意味着不再需要导入get_current_context。只需在任务签名中声明参数即可访问上下文对象:

@task
def my_task(ds=None, ti=None):
    print(f"execution_date:{ds}")
    print(f"task_instance:{ti}")
Run Code Online (Sandbox Code Playgroud)