Webservice 類別
定義在 Azure Machine Learning 中將模型部署為 Web 服務端點的基底功能。
Webservice 建構函式可用來擷取與所提供工作區相關聯的 Webservice 物件的雲端標記法。 傳回對應至所擷取之 Webservice 物件之特定類型的子類別實例。 Webservice 類別可讓您從 Model 或 Image 物件部署機器學習模型。
如需使用 Webservice 的詳細資訊,請參閱 使用 Azure Machine Learning 部署模型。
初始化 Webservice 實例。
Webservice 建構函式會擷取與所提供工作區相關聯之 Webservice 物件的雲端標記法。 它會傳回對應至所擷取之 Webservice 物件之特定類型的子類別實例。
- 繼承
-
Webservice
建構函式
Webservice(workspace, name)
參數
名稱 | Description |
---|---|
workspace
必要
|
包含要擷取之 Webservice 物件的工作區物件。 |
name
必要
|
要擷取之 Webservice 物件的 名稱。 |
workspace
必要
|
包含要擷取之 Webservice 物件的工作區物件。 |
name
必要
|
要擷取之 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 物件的本機標記法的屬性。 這些變數應該視為唯讀。 變更其值不會反映在對應的雲端物件中。
變數
名稱 | Description |
---|---|
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 Machine Learning 工作區。 |
token_auth_enabled
|
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 物件。 如果提供的工作區不是 Webservice 註冊所在的工作區,將會失敗。 |
get_keys |
擷取此 Webservice 的驗證金鑰。 |
get_logs |
擷取此 Webservice 的記錄。 |
get_token |
擷取此 Webservice 的驗證權杖,範圍限定為目前使用者。 |
list |
列出與對應 Workspace 相關聯的 Web 服務。 傳回的結果可以使用參數進行篩選。 |
regen_key |
重新產生其中一個 Webservice 的金鑰,也就是「主要」或「次要」金鑰。
WebserviceException如果未 |
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
|
name
必要
|
|
overwrite
|
預設值: False
|
request_func
|
<xref:function>
用來要求服務以檢查服務名稱是否存在的函式 預設值: None
|
check_func
|
<xref:function>
用來檢查request_func回應內容的函式 預設值: None
|
例外狀況
類型 | Description |
---|---|
delete
從其相關聯的工作區中刪除此 Webservice。
此函式呼叫不是非同步。 呼叫會執行,直到刪除資源為止。 WebserviceException如果從模型管理服務刪除模型時發生問題,則會引發 。
delete()
例外狀況
類型 | Description |
---|---|
deploy
從零個或多個 Model 物件部署 Web 服務。
此函式會註冊提供的任何模型檔案,並在程式中建立映射,所有與指定的 Workspace 相關聯。 當您有模型目錄來部署先前尚未註冊的模型時,請使用此函式。
產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型。
static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)
參數
名稱 | Description |
---|---|
workspace
必要
|
要與 Webservice 建立關聯的 Workspace 物件。 |
name
必要
|
要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。 |
model_paths
必要
|
模型檔案或資料夾的磁片上路徑清單。 可以是空的清單。 |
image_config
必要
|
用來判斷必要 Image 屬性的 ImageConfig 物件。 |
deployment_config
|
用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。 預設值: None
|
deployment_target
|
要 ComputeTarget 部署 Webservice 的 。 由於Azure 容器執行個體沒有相關聯的 ComputeTarget ,請將此參數保留為 [無] 以部署至Azure 容器執行個體。 預設值: None
|
overwrite
|
如果已有名稱的服務已經存在,請覆寫現有的服務。 預設值: False
|
傳回
類型 | Description |
---|---|
對應至已部署 Webservice 的 Webservice 物件。 |
例外狀況
類型 | Description |
---|---|
deploy_from_image
從 Image 物件部署 Webservice。
如果您已經為模型建立 Image 物件,請使用此函式。
產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為 Web 服務的模型。
static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)
參數
名稱 | Description |
---|---|
workspace
必要
|
要與 Webservice 建立關聯的 Workspace 物件。 |
name
必要
|
要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。 |
image
必要
|
要 Image 部署的物件。 |
deployment_config
|
用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。 預設值: None
|
deployment_target
|
要 ComputeTarget 部署 Webservice 的 。 由於Azure 容器執行個體沒有相關聯的 ComputeTarget ,請將此參數保留為 [無] 以部署至Azure 容器執行個體。 預設值: None
|
overwrite
|
如果已有名稱的服務已經存在,請覆寫現有的服務。 預設值: False
|
傳回
類型 | Description |
---|---|
對應至已部署 Webservice 的 Webservice 物件。 |
例外狀況
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
要與 Webservice 建立關聯的 Workspace 物件。 |
name
必要
|
要提供給已部署服務的名稱。 工作區必須是唯一的,只有小寫字母、數位或虛線、以字母開頭,長度介於 3 到 32 個字元之間。 |
models
必要
|
模型物件的清單。 可以是空的清單。 |
image_config
必要
|
用來判斷必要 Image 屬性的 ImageConfig 物件。 |
deployment_config
|
用來設定 Web 服務的 WebserviceDeploymentConfiguration。 如果未提供,則會根據所需的目標來使用空的組態物件。 預設值: None
|
deployment_target
|
要 ComputeTarget 部署 Webservice 的 。 由於 ACI 沒有相關聯的 ComputeTarget ,請將此參數保留為 None 以部署至 ACI。 預設值: None
|
overwrite
|
如果已有名稱的服務已經存在,請覆寫現有的服務。 預設值: False
|
傳回
類型 | Description |
---|---|
對應至已部署 Webservice 的 Webservice 物件。 |
例外狀況
類型 | Description |
---|---|
deploy_local_from_model
建置和部署 LocalWebservice 以進行測試。
需要安裝並設定 Docker。
static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)
參數
名稱 | Description |
---|---|
workspace
必要
|
要與 Webservice 產生關聯的 Workspace 物件。 |
name
必要
|
要提供給已部署服務的名稱。 本機電腦上必須是唯一的。 |
models
必要
|
模型物件的清單。 可以是空的清單。 |
image_config
必要
|
用來判斷必要服務映射屬性的 ImageConfig 物件。 |
deployment_config
|
用來設定 Web 服務的 LocalWebserviceDeploymentConfiguration。 如果未提供,則會使用空的組態物件。 預設值: None
|
wait
|
是否要等候 LocalWebservice 的 Docker 容器回報為狀況良好。 如果容器損毀,則會擲回例外狀況。 預設值是 False。 預設值: False
|
傳回
類型 | Description |
---|---|
例外狀況
類型 | Description |
---|---|
deserialize
將模型管理服務回應 JSON 物件轉換成 Webservice 物件。
如果提供的工作區不是 Webservice 註冊所在的工作區,將會失敗。
deserialize(workspace, webservice_payload)
參數
名稱 | Description |
---|---|
cls
必要
|
表示這是類別方法。 |
workspace
必要
|
Webservice 所註冊的工作區物件。 |
webservice_payload
必要
|
要轉換成 Webservice 物件的 JSON 物件。 |
傳回
類型 | Description |
---|---|
所提供 JSON 物件的 Webservice 標記法。 |
例外狀況
類型 | Description |
---|---|
get_keys
擷取此 Webservice 的驗證金鑰。
get_keys()
傳回
類型 | Description |
---|---|
此 Webservice 的驗證金鑰。 |
例外狀況
類型 | Description |
---|---|
get_logs
擷取此 Webservice 的記錄。
get_logs(num_lines=5000, init=False)
參數
名稱 | Description |
---|---|
num_lines
|
要擷取的記錄行數目上限。 預設值: 5000
|
init
|
取得 init 容器的記錄 預設值: False
|
傳回
類型 | Description |
---|---|
此 Webservice 的記錄。 |
例外狀況
類型 | Description |
---|---|
get_token
擷取此 Webservice 的驗證權杖,範圍限定為目前使用者。
get_token()
傳回
類型 | Description |
---|---|
此 Webservice 的驗證權杖,以及何時應該重新整理。 |
例外狀況
類型 | Description |
---|---|
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)
參數
名稱 | Description |
---|---|
workspace
必要
|
要列出 Webservices 的 Workspace 物件。 |
compute_type
|
篩選只列出特定的 Webservice 類型。 選項為 'ACI'、'AKS'。 預設值: None
|
image_name
|
篩選清單,只包含以特定映射名稱部署的 Webservice。 預設值: None
|
image_id
|
篩選清單,只包含以特定映射識別碼部署的 Webservice。 預設值: None
|
model_name
|
篩選清單,只包含以特定模型名稱部署的 Webservice。 預設值: None
|
model_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
|
傳回
類型 | Description |
---|---|
所提供工作區中 Webservices 的篩選清單。 |
例外狀況
類型 | Description |
---|---|
regen_key
重新產生其中一個 Webservice 的金鑰,也就是「主要」或「次要」金鑰。
WebserviceException如果未 key
指定或不是 'Primary' 或 'Secondary',則會引發 。
regen_key(key, set_key=None)
參數
名稱 | Description |
---|---|
key
必要
|
要重新產生之金鑰。 選項為 「主要」或「次要」。 |
set_key
|
使用者指定的值,允許手動指定索引鍵值 預設值: None
|
例外狀況
類型 | Description |
---|---|
run
使用提供的輸入呼叫此 Webservice。
由 的子類別所實作的 Webservice 抽象方法。
abstract run(input)
參數
名稱 | Description |
---|---|
input
必要
|
<xref:varies>
用來呼叫 Webservice 的輸入資料。 這是您的機器學習模型預期做為輸入來執行預測的資料。 |
傳回
類型 | Description |
---|---|
呼叫 Webservice 的結果。 這會從您的機器學習模型傳回預測。 |
例外狀況
類型 | Description |
---|---|
serialize
將此 Webservice 物件轉換成 JSON 序列化字典。
使用 deserialize 轉換回 Webservice 物件。
serialize()
傳回
類型 | Description |
---|---|
此 Webservice 的 JSON 標記法。 |
例外狀況
類型 | Description |
---|---|
update
更新 Webservice 參數。
這是 的子類別所實作的 Webservice 抽象方法。 更新的可能參數會根據 Webservice 子類型而有所不同。 例如,如需 Azure 容器執行個體 Webservices,請參閱 update 特定參數。
abstract update(*args)
參數
名稱 | Description |
---|---|
args
必要
|
<xref:varies>
要更新的值。 |
例外狀況
類型 | Description |
---|---|
update_deployment_state
重新整理記憶體內建物件的目前狀態。
根據對應雲端物件的目前狀態,執行物件的就地更新。 主要適用于手動輪詢建立狀態。
update_deployment_state()
例外狀況
類型 | Description |
---|---|
wait_for_deployment
自動輪詢執行中的 Webservice 部署。
等候 Webservice 到達終端機狀態。 如果達到非成功的終端機狀態,或超過提供的逾時,將會擲 WebserviceException 回 。
wait_for_deployment(show_output=False, timeout_sec=None)
參數
名稱 | Description |
---|---|
show_output
|
指出是否要列印更多詳細資訊輸出。 預設值: False
|
timeout_sec
|
如果部署超過指定的逾時,請引發例外狀況。 預設值: None
|
例外狀況
類型 | Description |
---|---|