可以通过修改Airflow的源代码实现隐藏任务实例细节中的任务属性里的env属性。具体实现方法为:
1)首先找到“airflow/www/views/taskinstance.py”文件,在其中的“TaskInstanceDetails”类中找到“_render_task_attributes”函数。
2)在该函数中,找到“if len(self.task_env) > 0:”这一行代码,并将其替换为“if False:”。
以下是修改后的示例代码:
class TaskInstanceDetails(AdminMixin, AirflowBaseView): @expose('/') @has_dag_access(can_dag_read=True) @action_logging def show(self, dag_id, task_id, execution_date, *args, **kwargs): TI = models.TaskInstance
self.form = self._get_form()
TI.refresh_state(dag_id=dag_id, task_id=task_id, execution_date=execution_date)
self.task = TI.get_task_instance(dag_id, task_id, execution_date)
self.task.dag = self.task.get_dag()
self.task_logs = sorted(
self.task.logs,
key=lambda task_log: task_log.dttm,
reverse=True
)
self.render_template(
template_folder=TEMPLATES_FOLDER,
template_name='task_instance_details.html',
task_instance=self.task,
form=self.form,
task_logs=self.task_logs,
hide_task_details=True, # hide task details by default, in favor of attributes view
task_instance_attributes=self._render_task_attributes(),
dag=self.task.dag,
)
def _get_task_instance(self, dag_id, task_id, execution_date):
TI = models.TaskInstance
task_instance = TI(
task_id=task_id,
dag_id=dag_id,
execution_date=timezone.parse(execution_date)
)
return task_instance
def _get_form(self):
if request.method == 'POST':
return AttributeForm(request.form)
else:
return AttributeForm(obj=self.task)
def _render_task_attributes(self):
task_params = self.task.params
task_env = self.task.env
task