Файл XCOM return.json извлекается из xcom-sidecar, а не из основного контейнера?
Я создал контейнер, который копирует файл return.json в /airflow/xcom/return.json
Запустив этот контейнер на моей машине, вы сможете return.json
,
Однако, когда я запускаю этот контейнер в KubernetesPodOperator, он выдает ошибку
file does not exist: airflow/xcom/return.json
Затем я изменил DAG, чтобы дать команду, переопределив файл Docker
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
)
Это приводит к тому, что поток воздуха успешно выводит содержимое файла return.json.
Однако, если это правильно, это будет означать, что любой результат XCOM должен быть доступен в группе обеспечения доступности баз данных, а это означает, что он не получает информацию из Dockerfile (поскольку, похоже, он получает /airflow/xcom/return.json
из контейнера xcom-sidecar?), который фактически сделает эту функцию бесполезной.
Может ли кто-нибудь, пожалуйста, помочь / объяснить?