Webservice 类

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

Webservice 构造函数用于检索与提供的工作区关联的 Webservice 对象的云表示形式。 返回与检索的 Webservice 对象的特定类型对应的子类的实例。 Webservice 类允许从 Model 某个或 Image 对象部署机器学习模型。

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

初始化 Webservice 实例。

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

构造函数

Webservice(workspace, name)

参数

名称 说明
workspace
必需

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

name
必需
str

要检索的 Webservice 对象的名称。

workspace
必需

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

name
必需
str

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

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
str

创建 Web 服务的用户。

error
str

如果 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指定或不是“主要”或“辅助”,则会引发 Akey

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

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

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

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

要为已部署的服务提供的名称。 在本地计算机上必须是唯一的。

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

检索此 Web 服务的身份验证密钥。

get_keys()

返回

类型 说明
(str, str)

此 Web 服务的身份验证密钥。

例外

类型 说明

get_logs

检索此 Web 服务的日志。

get_logs(num_lines=5000, init=False)

参数

名称 说明
num_lines
int

要检索的最大日志行数。

默认值: 5000
init

获取 init 容器的日志

默认值: False

返回

类型 说明
str

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

筛选仅列出特定的 Web 服务类型。 选项为“ACI”、“AKS”。

默认值: None
image_name
str

筛选列表以仅包含使用特定映像名称部署的 Web 服务。

默认值: None
image_id
str

筛选列表以仅包含使用特定映像 ID 部署的 Web 服务。

默认值: None
model_name
str

筛选列表以仅包含使用特定模型名称部署的 Web 服务。

默认值: None
model_id
str

筛选列表以仅包含使用特定模型 ID 部署的 Web 服务。

默认值: None
tags

按“key”或“[key, value]”根据提供的列表进行筛选。 例如: ['key', ['key2', 'key2 value']]

默认值: None
properties

按“key”或“[key, value]”根据提供的列表进行筛选。 例如: ['key', ['key2', 'key2 value']]

默认值: None
image_digest
str

筛选列表以仅包含使用特定映像摘要部署的 Web 服务。

默认值: None

返回

类型 说明

提供的工作区中 Web 服务的筛选列表。

例外

类型 说明

regen_key

重新生成 Web 服务密钥之一,即“主”或“辅助”密钥。

如果未WebserviceException指定或不是“主要”或“辅助”,则会引发 Akey

regen_key(key, set_key=None)

参数

名称 说明
key
必需
str

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

set_key
str

用户指定的值,允许手动指定密钥的值

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

例外

类型 说明