我创建了一个容器,该容器将return.json文件复制到/airflow/xcom/return.json
在我的计算机上运行此容器将成功捕获return.json
的内容。
但是,当我在KubernetesPodOperator中运行此容器时,会出现错误
file does not exist: airflow/xcom/return.json
然后我将DAG更改为给出命令,覆盖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
)
这导致气流成功输出return.json的内容。
但是,如果这是正确的,则意味着任何XCOM结果都必须在DAG中可用,这意味着它没有从Dockerfile中获取信息(因为它似乎是从xcom内部获取/airflow/xcom/return.json
-sidecar容器?),将使该功能无效。
有人可以帮忙/解释一下吗?