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