Можно ли передавать макросы Airflow в параметры оператора GKEPod? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь выяснить, есть ли полезный способ в потоке воздуха, чтобы передать дату выполнения в виде метки в параметры GKEPodOperator.

Вот мой код:

with DAG(
    DAG_NAME,
    default_args=default_args,
) as dag:


    end_date = '{{ ds }}'
    start_date = '{{ (ds - macros.timedelta(days=1)).strftime("%Y-%m-%d") }}'

    playlog_to_gcs = GKEPodOperator(
        task_id=f"test",
        project_id=PROJECT,
        location=LOCATION,
        cluster_name=CLUSTER_NAME,
        namespace="default",
        image=f"gcr.io/{PROJECT}/test",
        name=f"{DAG_NAME}",
        get_logs=True,
        # I would like to be able to use macros with strings to pass to parameters in operators such as this
        env_vars={
            "TARGET_PATH": f"test/test-{end_date}.csv",
        },
    )

Тем не менее, TARGET_PATH заканчивается в результате теста / test - {{ds}}. Csv

1 Ответ

0 голосов
/ 05 июля 2019

Шаблоны оцениваются Jinja2 во всех шаблонных полях, которые описаны в классе операторов.В вашем случае это происходит здесь: https://github.com/apache/airflow/blob/2bdb053db618de7064b527e6e3ebe29f220d857b/airflow/contrib/operators/gcp_container_operator.py#L228

и здесь: https://github.com/apache/airflow/blob/2bdb053db618de7064b527e6e3ebe29f220d857b/airflow/contrib/operators/kubernetes_pod_operator.py#L102

env_vars - это действительно шаблонные поля, поэтому он должен работать.Я думаю, что вы должны попробовать вместо этого: "test / test - {{end_date}}. Csv"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...