Webservice 類別

定義在 Azure Machine Learning 中將模型部署為 Web 服務端點的基底功能。

Webservice 建構函式可用來擷取與所提供工作區相關聯的 Webservice 物件的雲端標記法。 傳回對應至所擷取之 Webservice 物件之特定類型的子類別實例。 Webservice 類別可讓您從 ModelImage 物件部署機器學習模型。

如需使用 Webservice 的詳細資訊,請參閱 使用 Azure Machine Learning 部署模型

初始化 Webservice 實例。

Webservice 建構函式會擷取與所提供工作區相關聯之 Webservice 物件的雲端標記法。 它會傳回對應至所擷取之 Webservice 物件之特定類型的子類別實例。

繼承
Webservice

建構函式

Webservice(workspace, name)

參數

workspace
Workspace
必要

包含要擷取之 Webservice 物件的工作區物件。

name
str
必要

要擷取之 Webservice 物件的 名稱。

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

完整範例可從 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)

有數種方式可將模型部署為 Web 服務,包括:

  • deployModel已在工作區中註冊之模型的 方法。

  • deploy_from_imageWebservice已從模型建立影像的 方法。

  • deploy_from_modelWebservice的 方法,用於已在工作區中註冊的模型。 這個方法會建立映射。

  • deployWebservice 方法,它會註冊模型並建立映射。

如需使用 Web 服務的資訊,請參閱

[變數]區段會列出雲端 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 Machine Learning 工作區。

token_auth_enabled
bool

Webservice 是否已啟用權杖驗證。

方法

check_for_existing_webservice

檢查 Webservice 是否存在。

delete

從其相關聯的工作區中刪除此 Webservice。

此函式呼叫不是非同步。 呼叫會執行,直到刪除資源為止。 WebserviceException如果從模型管理服務刪除模型時發生問題,則會引發 。

deploy

從零個或多個 Model 物件部署 Web 服務。

此函式會註冊提供的任何模型檔案,並在程式中建立映射,所有與指定的 Workspace 相關聯。 當您有模型目錄來部署先前尚未註冊的模型時,請使用此函式。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

deploy_from_image

Image 物件部署 Webservice。

如果您已經為模型建立 Image 物件,請使用此函式。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

deploy_from_model

從零個或多個 Model 物件部署 Web 服務。

此函式類似于 deploy ,但不會註冊模型。 如果您有已註冊的模型物件,請使用此函式。 這會在程式中建立與指定工作區相關聯的映射。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

deploy_local_from_model

建置和部署 LocalWebservice 以進行測試。

需要安裝並設定 Docker。

deserialize

將模型管理服務回應 JSON 物件轉換成 Webservice 物件。

如果提供的工作區不是 Web 服務註冊所在的工作區,將會失敗。

get_keys

擷取此 Webservice 的驗證金鑰。

get_logs

擷取此 Webservice 的記錄。

get_token

擷取此 Webservice 的驗證權杖,範圍限定為目前使用者。

list

列出與對應 Workspace 相關聯的 Web 服務。

傳回的結果可以使用參數進行篩選。

regen_key

重新產生其中一個 Webservice 的金鑰,也就是「主要」或「次要」金鑰。

WebserviceException如果未 key 指定或不是 'Primary' 或 'Secondary',則會引發 。

run

使用提供的輸入呼叫此 Webservice。

由 的子類別所實作的 Webservice 抽象方法。

serialize

將此 Webservice 物件轉換成 JSON 序列化字典。

使用 deserialize 轉換回 Webservice 物件。

update

更新 Webservice 參數。

這是 的子類別所實作的 Webservice 抽象方法。 更新的可能參數會根據 Webservice 子類型而有所不同。 例如,如需 Azure 容器執行個體 Webservices,請參閱 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 相關聯。 當您有模型目錄來部署先前尚未註冊的模型時,請使用此函式。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)

參數

workspace
Workspace
必要

要與 Webservice 建立關聯的 Workspace 物件。

name
str
必要

要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。

model_paths
list[str]
必要

模型檔案或資料夾的磁片上路徑清單。 可以是空的清單。

image_config
ImageConfig
必要

用來判斷必要 Image 屬性的 ImageConfig 物件。

deployment_config
WebserviceDeploymentConfiguration
預設值: None

用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。

deployment_target
ComputeTarget
預設值: None

ComputeTarget 部署 Webservice 的 。 由於Azure 容器執行個體沒有相關聯的 ComputeTarget ,請將此參數保留為 [無] 以部署至Azure 容器執行個體。

overwrite
bool
預設值: False

如果已有名稱的服務已經存在,請覆寫現有的服務。

傳回

對應至已部署 Webservice 的 Webservice 物件。

傳回類型

例外狀況

deploy_from_image

Image 物件部署 Webservice。

如果您已經為模型建立 Image 物件,請使用此函式。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)

參數

workspace
Workspace
必要

要與 Webservice 建立關聯的 Workspace 物件。

name
str
必要

要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。

image
Image
必要

Image 部署的物件。

deployment_config
WebserviceDeploymentConfiguration
預設值: None

用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。

deployment_target
ComputeTarget
預設值: None

ComputeTarget 部署 Webservice 的 。 由於Azure 容器執行個體沒有相關聯的 ComputeTarget ,請將此參數保留為 [無] 以部署至Azure 容器執行個體。

overwrite
bool
預設值: False

如果已有名稱的服務已經存在,請覆寫現有的服務。

傳回

對應至已部署 Webservice 的 Webservice 物件。

傳回類型

例外狀況

deploy_from_model

從零個或多個 Model 物件部署 Web 服務。

此函式類似于 deploy ,但不會註冊模型。 如果您有已註冊的模型物件,請使用此函式。 這會在程式中建立與指定工作區相關聯的映射。

產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型

static deploy_from_model(workspace, name, models, image_config, deployment_config=None, deployment_target=None, overwrite=False)

參數

workspace
Workspace
必要

要與 Webservice 建立關聯的 Workspace 物件。

name
str
必要

要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。

models
list[Model]
必要

模型物件的清單。 可以是空的清單。

image_config
ImageConfig
必要

用來判斷必要 Image 屬性的 ImageConfig 物件。

deployment_config
WebserviceDeploymentConfiguration
預設值: None

用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。

deployment_target
ComputeTarget
預設值: None

ComputeTarget 部署 Webservice 的 。 由於 ACI 沒有相關聯的 ComputeTarget ,請將此參數保留為 None 以部署至 ACI。

overwrite
bool
預設值: False

如果已有名稱的服務已經存在,請覆寫現有的服務。

傳回

對應至已部署 Webservice 的 Webservice 物件。

傳回類型

例外狀況

deploy_local_from_model

建置和部署 LocalWebservice 以進行測試。

需要安裝並設定 Docker。

static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)

參數

workspace
Workspace
必要

要與 Webservice 產生關聯的 Workspace 物件。

name
str
必要

要提供給已部署服務的名稱。 本機電腦上必須是唯一的。

models
list[Model]
必要

模型物件的清單。 可以是空的清單。

image_config
ImageConfig
必要

用來判斷必要服務映射屬性的 ImageConfig 物件。

deployment_config
LocalWebserviceDeploymentConfiguration
預設值: None

用來設定 Web 服務的 LocalWebserviceDeploymentConfiguration。 如果未提供,則會使用空的組態物件。

wait
bool
預設值: False

是否要等候 LocalWebservice 的 Docker 容器回報為狀況良好。 如果容器損毀,則會擲回例外狀況。 預設值是 False。

傳回類型

例外狀況

deserialize

將模型管理服務回應 JSON 物件轉換成 Webservice 物件。

如果提供的工作區不是 Web 服務註冊所在的工作區,將會失敗。

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 相關聯的 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
Workspace
必要

要列出 Webservices 的 Workspace 物件。

compute_type
str
預設值: None

篩選只列出特定的 Webservice 類型。 選項為 'ACI'、'AKS'。

image_name
str
預設值: None

篩選清單,只包含以特定映射名稱部署的 Webservice。

image_id
str
預設值: None

篩選清單,只包含以特定映射識別碼部署的 Webservice。

model_name
str
預設值: None

篩選清單,只包含以特定模型名稱部署的 Webservice。

model_id
str
預設值: None

篩選清單,只包含以特定模型識別碼部署的 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。

傳回

所提供工作區中 Webservices 的篩選清單。

傳回類型

例外狀況

regen_key

重新產生其中一個 Webservice 的金鑰,也就是「主要」或「次要」金鑰。

WebserviceException如果未 key 指定或不是 'Primary' 或 'Secondary',則會引發 。

regen_key(key, set_key=None)

參數

key
str
必要

要重新產生之金鑰。 選項為 「主要」或「次要」。

set_key
str
預設值: None

使用者指定的值,允許手動指定索引鍵值

例外狀況

run

使用提供的輸入呼叫此 Webservice。

由 的子類別所實作的 Webservice 抽象方法。

abstract run(input)

參數

input
<xref:varies>
必要

用來呼叫 Webservice 的輸入資料。 這是您的機器學習模型預期做為輸入來執行預測的資料。

傳回

呼叫 Webservice 的結果。 這會從您的機器學習模型傳回預測。

傳回類型

例外狀況

serialize

將此 Webservice 物件轉換成 JSON 序列化字典。

使用 deserialize 轉換回 Webservice 物件。

serialize()

傳回

此 Webservice 的 JSON 標記法。

傳回類型

例外狀況

update

更新 Webservice 參數。

這是 的子類別所實作的 Webservice 抽象方法。 更新的可能參數會根據 Webservice 子類型而有所不同。 例如,如需 Azure 容器執行個體 Webservices,請參閱 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

如果部署超過指定的逾時,請引發例外狀況。

例外狀況