Webservice 类

定义基本功能,以用于将模型部署为 Azure 机器学习中的 Web 服务终结点。

Webservice 构造函数用于检索与提供的工作区关联的 Webservice 对象的云表示形式。 返回与检索到的特定类型的 Webservice 对象对应的子类实例。 使用 Webservice 类可以从 ModelImage 对象部署机器学习模型。

有关使用这些 Webservice 的详细信息,请参阅使用 Azure 机器学习部署模型

初始化 Web 服务实例。

Webservice 构造函数检索与提供的工作区关联的 Webservice 对象的云表示形式。 它将返回与检索到的 Webservice 对象的特定类型对应的子类的实例。

继承
Webservice

构造函数

Webservice(workspace, name)

参数

名称 说明
workspace
必需

包含要检索的 Webservice 对象的工作区对象。

name
必需
str

要检索的 Webservice 对象的名称。

workspace
必需

包含要检索的 Webservice 对象的工作区对象。

name
必需
str

要检索的 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)

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb 获取

下面的示例演示如何在工作区中查找现有 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,包括:

  • 已在工作区中注册的模型的 Modeldeploy 方法。

  • 已从模型创建的映像的 Webservicedeploy_from_image 方法。

  • 已在工作区中注册的模型的 Webservicedeploy_from_model 方法。 此方法将创建映像。

  • Webservicedeploy 方法,它将注册模型并创建映像。

有关使用 webservice 的信息,请参阅

变量部分列出云 Webservice 对象的本地表示形式的属性。 应将这些变量视为只读。 这些变量值的更改将不会反映在对应的云对象中。

变量

名称 说明
auth_enabled

Webservice 是否已启用身份验证。

compute_type
str

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
str

创建 Webservice 的用户。

error
str

如果 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 的密钥之一(主要密钥或辅助密钥)。

如果未指定 key或其不是“Primary”或“Secondary”,则会引发 WebserviceException

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
必需
str
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
必需
str

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 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
必需
str

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 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
必需
str

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 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
必需
str

为部署的服务指定的名称。 在本地计算机上必须是唯一的。

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()

返回

类型 说明
(str, str)

此 Webservice 的身份验证密钥。

例外

类型 说明

get_logs

检索此 Webservice 的日志。

get_logs(num_lines=5000, init=False)

参数

名称 说明
num_lines
int

要检索的最大日志行数。

默认值: 5000
init

获取 Init 容器的日志

默认值: False

返回

类型 说明
str

此 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
str

进行筛选,仅列出特定的 Webservice 类型。 选项为“ACI”和“AKS”。

默认值: None
image_name
str

筛选列表,仅包含使用特定映像名称部署的 Webservice。

默认值: None
image_id
str

筛选列表,仅包含使用特定映像 ID 部署的 Webservice。

默认值: None
model_name
str

筛选列表,仅包含使用特定模型名称部署的 Webservice。

默认值: None
model_id
str

筛选列表,仅包含使用特定模型 ID 部署的 Webservice。

默认值: None
tags

基于提供的列表按“key”或“[key, value]”筛选。 例如: ['key', ['key2', 'key2 value']]

默认值: None
properties

基于提供的列表按“key”或“[key, value]”筛选。 例如: ['key', ['key2', 'key2 value']]

默认值: None
image_digest
str

筛选列表,仅包含使用特定映像摘要部署的 Webservice。

默认值: None

返回

类型 说明

提供的 Workspace 中已筛选的 Webservice 列表。

例外

类型 说明

regen_key

重新生成 Webservice 的密钥之一(主要密钥或辅助密钥)。

如果未指定 key或其不是“Primary”或“Secondary”,则会引发 WebserviceException

regen_key(key, set_key=None)

参数

名称 说明
key
必需
str

要重新生成的密钥。 选项为“Primary”或“Secondary”。

set_key
str

可通过用户指定的值手动指定密钥的值

默认值: 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

例外

类型 说明