能否从AzureML模型注册表加载模型至Azure函数应用并推理?
Azure ML模型注册表与Azure函数集成推理方案
不能直接从Azure ML模型注册表加载模型到Azure函数中执行推理,必须先将模型下载到函数应用的本地可访问路径(临时目录或持久化存储)后,才能加载模型运行推理。
核心实现步骤
- 通过Azure ML SDK或REST API连接到Azure ML工作区,获取目标模型的元数据与下载权限
- 将模型文件下载到函数应用的临时目录(如Linux环境的
/tmp、Windows环境的%TEMP%),或持久化存储(如Azure Blob存储) - 从本地路径加载模型,执行推理逻辑
Python示例代码
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential import os import tempfile import joblib def main(req): # 初始化Azure ML客户端 ml_client = MLClient( DefaultAzureCredential(), subscription_id="你的订阅ID", resource_group_name="你的资源组名称", workspace_name="你的AzureML工作区名称" ) # 获取已注册的模型 target_model = ml_client.models.get(name="模型名称", version="模型版本号") # 临时目录下载模型(执行后自动清理) with tempfile.TemporaryDirectory() as temp_dir: ml_client.models.download(target_model.name, target_model.version, download_path=temp_dir) # 加载模型(以sklearn模型为例,根据模型类型调整) model_file_path = os.path.join(temp_dir, "model.pkl") trained_model = joblib.load(model_file_path) # 处理输入并执行推理 input_data = req.get_json()["input_features"] prediction_result = trained_model.predict([input_data]) return {"prediction": prediction_result.tolist()}
关键注意事项
- 临时目录的文件会在函数执行结束后被系统清理,若需复用模型,可将模型预下载到Azure Blob存储,函数启动时从Blob加载,减少重复下载开销
- 确保Azure函数的托管标识或服务主体拥有Azure ML工作区的
Reader权限,以及模型注册表的访问权限 - 大模型场景建议在函数的启动阶段完成模型下载与加载,避免每次请求重复执行下载操作,提升推理响应速度
内容的提问来源于stack exchange,提问作者user12704077
相关产品推荐
相关产品推荐

