You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure ML webservice入口脚本无法加载工作区,/var/azureml-app路径在哪?

Azure ML本地部署推理服务找不到config.json问题解决方案

/var/azureml-app路径说明

该路径是Azure ML本地部署推理服务时,自动创建的Docker容器内部的默认工作目录,与宿主机文件系统完全隔离。你在宿主机中操作该路径、或传入宿主机的绝对路径都无法被容器内的推理脚本识别,因此会触发找不到配置文件的报错。

修复方案

方案1:将config.json随源码目录打包进容器

你在部署时指定了source_directory为./source_dir,该目录下的所有内容会被自动打包到容器的/var/azureml-app路径下,你只需要将配置文件写入该目录即可:

  1. 修改部署脚本中的ws.write_config代码,直接将配置文件写入源码目录:
# 替换原有的ws.write_config(file_name='config.json')
ws.write_config(path="./source_dir", file_name="config.json")
  1. 推理脚本中无需修改Workspace.from_config()的调用逻辑,容器运行时会自动识别同目录下的config.json文件。

方案2:直接传入工作区参数初始化,无需依赖配置文件

推理服务默认拥有所属工作区的访问权限,你可以直接传入工作区的固定参数初始化Workspace,完全避免读取配置文件的步骤。建议将Workspace初始化逻辑放到init()函数中,避免每次处理请求都重复初始化,提升性能:

from azureml.core import Dataset, Datastore
from azureml.data.datapath import DataPath
from azureml.core import Workspace

ws = None
def init():
    global ws
    # 替换为你自己的工作区参数即可
    ws = Workspace(
        subscription_id="你的订阅ID",
        resource_group="你的资源组名称",
        workspace_name="你的工作区名称"
    )

def run(data):
  try:
    datastore = Datastore.get(ws, 'sql_db_name')
    query = DataPath(datastore, 'SELECT * FROM my_table')
    tabular = Dataset.Tabular.from_sql_query(query, query_timeout=10)
    df = tabular.to_pandas_dataframe()

    return len(df)

  except Exception as e:
    output0 = "{}:".format(type(e).__name__)
    output1 = "{} ".format(e)
    output2 = f"{type(e).__name__} occured at line {e.__traceback__.tb_lineno} of {__file__}"
    return output0 + output1 + output2

内容的提问来源于stack exchange,提问作者Redfox-Codder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:36:07