Файл XCOM return.json извлекается из xcom-sidecar, а не из основного контейнера? - PullRequest
0 голосов
/ 24 января 2019

Я создал контейнер, который копирует файл return.json в /airflow/xcom/return.json

При запуске этого контейнера на моем компьютере будет успешно загружено содержимое return.json.

Однако, когда язапустить этот контейнер в KubernetesPodOperator, он выдает ошибку

file does not exist: airflow/xcom/return.json

Затем я изменил группу обеспечения доступности баз данных, чтобы дать команду, переопределив файл dockerfile

t1 = KubernetesPodOperator(
    namespace='airflow',
    image="myimage/test:1.0",
    name="test",
    task_id="test",
    image_pull_policy="Always",
    cmds=["bash", "-c"],
    arguments=['echo \'{}\' > /airflow/xcom/return.json'.format(myjson)],
    xcom_push=True,
    dag=dag
    )

Это приводит кairflow успешно выводит содержимое return.json.

Однако, если это правильно, это означает, что любой результат XCOM должен быть доступен в DAG, то есть он не получает информацию из Dockerfile (так какпохоже, что /airflow/xcom/return.json извлекается из контейнера xcom-sidecar?), что фактически сделает эту функцию бесполезной.

Может кто-нибудь помочь / объяснить?

...