gpt4 book ai didi

python - 从使用 Airflow KubernetesPodOperator 启动的 Pod 获取上下文

转载 作者:行者123 更新时间:2023-12-04 08:11:55 25 4
gpt4 key购买 nike

我们有一些使用 KubernetesPodOperator 启动 pod 的 dag,我正在尝试获取 pod 内的一些信息,例如 dag_id、task_id、try_number、环境等。

我知道我可以从 Airflow 任务的上下文中获取此信息(例如,Python Operator 上的 kwargs),但我一直在想,有没有一种方法可以从已启动的 pod 中获取该上下文?

谢谢!

最佳答案

我找到了一个很好的解决办法

我为 KubernetesPodOperator 类创建了一个自定义包装器,并使用 Airflow 任务的上下文更新了 env_vars

import airflow.configuration as config
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator as AirflowKubernetesPodOperator

class KubernetesPodOperator(AirflowKubernetesPodOperator):

def execute(self, context):

environment = config.conf.get('webserver', 'web_server_name')

ti = context['ti']
dag_id = ti.dag_id
task_id = ti.task_id
run_id = context['run_id']
try_number = str(ti._try_number)

labels = {
'ENVIRONMENT' : environment,
'DAG_ID' : dag_id,
'TASK_ID' : task_id,
'RUN_ID' : run_id,
'TRY_NUMBER' : try_number,
}

self.env_vars.update(labels)
super().execute(context)

关于python - 从使用 Airflow KubernetesPodOperator 启动的 Pod 获取上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65911405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com