如何在Dagit日志中添加可点击的超链接?
在Dagit日志中添加可点击超链接的实现方法
要在Dagit日志里显示可点击的超链接,直接写入路径字符串或HTML标签无法生效,需通过Dagster提供的MetadataValue.url结合日志的metadata参数实现,以下是具体步骤和修改后的代码示例:
核心实现逻辑
Dagit日志系统支持通过metadata参数接收结构化数据,用MetadataValue.url()包装文件路径或URL,即可在日志中渲染出可点击链接。
修改后的代码示例
1. 作业定义代码
只需新增MetadataValue的导入,原有结构无需改动:
import dagstermill as dm from dagster import In, Out, job, MetadataValue # 新增导入MetadataValue from dagster.utils import script_relative_path load_data = dm.define_dagstermill_op( 'load_data', notebook_path=script_relative_path('load_data.ipynb'), outs={'numbers': Out(list, description='list of numbers')} ) read_data = dm.define_dagstermill_op( 'read_data', notebook_path=script_relative_path('read_data.ipynb'), ins={'numbers': In(list, description='list of numbers obtained from load_data.ipynb')} ) @job( resource_defs={ 'output_notebook_io_manager': dm.local_output_notebook_io_manager, } ) def main_job(): numbers = load_data() read_data(numbers)
2. Load Data Notebook 修改
import dagstermill as dm from dagster import MetadataValue # 导入MetadataValue result = [1, 2, 3, 4] # 替换为实际的出错文件路径 error_file_path = "/path/to/your/error_file.log" # 日志中添加带超链接的信息 dm.get_context().log.info( f'Step 1 - load_data - results: {result}', metadata={ "出错文件": MetadataValue.url(f"file://{error_file_path}") } ) dm.yield_result(result, 'numbers')
3. Read Data Notebook 修改
import dagstermill as dm from dagster import MetadataValue # 导入MetadataValue # 替换为实际的数据文件路径 data_file_path = "/path/to/your/data_file.csv" dm.get_context().log.info( f'Step 2 - read_data - loaded numbers: {numbers}', metadata={ "数据文件": MetadataValue.url(f"file://{data_file_path}") } )
注意事项
- 本地文件路径需添加
file://协议前缀,Dagit才能识别为可点击链接; - 若为远程URL(如HTTP、云存储链接),直接传入完整URL即可;
metadata支持添加多组键值对,每组对应一个可点击链接。
内容的提问来源于stack exchange,提问作者Phil T
相关产品推荐
相关产品推荐

