Webservice 類別
定義在 Azure Machine Learning 中將模型部署為 Web 服務端點的基本功能。
Webservice 建構函式可用來擷取與所提供工作區相關聯的Webservice對象的雲端表示法。 傳回對應至所擷取之 Webservice 物件特定型別之子類別的實例。 Webservice 類別允許從 Model 或 Image 物件部署機器學習模型。
如需使用 Webservice 的詳細資訊,請參閱 使用 Azure Machine Learning 部署模型。
初始化 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
|
上次更新 Web 服務的時間。 |
azureml.core.Webservice.workspace
|
包含此 Web 服務的 Azure Machine Learning 工作區。 |
token_auth_enabled
|
Webservice 是否已啟用令牌驗證。 |
方法
check_for_existing_webservice |
檢查 Webservice 是否存在。 |
delete |
從其相關聯的工作區中刪除此 Webservice。 此函式呼叫不是異步的。 呼叫會執行,直到刪除資源為止。 WebserviceException如果從模型管理服務刪除模型時發生問題,則會引發 。 |
deploy |
從零個或多個 Model 物件部署 Webservice。 此函式會註冊提供的任何模型檔案,並在程式中建立映像,這些檔案全都與指定的 Workspace相關聯。 當您有尚未註冊的模型目錄時,請使用此函式。 產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為Web服務的模型。 |
deploy_from_image |
從 Image 物件部署 Webservice。 如果您已經為模型建立 Image 物件,請使用此函式。 產生的 Webservice 是可用於推斷要求的即時端點。 如需詳細資訊,請參閱 取用部署為Web服務的模型。 |
deploy_from_model |
從零個或多個 Model 物件部署 Webservice。 此函式類似於 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 容器實例 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)
參數
名稱 | 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 物件部署 Webservice。
此函式會註冊提供的任何模型檔案,並在程式中建立映像,這些檔案全都與指定的 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,請將此參數保留為 None,以部署至 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,請將此參數保留為 None,以部署至 Azure 容器實例。 預設值: None
|
overwrite
|
如果已經有名稱的服務存在,請覆寫現有的服務。 預設值: False
|
傳回
類型 | Description |
---|---|
對應至已部署 Webservice 的 Webservice 物件。 |
例外狀況
類型 | Description |
---|---|
deploy_from_model
從零個或多個 Model 物件部署 Webservice。
此函式類似於 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 表示法。 |
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
|
篩選清單,只包含以特定映射名稱部署的 Web 服務。 預設值: None
|
image_id
|
篩選清單,只包含以特定映射標識碼部署的 Web 服務。 預設值: None
|
model_name
|
篩選清單,只包含以特定模型名稱部署的 Web 服務。 預設值: None
|
model_id
|
篩選清單,只包含以特定模型標識碼部署的 Web 服務。 預設值: None
|
tags
|
根據提供的清單篩選,依據 'key' 或 '[key, value]'。 例如 ['key', ['key2', 'key2 value']] 預設值: None
|
properties
|
根據提供的清單篩選,依據 'key' 或 '[key, value]'。 例如 ['key', ['key2', 'key2 value']] 預設值: None
|
image_digest
|
篩選清單,只包含以特定映射摘要部署的 Webservices。 預設值: 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 表示法。 |
update
更新 Webservice 參數。
這是 由的子類別所實作的 Webservice抽象方法。 更新的可能參數會根據 Webservice 子類型而有所不同。 例如,針對 Azure 容器實例 Web 服務,請參閱 update 特定參數。
abstract update(*args)
參數
名稱 | Description |
---|---|
args
必要
|
<xref:varies>
要更新的值。 |
例外狀況
類型 | Description |
---|---|
update_deployment_state
重新整理記憶體內部物件的目前狀態。
根據對應雲端物件的目前狀態,執行對象的屬性就地更新。 主要用於手動輪詢建立狀態。
update_deployment_state()
wait_for_deployment
自動輪詢執行中的Webservice部署。
等候 Webservice 到達終端機狀態。 如果它達到非成功的終端狀態或超過提供的逾時,則會擲回 WebserviceException 。
wait_for_deployment(show_output=False, timeout_sec=None)
參數
名稱 | Description |
---|---|
show_output
|
指出是否要列印更詳細的輸出。 預設值: False
|
timeout_sec
|
如果部署超過指定的逾時,引發例外狀況。 預設值: None
|
例外狀況
類型 | Description |
---|---|