Webservice 类
定义将模型部署为 Azure 机器学习中的 Web 服务终结点的基本功能。
Webservice 构造函数用于检索与提供的工作区关联的 Webservice 对象的云表示形式。 返回与检索的 Webservice 对象的特定类型对应的子类的实例。 Webservice 类允许从 Model 某个或 Image 对象部署机器学习模型。
有关使用 Webservice 的详细信息,请参阅 使用 Azure 机器学习部署模型。
初始化 Webservice 实例。
Webservice 构造函数检索与提供的工作区关联的 Webservice 对象的云表示形式。 它将返回与检索的 Webservice 对象的特定类型对应的子类的实例。
构造函数
Webservice(workspace, name)
参数
名称 | 说明 |
---|---|
workspace
必需
|
包含要检索的 Webservice 对象的工作区对象。 |
name
必需
|
要检索的 Webservice 对象的名称。 |
workspace
必需
|
包含要检索的 Webservice 对象的工作区对象。 |
name
必需
|
要检索的 Webservice 对象的名称。 |
注解
下面的示例演示了建议的部署模式,其中首先使用 deploy_configuration
Webservice 子类的方法(在本例AksWebservice中)创建配置对象,然后将配置与类的方法deploy
一起使用Model。
# Set the web service configuration (using default here)
aks_config = AksWebservice.deploy_configuration()
# # Enable token auth and disable (key) auth on the webservice
# aks_config = AksWebservice.deploy_configuration(token_auth_enabled=True, auth_enabled=False)
以下示例演示如何查找工作区中的现有 AciWebservice 项,如果存在,请将其删除,以便重复使用该名称。
from azureml.core.model import InferenceConfig
from azureml.core.webservice import AciWebservice
service_name = 'my-custom-env-service'
inference_config = InferenceConfig(entry_script='score.py', environment=environment)
aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)
service = Model.deploy(workspace=ws,
name=service_name,
models=[model],
inference_config=inference_config,
deployment_config=aci_config,
overwrite=True)
service.wait_for_deployment(show_output=True)
可通过多种方式将模型部署为 Web 服务,包括:
deploy
Model工作区中已注册的模型的方法。deploy_from_image
Webservice已从模型创建的映像的方法。deploy_from_model
Webservice已在工作区中注册的模型的方法。 此方法将创建映像。deploy
Webservice方法,该方法将注册模型并创建映像。
有关使用 Web 服务的信息,请参阅
“ 变量 ”部分列出了云 Webservice 对象的本地表示形式的属性。 这些变量应视为只读。 更改其值不会反映在相应的云对象中。
变量
名称 | 说明 |
---|---|
auth_enabled
|
Web 服务是否已启用身份验证。 |
compute_type
|
Web 服务部署到的计算类型。 |
created_time
|
创建 Web 服务时。 |
azureml.core.Webservice.description
|
Webservice 对象的说明。 |
azureml.core.Webservice.tags
|
Webservice 对象的标记字典。 |
azureml.core.Webservice.name
|
Web 服务的名称。 |
azureml.core.Webservice.properties
|
Webservice 的键值属性字典。 部署后无法更改这些属性,但可以添加新的键值对。 |
created_by
|
创建 Web 服务的用户。 |
error
|
如果 Web 服务无法部署,则会包含错误消息,说明其失败的原因。 |
azureml.core.Webservice.state
|
Web 服务的当前状态。 |
updated_time
|
上次更新 Web 服务的时间。 |
azureml.core.Webservice.workspace
|
包含此 Web 服务的 Azure 机器学习工作区。 |
token_auth_enabled
|
Web 服务是否已启用令牌身份验证。 |
方法
check_for_existing_webservice |
检查 Webservice 是否存在。 |
delete |
从其关联的工作区中删除此 Webservice。 此函数调用不是异步的。 调用在删除资源之前运行。 如果在从模型管理服务中删除模型时遇到问题,则会引发 A WebserviceException 。 |
deploy |
从零个或多个 Model 对象部署 Web 服务。 此函数将注册提供的任何模型文件,并在过程中创建映像,所有这些文件都与指定的 Workspace模型相关联。 如果你有一个模型目录来部署以前尚未注册的模型,请使用此函数。 生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。 |
deploy_from_image |
从 Image 对象部署 Web 服务。 如果已为模型创建了 Image 对象,请使用此函数。 生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。 |
deploy_from_model |
从零个或多个 Model 对象部署 Web 服务。 此函数类似于 deploy,但不注册模型。 如果你有已注册的模型对象,请使用此函数。 这将在过程中创建与指定工作区关联的映像。 生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。 |
deploy_local_from_model |
生成并部署用于测试的 A LocalWebservice 。 要求安装和配置 Docker。 |
deserialize |
将模型管理服务响应 JSON 对象转换为 Webservice 对象。 如果提供的工作区不是 Web 服务所注册的工作区,将失败。 |
get_keys |
检索此 Web 服务的身份验证密钥。 |
get_logs |
检索此 Web 服务的日志。 |
get_token |
检索此 Web 服务的身份验证令牌,范围限定为当前用户。 |
list |
列出与相应 Workspace服务关联的 Web 服务。 可以使用参数筛选返回的结果。 |
regen_key |
重新生成 Web 服务密钥之一,即“主”或“辅助”密钥。 如果未WebserviceException指定或不是“主要”或“辅助”,则会引发 A |
run |
使用提供的输入调用此 Web 服务。 由 . 的子类实现的 Webservice抽象方法 |
serialize |
将此 Webservice 对象转换为 JSON 序列化字典。 用于 deserialize 转换回 Webservice 对象。 |
update |
更新 Webservice 参数。 这是由子类实现的 Webservice抽象方法。 更新的可能参数因 Webservice 子类型而异。 例如,对于 Azure 容器实例 Web 服务,请参阅 update 特定参数。 |
update_deployment_state |
刷新内存中对象的当前状态。 根据相应云对象的当前状态对对象的属性进行就地更新。 主要用于手动轮询创建状态。 |
wait_for_deployment |
自动轮询正在运行的 Webservice 部署。 等待 Web 服务到达终端状态。 如果它达到非成功的终端状态或超过提供的超时,将引发 WebserviceException a。 |
check_for_existing_webservice
检查 Webservice 是否存在。
static check_for_existing_webservice(workspace, name, overwrite=False, request_func=None, check_func=None)
参数
名称 | 说明 |
---|---|
workspace
必需
|
|
name
必需
|
|
overwrite
|
默认值: False
|
request_func
|
<xref:function>
用于请求服务以检查服务名称是否存在的函数 默认值: None
|
check_func
|
<xref:function>
用于检查request_func响应内容的函数 默认值: None
|
例外
类型 | 说明 |
---|---|
delete
从其关联的工作区中删除此 Webservice。
此函数调用不是异步的。 调用在删除资源之前运行。 如果在从模型管理服务中删除模型时遇到问题,则会引发 A WebserviceException 。
delete()
例外
类型 | 说明 |
---|---|
deploy
从零个或多个 Model 对象部署 Web 服务。
此函数将注册提供的任何模型文件,并在过程中创建映像,所有这些文件都与指定的 Workspace模型相关联。 如果你有一个模型目录来部署以前尚未注册的模型,请使用此函数。
生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。
static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要与 Web 服务关联的 Workspace 对象。 |
name
必需
|
要为已部署的服务提供的名称。 工作区必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,长度介于 3 到 32 个字符之间。 |
model_paths
必需
|
用于为文件或文件夹建模的磁盘上路径的列表。 可以是空列表。 |
image_config
必需
|
用于确定所需映像属性的 ImageConfig 对象。 |
deployment_config
|
用于配置 Web 服务的 WebserviceDeploymentConfiguration。 如果未提供空配置对象,将基于所需的目标使用空配置对象。 默认值: None
|
deployment_target
|
要向其部署 Web 服务的 A ComputeTarget 。 由于 Azure 容器实例没有关联 ComputeTarget,请将此参数保留为 None 以部署到 Azure 容器实例。 默认值: None
|
overwrite
|
如果已存在名称的服务,则覆盖现有服务。 默认值: False
|
返回
类型 | 说明 |
---|---|
对应于已部署 Web 服务的 Webservice 对象。 |
例外
类型 | 说明 |
---|---|
deploy_from_image
从 Image 对象部署 Web 服务。
如果已为模型创建了 Image 对象,请使用此函数。
生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。
static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要与 Web 服务关联的 Workspace 对象。 |
name
必需
|
要为已部署的服务提供的名称。 工作区必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,长度介于 3 到 32 个字符之间。 |
image
必需
|
Image要部署的对象。 |
deployment_config
|
用于配置 Web 服务的 WebserviceDeploymentConfiguration。 如果未提供空配置对象,将基于所需的目标使用空配置对象。 默认值: None
|
deployment_target
|
要向其部署 Web 服务的 A ComputeTarget 。 由于 Azure 容器实例没有关联 ComputeTarget,请将此参数保留为 None 以部署到 Azure 容器实例。 默认值: None
|
overwrite
|
如果已存在名称的服务,则覆盖现有服务。 默认值: False
|
返回
类型 | 说明 |
---|---|
对应于已部署 Web 服务的 Webservice 对象。 |
例外
类型 | 说明 |
---|---|
deploy_from_model
从零个或多个 Model 对象部署 Web 服务。
此函数类似于 deploy,但不注册模型。 如果你有已注册的模型对象,请使用此函数。 这将在过程中创建与指定工作区关联的映像。
生成的 Web 服务是可用于推理请求的实时终结点。 有关详细信息,请参阅 使用部署为 Web 服务的模型。
static deploy_from_model(workspace, name, models, image_config, deployment_config=None, deployment_target=None, overwrite=False)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要与 Web 服务关联的 Workspace 对象。 |
name
必需
|
要为已部署的服务提供的名称。 工作区必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,长度介于 3 到 32 个字符之间。 |
models
必需
|
模型对象列表。 可以是空列表。 |
image_config
必需
|
用于确定所需映像属性的 ImageConfig 对象。 |
deployment_config
|
用于配置 Web 服务的 WebserviceDeploymentConfiguration。 如果未提供空配置对象,将基于所需的目标使用空配置对象。 默认值: None
|
deployment_target
|
要向其部署 Web 服务的 A ComputeTarget 。 由于 ACI 没有关联 ComputeTarget,请将此参数保留为 None 以部署到 ACI。 默认值: None
|
overwrite
|
如果已存在名称的服务,则覆盖现有服务。 默认值: False
|
返回
类型 | 说明 |
---|---|
对应于已部署 Web 服务的 Webservice 对象。 |
例外
类型 | 说明 |
---|---|
deploy_local_from_model
生成并部署用于测试的 A LocalWebservice 。
要求安装和配置 Docker。
static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要与 Web 服务关联的 Workspace 对象。 |
name
必需
|
要为已部署的服务提供的名称。 在本地计算机上必须是唯一的。 |
models
必需
|
模型对象列表。 可以是空列表。 |
image_config
必需
|
用于确定所需服务映像属性的 ImageConfig 对象。 |
deployment_config
|
用于配置 Web 服务的 LocalWebserviceDeploymentConfiguration。 如果未提供一个配置对象,将使用空配置对象。 默认值: None
|
wait
|
是否等待 LocalWebservice 的 Docker 容器报告为正常。 如果容器崩溃,将引发异常。 默认值为 False。 默认值: False
|
返回
类型 | 说明 |
---|---|
例外
类型 | 说明 |
---|---|
deserialize
将模型管理服务响应 JSON 对象转换为 Webservice 对象。
如果提供的工作区不是 Web 服务所注册的工作区,将失败。
deserialize(workspace, webservice_payload)
参数
名称 | 说明 |
---|---|
cls
必需
|
指示这是一个类方法。 |
workspace
必需
|
Webservice 所注册的工作区对象。 |
webservice_payload
必需
|
要转换为 Webservice 对象的 JSON 对象。 |
返回
类型 | 说明 |
---|---|
提供的 JSON 对象的 Webservice 表示形式。 |
get_keys
get_logs
检索此 Web 服务的日志。
get_logs(num_lines=5000, init=False)
参数
名称 | 说明 |
---|---|
num_lines
|
要检索的最大日志行数。 默认值: 5000
|
init
|
获取 init 容器的日志 默认值: False
|
返回
类型 | 说明 |
---|---|
此 Web 服务的日志。 |
例外
类型 | 说明 |
---|---|
get_token
检索此 Web 服务的身份验证令牌,范围限定为当前用户。
get_token()
返回
类型 | 说明 |
---|---|
此 Web 服务的身份验证令牌以及应在之后刷新时。 |
例外
类型 | 说明 |
---|---|
list
列出与相应 Workspace服务关联的 Web 服务。
可以使用参数筛选返回的结果。
static list(workspace, compute_type=None, image_name=None, image_id=None, model_name=None, model_id=None, tags=None, properties=None, image_digest=None)
参数
名称 | 说明 |
---|---|
workspace
必需
|
要在其中列出 Web 服务的 Workspace 对象。 |
compute_type
|
筛选仅列出特定的 Web 服务类型。 选项为“ACI”、“AKS”。 默认值: None
|
image_name
|
筛选列表以仅包含使用特定映像名称部署的 Web 服务。 默认值: None
|
image_id
|
筛选列表以仅包含使用特定映像 ID 部署的 Web 服务。 默认值: None
|
model_name
|
筛选列表以仅包含使用特定模型名称部署的 Web 服务。 默认值: None
|
model_id
|
筛选列表以仅包含使用特定模型 ID 部署的 Web 服务。 默认值: None
|
tags
|
按“key”或“[key, value]”根据提供的列表进行筛选。 例如: ['key', ['key2', 'key2 value']] 默认值: None
|
properties
|
按“key”或“[key, value]”根据提供的列表进行筛选。 例如: ['key', ['key2', 'key2 value']] 默认值: None
|
image_digest
|
筛选列表以仅包含使用特定映像摘要部署的 Web 服务。 默认值: None
|
返回
类型 | 说明 |
---|---|
提供的工作区中 Web 服务的筛选列表。 |
例外
类型 | 说明 |
---|---|
regen_key
重新生成 Web 服务密钥之一,即“主”或“辅助”密钥。
如果未WebserviceException指定或不是“主要”或“辅助”,则会引发 Akey
。
regen_key(key, set_key=None)
参数
名称 | 说明 |
---|---|
key
必需
|
要重新生成的密钥。 选项为“Primary”或“Secondary”。 |
set_key
|
用户指定的值,允许手动指定密钥的值 默认值: None
|
例外
类型 | 说明 |
---|---|
run
使用提供的输入调用此 Web 服务。
由 . 的子类实现的 Webservice抽象方法
abstract run(input)
参数
名称 | 说明 |
---|---|
input
必需
|
<xref:varies>
要调用 Web 服务的输入数据。 这是机器学习模型预期作为运行预测的输入的数据。 |
返回
类型 | 说明 |
---|---|
调用 Web 服务的结果。 这将返回从机器学习模型运行的预测。 |
例外
类型 | 说明 |
---|---|
serialize
将此 Webservice 对象转换为 JSON 序列化字典。
用于 deserialize 转换回 Webservice 对象。
serialize()
返回
类型 | 说明 |
---|---|
此 Web 服务的 JSON 表示形式。 |
update
更新 Webservice 参数。
这是由子类实现的 Webservice抽象方法。 更新的可能参数因 Webservice 子类型而异。 例如,对于 Azure 容器实例 Web 服务,请参阅 update 特定参数。
abstract update(*args)
参数
名称 | 说明 |
---|---|
args
必需
|
<xref:varies>
要更新的值。 |
例外
类型 | 说明 |
---|---|
update_deployment_state
刷新内存中对象的当前状态。
根据相应云对象的当前状态对对象的属性进行就地更新。 主要用于手动轮询创建状态。
update_deployment_state()
wait_for_deployment
自动轮询正在运行的 Webservice 部署。
等待 Web 服务到达终端状态。 如果它达到非成功的终端状态或超过提供的超时,将引发 WebserviceException a。
wait_for_deployment(show_output=False, timeout_sec=None)
参数
名称 | 说明 |
---|---|
show_output
|
指示是否打印更详细的输出。 默认值: False
|
timeout_sec
|
如果部署超过给定的超时值,则引发异常。 默认值: None
|
例外
类型 | 说明 |
---|---|