Webservice 类

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

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

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

继承
Webservice

构造函数

Webservice(workspace, name)

参数

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

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

有多种方法可以将模型部署为 webservice,包括:

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

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

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

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

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

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

变量

auth_enabled
bool

Webservice 是否已启用身份验证。

compute_type
str

Webservice 部署到的计算类型。

created_time
datetime

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
datetime

上次更新 Webservice 的时间。

azureml.core.Webservice.workspace

包含此 Webservice 的 Azure 机器学习工作区。

token_auth_enabled
bool

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
Workspace
必需
name
str
必需
overwrite
bool
默认值: False
request_func
<xref:function>
默认值: None

用于请求服务以检查服务名称是否存在的函数

check_func
<xref:function>
默认值: None

用于检查 request_func 响应内容的函数

例外

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

要与 Web 服务关联的工作区对象。

name
str
必需

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 3 到 32 个字符之间。

model_paths
list[str]
必需

用于为文件或文件夹建模的磁盘上路径的列表。 可以是空列表。

image_config
ImageConfig
必需

用于确定所需 Image 属性的 ImageConfig 对象。

deployment_config
WebserviceDeploymentConfiguration
默认值: None

用于配置 webservice 的 WebserviceDeploymentConfiguration。 如果未提供,将基于所需目标使用空配置对象。

deployment_target
ComputeTarget
默认值: None

要将 Web 服务部署到的 ComputeTarget。 由于 Azure 容器实例没有关联的 ComputeTarget,因此将此参数保留为“无”以部署到Azure 容器实例。

overwrite
bool
默认值: 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
Workspace
必需

要与 Web 服务关联的工作区对象。

name
str
必需

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 3 到 32 个字符之间。

image
Image
必需

要部署的 Image 对象。

deployment_config
WebserviceDeploymentConfiguration
默认值: None

用于配置 webservice 的 WebserviceDeploymentConfiguration。 如果未提供,将基于所需目标使用空配置对象。

deployment_target
ComputeTarget
默认值: None

要将 Web 服务部署到的 ComputeTarget。 由于 Azure 容器实例没有关联的 ComputeTarget,因此将此参数保留为“无”以部署到Azure 容器实例。

overwrite
bool
默认值: 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
Workspace
必需

要与 Web 服务关联的工作区对象。

name
str
必需

为部署的服务指定的名称。 对于工作区,必须是唯一的,仅包含小写字母、数字或短划线,以字母开头,且长度在 3 到 32 个字符之间。

models
list[Model]
必需

模型对象列表。 可以是空列表。

image_config
ImageConfig
必需

用于确定所需 Image 属性的 ImageConfig 对象。

deployment_config
WebserviceDeploymentConfiguration
默认值: None

用于配置 webservice 的 WebserviceDeploymentConfiguration。 如果未提供,将基于所需目标使用空配置对象。

deployment_target
ComputeTarget
默认值: None

要将 Web 服务部署到的 ComputeTarget。 由于 ACI 没有关联 ComputeTarget,因此将此参数保留为 None 以部署到 ACI。

overwrite
bool
默认值: 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
Workspace
必需

要与 Webservice 关联的工作区对象。

name
str
必需

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

models
list[Model]
必需

模型对象列表。 可以是空列表。

image_config
ImageConfig
必需

用于确定所需服务映像属性的 ImageConfig 对象。

deployment_config
LocalWebserviceDeploymentConfiguration
默认值: None

用于配置 webservice 的 LocalWebserviceDeploymentConfiguration。 如果未提供,则使用空配置对象。

wait
bool
默认值: False

是否等待 LocalWebservice 的 Docker 容器报告为正常。 如果容器崩溃,则引发异常。 默认值为 False。

返回类型

例外

deserialize

将模型管理响应 JSON 对象转换为 Webservice 对象。

如果提供的工作区不是注册 Webservice 的工作区,则此方法将失败。

deserialize(workspace, webservice_payload)

参数

cls
必需

指示这是一个类方法。

workspace
Workspace
必需

Webservice 注册到的工作区对象。

webservice_payload
dict
必需

要转换为 Webservice 对象的 JSON 对象。

返回

所提供的 JSON 对象的 Webservice 表示形式。

返回类型

例外

get_keys

检索此 Webservice 的身份验证密钥。

get_keys()

返回

此 Webservice 的身份验证密钥。

返回类型

(str, str)

例外

get_logs

检索此 Webservice 的日志。

get_logs(num_lines=5000, init=False)

参数

num_lines
int
默认值: 5000

要检索的最大日志行数。

init
bool
默认值: False

获取 Init 容器的日志

返回

此 Webservice 的日志。

返回类型

str

例外

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

要列出 Webservice 的 Workspace 对象。

compute_type
str
默认值: None

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

image_name
str
默认值: None

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

image_id
str
默认值: None

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

model_name
str
默认值: None

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

model_id
str
默认值: None

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

tags
list
默认值: None

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

properties
list
默认值: None

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

image_digest
str
默认值: None

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

返回

提供的 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
bool
默认值: False

指示是否打印更详细的输出。

timeout_sec
float
默认值: None

如果部署超过给定的超时值,则引发异常。

例外