Workspace 類別
定義用來管理定型和部署成品的 Azure Machine Learning 資源。
工作區是 Azure Machine Learning 中機器學習的基本資源。 您可以使用工作區來實驗、定型和部署機器學習模型。 每個工作區都會系結至 Azure 訂用帳戶和資源群組,並具有相關聯的 SKU。
如需工作區的詳細資訊,請參閱:
類別工作區建構函式,以載入現有的 Azure Machine Learning 工作區。
- 繼承
-
builtins.objectWorkspace
建構函式
Workspace(subscription_id, resource_group, workspace_name, auth=None, _location=None, _disable_service_check=False, _workspace_id=None, sku='basic', tags=None, _cloud='AzureCloud')
參數
驗證物件。 如需詳細資訊,請參閱 https://aka.ms/aml-notebook-auth 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
- workspace_name
- str
工作區名稱。 名稱長度必須為 2 到 32 個字元。 名稱的第一個字元必須是英數位元 (字母或數位) ,但其餘的名稱可能包含英數位元、連字號和底線。 不允許空白字元。
驗證物件。 如需詳細資訊,請參閱 https://aka.ms/aml-notebook-auth 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
備註
下列範例示範如何建立工作區。
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
若您已有要用於工作區的現有 Azure 資源群組,請將 create_resource_group
設定為 False。
若要在多個環境中使用相同的工作區,請建立 JSON 組態檔。 組態檔會儲存您的訂用帳戶、資源和工作區名稱,以便輕鬆載入。 若要儲存組態, write_config 請使用 方法。
ws.write_config(path="./file-path", file_name="ws_config.json")
如需組態檔的範例,請參閱 建立工作區組態檔 。
若要從組態檔載入工作區,請使用 from_config 方法。
ws = Workspace.from_config()
ws.get_details()
或者,使用 get 方法來載入現有的工作區,而不使用組態檔。
ws = Workspace.get(name="myworkspace",
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup')
上述範例可能會提示您使用互動式登入對話方塊取得 Azure 驗證認證。 如需其他使用案例,包括使用 Azure CLI 在自動化工作流程中驗證和驗證,請參閱 Azure Machine Learning 中的驗證。
方法
add_private_endpoint |
將私人端點新增至工作區。 |
create |
建立新的 Azure Machine Learning 工作區。 如果工作區已經存在,或不符合任何工作區需求,則會擲回例外狀況。 |
delete |
刪除 Azure Machine Learning 工作區相關聯的資源。 |
delete_connection |
刪除工作區的連線。 |
delete_private_endpoint_connection |
刪除工作區的私人端點連線。 |
diagnose_workspace |
診斷工作區設定問題。 |
from_config |
從現有的 Azure Machine Learning 工作區傳回工作區物件。 從檔案讀取工作區組態。 如果找不到組態檔,則會擲回例外狀況。 方法提供在多個 Python 筆記本或專案中重複使用相同工作區的簡單方式。 使用者可以使用 write_config 方法來儲存工作區 Azure Resource Manager (ARM) 屬性,並使用此方法在不同的 Python 筆記本或專案中載入相同的工作區,而不需重新系結工作區 ARM 屬性。 |
get |
傳回現有 Azure Machine Learning 工作區的工作區物件。 如果工作區不存在,或必要的欄位無法唯一識別工作區,則會擲回例外狀況。 |
get_connection |
取得工作區的連線。 |
get_default_compute_target |
取得工作區的預設計算目標。 |
get_default_datastore |
取得工作區的預設資料存放區。 |
get_default_keyvault |
取得工作區的預設金鑰保存庫物件。 |
get_details |
傳回工作區的詳細資料。 |
get_mlflow_tracking_uri |
取得工作區的 MLflow 追蹤 URI。 MLflow (https://mlflow.org/) 是一個開放原始碼平臺,可用來追蹤機器學習實驗和管理模型。 您可以搭配 Azure Machine Learning 使用 MLflow 記錄 API,以便將計量、模型和成品記錄到您的 Azure Machine Learning 工作區。 |
get_run |
使用工作區中的指定run_id傳回執行。 |
list |
列出使用者可在訂用帳戶記憶體取的所有工作區。 您可以根據資源群組篩選工作區清單。 |
list_connections |
列出此工作區下的連線。 |
list_keys |
列出目前工作區的索引鍵。 |
set_connection |
在工作區下新增或更新連線。 |
set_default_datastore |
設定工作區的預設資料存放區。 |
setup |
建立新的工作區或擷取現有的工作區。 |
sync_keys |
觸發工作區以立即同步處理金鑰。 如果工作區中任何資源的金鑰已變更,可能需要大約一小時的時間才能自動更新這些資源。 此函式可讓金鑰在要求時更新。 例如,在重新產生儲存體金鑰之後,需要立即存取儲存體。 |
update |
更新易記名稱、描述、標籤、映射組建計算和其他與工作區相關聯的設定。 |
update_dependencies |
在下列情況下,更新工作區的現有相關聯資源。 ) 當使用者不小心刪除現有的相關聯資源,而且想要以新的資源進行更新,而不需要重新建立整個工作區。 b) 當使用者擁有現有的相關聯資源,並想要取代與工作區相關聯的目前資源。 c) 當尚未建立相關聯的資源,而且他們想要使用它們已經擁有的現有資源, (僅適用于容器登錄) 。 |
write_config |
將工作區 Azure Resource Manager (ARM) 屬性寫入組態檔。 稍後 from_config 可以使用 方法來載入工作區 ARM 屬性。 預設 方法提供在多個 Python 筆記本或專案中重複使用相同工作區的簡單方式。 使用者可以使用此函式儲存工作區 ARM 屬性,並使用from_config在不同的 Python 筆記本或專案中載入相同的工作區,而不需重新系結工作區 ARM 屬性。 |
add_private_endpoint
將私人端點新增至工作區。
add_private_endpoint(private_endpoint_config, private_endpoint_auto_approval=True, location=None, show_output=True, tags=None)
參數
- private_endpoint_auto_approval
- bool
布林值旗標,表示是否應該從Azure Private Link中心自動核准或手動核准私人端點建立。 在手動核准的情況下,使用者可以在Private Link入口網站中檢視擱置的要求,以核准/拒絕要求。
傳回
已建立 PrivateEndPoint 物件。
傳回類型
create
建立新的 Azure Machine Learning 工作區。
如果工作區已經存在,或不符合任何工作區需求,則會擲回例外狀況。
static create(name, auth=None, subscription_id=None, resource_group=None, location=None, create_resource_group=True, sku='basic', tags=None, friendly_name=None, storage_account=None, key_vault=None, app_insights=None, container_registry=None, adb_workspace=None, primary_user_assigned_identity=None, cmk_keyvault=None, resource_cmk_uri=None, hbi_workspace=False, default_cpu_compute_target=None, default_gpu_compute_target=None, private_endpoint_config=None, private_endpoint_auto_approval=True, exist_ok=False, show_output=True, user_assigned_identity_for_cmk_encryption=None, system_datastores_auth_mode='accessKey', v1_legacy_mode=None)
參數
驗證物件。 如需詳細資訊,請參閱 https://aka.ms/aml-notebook-auth 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
- key_vault
- str
Azure 資源識別碼格式的現有金鑰保存庫。 如需 Azure 資源識別碼格式的詳細資料,請參閱下面的範例程式碼。 工作區將使用金鑰保存庫來儲存使用者新增至工作區的認證。 如果為 None,將會建立新的金鑰保存庫。
- app_insights
- str
Azure 資源識別碼格式的現有 Application Insights。 如需 Azure 資源識別碼格式的詳細資料,請參閱下面的範例程式碼。 工作區將使用 Application Insights 來記錄 Webservices 事件。 如果沒有,將會建立新的 Application Insights。
- container_registry
- str
Azure 資源識別碼格式的現有容器登錄 (請參閱下列範例程式碼,以取得 Azure 資源識別碼格式) 的詳細資料。 工作區將使用容器登錄來提取和推送實驗和 Web 服務映射。 如果為 None,則只會視需要建立新的容器登錄,而不是與工作區建立一起建立。
- adb_workspace
- str
Azure 資源識別碼格式的現有 Adb 工作區 (請參閱下列範例程式碼,以取得 Azure 資源識別碼格式) 的詳細資料。 Adb 工作區將用來與工作區連結。 如果為 None,則不會發生工作區連結。
- cmk_keyvault
- str
金鑰保存庫,其中包含 Azure 資源識別碼格式的客戶受控金鑰:/subscriptions/<azure-subscription-id>/resourcegroups/<azure-resource-group>/providers/microsoft.keyvault/vaults/<azure-keyvault-name>
例如:'/subscriptions/d139f240-94e6-4175-87a7-954b9d27db16/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault' 如需 Azure 資源識別碼格式的詳細資訊,請參閱下列中的範例程式碼。
- resource_cmk_uri
- str
客戶管理金鑰的金鑰 URI,用來加密待用資料。
URI 格式為: https://<keyvault-dns-name>/keys/<key-name>/<key-version>
。
例如,'https://mykeyvault.vault.azure.net/keys/mykey/bc5dce6d01df49w2na7ffb11a2ee008b'。
https://docs.microsoft.com/azure-stack/user/azure-stack-key-vault-manage-portal如需如何建立金鑰並取得其 URI 的步驟,請參閱。
- hbi_workspace
- bool
指定工作區是否包含高業務影響 (HBI) 的資料,亦即包含敏感性商務資訊。 此旗標只能在工作區建立期間設定。 建立工作區之後,就無法變更其值。 預設值是 False。
當設定為 True 時,會執行進一步的加密步驟,並根據 SDK 元件,在內部收集的遙測中產生修訂的資訊。 如需詳細資訊,請參閱 資料加密。
當此旗標設定為 True 時,其中一個可能的影響疑難排解問題更困難。 這是因為某些遙測不會傳送到 Microsoft,而且成功率或問題類型不明顯,因此,當此旗標為 True 時,可能無法主動回應。 除非嚴格需要為 True,否則建議會針對此旗標使用預設值 False。
- default_cpu_compute_target
- AmlComputeProvisioningConfiguration
(已被取代) 將用來建立 CPU 計算的組態。 參數預設為 {min_nodes=0,max_nodes=2,vm_size=「STANDARD_DS2_V2」, vm_priority=「dedicated」} 如果無,將不會建立計算。
- default_gpu_compute_target
- AmlComputeProvisioningConfiguration
(已被取代) 將用來建立 GPU 計算的組態。 參數預設為 {min_nodes=0,max_nodes=2,vm_size=「STANDARD_NC6」, vm_priority=「dedicated」} If None,將不會建立任何計算。
- private_endpoint_auto_approval
- bool
布林值旗標,表示是否應該從Azure Private Link中心自動核准或手動核准私人端點建立。 在手動核准的情況下,使用者可以在Private Link入口網站中檢視擱置的要求,以核准/拒絕要求。
- exist_ok
- bool
指出如果工作區已經存在,這個方法是否成功。 如果為 False,則如果工作區存在,這個方法就會失敗。 如果為 True,這個方法會在存在時傳回現有的工作區。
- system_datastores_auth_mode
- str
判斷是否要使用工作區 'workspaceblobstore' 和 'workspacefilestore' 的系統資料存放區認證。 預設值為 'accessKey',在此情況下,工作區會建立具有認證的系統資料存放區。 如果設定為 「身分識別」,工作區將會建立沒有認證的系統資料存放區。
傳回
工作區物件。
傳回類型
例外狀況
建立工作區時發生問題。
備註
第一個範例只需要最少的規格,而且會自動建立所有相依資源以及資源群組。
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2')
下列範例示範如何使用 Azure 資源識別碼格式重複使用現有的 Azure 資源。 您可以透過 Azure 入口網站或 SDK 擷取特定的 Azure 資源識別碼。 這假設資源群組、儲存體帳戶、金鑰保存庫、App Insights 和容器登錄已經存在。
import os
from azureml.core import Workspace
from azureml.core.authentication import ServicePrincipalAuthentication
service_principal_password = os.environ.get("AZUREML_PASSWORD")
service_principal_auth = ServicePrincipalAuthentication(
tenant_id="<tenant-id>",
username="<application-id>",
password=service_principal_password)
ws = Workspace.create(name='myworkspace',
auth=service_principal_auth,
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=False,
location='eastus2',
friendly_name='My workspace',
storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
exist_ok=False)
delete
刪除 Azure Machine Learning 工作區相關聯的資源。
delete(delete_dependent_resources=False, no_wait=False)
參數
- delete_dependent_resources
- bool
是否要刪除與工作區相關聯的資源,也就是容器登錄、儲存體帳戶、金鑰保存庫和 Application Insights。 預設值是 False。 設定為 True 以刪除這些資源。
傳回
如果成功,則無;否則,會擲回錯誤。
傳回類型
delete_connection
delete_private_endpoint_connection
刪除工作區的私人端點連線。
delete_private_endpoint_connection(private_endpoint_connection_name)
參數
diagnose_workspace
診斷工作區設定問題。
diagnose_workspace(diagnose_parameters)
參數
- diagnose_parameters
- <xref:_restclient.models.DiagnoseWorkspaceParameters>
診斷工作區健康情況的參數
傳回
傳回 DiagnoseResponseResult 的 AzureOperationPoller 實例
傳回類型
from_config
從現有的 Azure Machine Learning 工作區傳回工作區物件。
從檔案讀取工作區組態。 如果找不到組態檔,則會擲回例外狀況。
方法提供在多個 Python 筆記本或專案中重複使用相同工作區的簡單方式。 使用者可以使用 write_config 方法來儲存工作區 Azure Resource Manager (ARM) 屬性,並使用此方法在不同的 Python 筆記本或專案中載入相同的工作區,而不需重新系結工作區 ARM 屬性。
static from_config(path=None, auth=None, _logger=None, _file_name=None)
參數
驗證物件。 如需詳細資訊,請參閱 https://aka.ms/aml-notebook-auth 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
傳回
現有 Azure ML 工作區的工作區物件。
傳回類型
get
傳回現有 Azure Machine Learning 工作區的工作區物件。
如果工作區不存在,或必要的欄位無法唯一識別工作區,則會擲回例外狀況。
static get(name, auth=None, subscription_id=None, resource_group=None, location=None, cloud='AzureCloud', id=None)
參數
驗證物件。 如需詳細資訊, https://aka.ms/aml-notebook-auth 請參閱 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
- cloud
- str
目標雲端的名稱。 可以是 「AzureCloud」、「AzureChinaCloud」 或 「AzureUSGovernment」 的其中一個。 如果未指定任何雲端,則會使用 「AzureCloud」。
傳回
工作區物件。
傳回類型
get_connection
get_default_compute_target
取得工作區的預設計算目標。
get_default_compute_target(type)
參數
傳回
指定計算類型的預設計算目標。
傳回類型
get_default_datastore
get_default_keyvault
get_details
傳回工作區的詳細資料。
get_details()
傳回
字典格式的工作區詳細資料。
傳回類型
備註
傳回的字典包含下列索引鍵/值組。
id:指向此工作區資源的 URI,其中包含訂用帳戶識別碼、資源群組和工作區名稱。
name:此工作區的名稱。
位置:工作區區域。
type:格式為 「{providerName}/workspaces」 的 URI。
標記:目前未使用。
workspaceid:此工作區的識別碼。
描述:目前未使用。
friendlyName:UI 中顯示的工作區易記名稱。
creationTime:建立此工作區的時間,格式為 ISO8601。
containerRegistry:用來提取和推送實驗和 Web 服務映射的工作區容器登錄。
keyVault:用來儲存使用者新增至工作區的認證工作區金鑰保存庫。
applicationInsights:工作區將使用 Application Insights 來記錄 Webservices 事件。
identityPrincipalId:
identityTenantId
identityType
storageAccount:工作區將使用儲存體來儲存執行輸出、程式碼、記錄等。
sku:工作區 SKU (也稱為版本) 。 參數適用于回溯相容性,並會被忽略。
resourceCmkUri:客戶管理金鑰的金鑰 URI,用來加密待用資料。 https://docs.microsoft.com/en-us/azure-stack/user/azure-stack-key-vault-manage-portal?view=azs-1910如需如何建立金鑰並取得其 URI 的步驟,請參閱。
hbiWorkspace:指定客戶資料是否具有高業務影響。
imageBuildCompute:映射組建的計算目標。
systemDatastoresAuthMode:判斷是否要使用工作區 'workspaceblobstore' 和 'workspacefilestore' 的系統資料存放區認證。 預設值為 'accessKey',在此情況下,工作區會建立具有認證的系統資料存放區。 如果設定為 「身分識別」,工作區將會建立沒有認證的系統資料存放區。
如需這些機碼/值組的詳細資訊,請參閱 create 。
get_mlflow_tracking_uri
取得工作區的 MLflow 追蹤 URI。
MLflow (https://mlflow.org/) 是一個開放原始碼平臺,可用來追蹤機器學習實驗和管理模型。 您可以搭配 Azure Machine Learning 使用 MLflow 記錄 API,以便將計量、模型和成品記錄到您的 Azure Machine Learning 工作區。
get_mlflow_tracking_uri(_with_auth=False)
參數
傳回
MLflow 相容的追蹤 URI。
傳回類型
備註
使用下列範例來設定 MLflow 追蹤,將資料傳送至 Azure ML 工作區:
import mlflow
from azureml.core import Workspace
workspace = Workspace.from_config()
mlflow.set_tracking_uri(workspace.get_mlflow_tracking_uri())
get_run
list
列出使用者可在訂用帳戶記憶體取的所有工作區。
您可以根據資源群組篩選工作區清單。
static list(subscription_id, auth=None, resource_group=None)
參數
驗證物件。 如需詳細資訊, https://aka.ms/aml-notebook-auth 請參閱 。如果為 None,則會使用預設的 Azure CLI 認證,否則 API 會提示輸入認證。
傳回
索引鍵為工作區名稱且值為 Workspace 物件的清單的字典。
傳回類型
list_connections
列出此工作區下的連線。
list_connections(category=None, target=None)
參數
- category
list_keys
set_connection
在工作區下新增或更新連線。
set_connection(name, category, target, authType, value)
參數
set_default_datastore
setup
sync_keys
觸發工作區以立即同步處理金鑰。
如果工作區中任何資源的金鑰已變更,可能需要大約一小時的時間才能自動更新這些資源。 此函式可讓金鑰在要求時更新。 例如,在重新產生儲存體金鑰之後,需要立即存取儲存體。
sync_keys(no_wait=False)
參數
傳回
如果成功,則無;否則,會擲回錯誤。
傳回類型
update
更新易記名稱、描述、標籤、映射組建計算和其他與工作區相關聯的設定。
update(friendly_name=None, description=None, tags=None, image_build_compute=None, service_managed_resources_settings=None, primary_user_assigned_identity=None, allow_public_access_when_behind_vnet=None, v1_legacy_mode=None)
參數
- service_managed_resources_settings
- <xref:azureml._base_sdk_common.workspace.models.ServiceManagedResourcesSettings>
服務受控資源設定。
傳回
已更新資訊的字典。
傳回類型
update_dependencies
在下列情況下,更新工作區的現有相關聯資源。
) 當使用者不小心刪除現有的相關聯資源,而且想要以新的資源進行更新,而不需要重新建立整個工作區。 b) 當使用者擁有現有的相關聯資源,並想要取代與工作區相關聯的目前資源。 c) 當尚未建立相關聯的資源,而且他們想要使用它們已經擁有的現有資源, (僅適用于容器登錄) 。
update_dependencies(container_registry=None, force=False)
參數
傳回類型
write_config
將工作區 Azure Resource Manager (ARM) 屬性寫入組態檔。
稍後 from_config 可以使用 方法來載入工作區 ARM 屬性。 預設 path
為目前工作目錄中的 '.azureml/',預設 file_name
為 'config.json'。
方法提供在多個 Python 筆記本或專案中重複使用相同工作區的簡單方式。 使用者可以使用此函式儲存工作區 ARM 屬性,並使用from_config在不同的 Python 筆記本或專案中載入相同的工作區,而不需重新系結工作區 ARM 屬性。
write_config(path=None, file_name=None)
參數
屬性
compute_targets
datasets
datastores
discovery_url
environments
experiments
images
傳回工作區中的影像清單。
WebserviceException如果與模型管理服務互動時發生問題,則引發 。
傳回
索引鍵做為影像名稱和值做為 Image 物件的字典。
傳回類型
例外狀況
與模型管理服務互動時發生問題。
linked_services
location
models
傳回工作區中的模型清單。
WebserviceException如果與模型管理服務互動時發生問題,則引發 。
傳回
具有索引鍵做為模型名稱和值做為 Model 物件的模型字典。
傳回類型
例外狀況
與模型管理服務互動時發生問題。
name
private_endpoints
resource_group
service_context
傳回此工作區的服務內容。
傳回
會傳回 ServiceCoNtext 物件。
傳回類型
sku
subscription_id
tags
webservices
DEFAULT_CPU_CLUSTER_CONFIGURATION
DEFAULT_CPU_CLUSTER_CONFIGURATION = <azureml.core.compute.amlcompute.AmlComputeProvisioningConfiguration object>
DEFAULT_CPU_CLUSTER_NAME
DEFAULT_CPU_CLUSTER_NAME = 'cpu-cluster'
DEFAULT_GPU_CLUSTER_CONFIGURATION
DEFAULT_GPU_CLUSTER_CONFIGURATION = <azureml.core.compute.amlcompute.AmlComputeProvisioningConfiguration object>
DEFAULT_GPU_CLUSTER_NAME
DEFAULT_GPU_CLUSTER_NAME = 'gpu-cluster'
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應