Я создал контейнер, который копирует файл 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?), что фактически сделает эту функцию бесполезной.
Может кто-нибудь помочь / объяснить?