適用対象: Azure CLI ml 拡張機能 v2 (現行)
Azure CLI ml 拡張機能 v2 (現行)
Azure Machine Learning CLI を使用すると、コマンド ライン インターフェイスから直感的な YAML 構文とコマンドを使用して、Synapse Spark プールをアタッチして管理できます。
YAML 構文を使用してアタッチされた Synapse Spark プールを定義するには、YAML ファイルで次のプロパティをカバーする必要があります。
- name- アタッチされた Synapse Spark プールの名前。
 
- type- このプロパティを- synapsesparkに設定します。
 
- resource_id- このプロパティでは、Azure Synapse Analytics ワークスペースで作成された Synapse Spark プールのリソース ID 値を指定する必要があります。 Azure リソース ID には、次のものが含まれます
 - 
- Azure サブスクリプション ID、 
- リソース グループ名、 
- Azure Synapse Analytics ワークスペース名、 
- Synapse Spark プールの名前。 - name: <ATTACHED_SPARK_POOL_NAME>
type: synapsespark
resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>
 
 
- identity– このプロパティは、アタッチされた Synapse Spark プールに割り当てる ID の種類を定義します。 次のいずれかの値にすることができます。
 
- identityの種類が- user_assignedの場合、- user_assigned_identities値のリストも提供する必要があります。 各ユーザー割り当て ID は、ユーザー割り当て ID の- resource_id値を使用して、リストの要素として宣言する必要があります。 リスト内の最初のユーザー割り当て ID は、既定でジョブを送信するために使用されます。
 - name: <ATTACHED_SPARK_POOL_NAME>
type: synapsespark
resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>
identity:
  type: user_assigned
  user_assigned_identities:
    - resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<AML_USER_MANAGED_ID>
 
上記の YAML ファイルは、az ml compute attach パラメーターとして --file コマンドで使用できます。 Synapse Spark プールは、次に示すように az ml compute attach コマンドを使用して、サブスクリプションの指定されたリソース グループ内の Azure Machine Learning ワークスペースにアタッチできます。
az ml compute attach --file <YAML_SPECIFICATION_FILE_NAME>.yaml --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
このサンプルは、上記のコマンドの予想される出力を示しています。
Class SynapseSparkCompute: This is an experimental class, and may change at any time. Please visit https://aka.ms/azuremlexperimental for more information.
{
    "auto_pause_settings": {
    "auto_pause_enabled": true,
    "delay_in_minutes": 15
    },
    "created_on": "2022-09-13 19:01:05.109840+00:00",
    "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
    "___location": "eastus2",
    "name": "<ATTACHED_SPARK_POOL_NAME>",
    "node_count": 5,
    "node_family": "MemoryOptimized",
    "node_size": "Small",
    "provisioning_state": "Succeeded",
    "resourceGroup": "<RESOURCE_GROUP>",
    "resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
    "scale_settings": {
    "auto_scale_enabled": false,
    "max_node_count": 0,
    "min_node_count": 0
    },
    "spark_version": "3.2",
    "type": "synapsespark"
}
YAML 仕様ファイルで指定された名前を持つアタッチされた Synapse Spark プールがワークスペースに既に存在する場合、az ml compute attach コマンドを実行すると、YAML 仕様ファイルで提供された情報で既存のプールが更新されます。 次のものを更新できます。
YAML 仕様ファイルを使用した値
アタッチされた Synapse Spark プールの詳細を表示するには、az ml compute show コマンドを実行します。 次に示すように、--name パラメーターを使用して、アタッチされた Synapse Spark プールの名前を渡します。
az ml compute show --name <ATTACHED_SPARK_POOL_NAME> --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
このサンプルは、上記のコマンドの予想される出力を示しています。
<ATTACHED_SPARK_POOL_NAME>
{
    "auto_pause_settings": {
    "auto_pause_enabled": true,
    "delay_in_minutes": 15
    },
    "created_on": "2022-09-13 19:01:05.109840+00:00",
    "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
    "___location": "eastus2",
    "name": "<ATTACHED_SPARK_POOL_NAME>",
    "node_count": 5,
    "node_family": "MemoryOptimized",
    "node_size": "Small",
    "provisioning_state": "Succeeded",
    "resourceGroup": "<RESOURCE_GROUP>",
    "resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
    "scale_settings": {
    "auto_scale_enabled": false,
    "max_node_count": 0,
    "min_node_count": 0
    },
    "spark_version": "3.2",
    "type": "synapsespark"
}
ワークスペース内のアタッチされた Synapse Spark プールを含むすべてのコンピューティングのリストを表示するには、az ml compute list コマンドを使用します。 次に示すように、name パラメーターを使用してワークスペースの名前を渡します。
az ml compute list --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP> --workspace-name <AML_WORKSPACE_NAME>
このサンプルは、上記のコマンドの予想される出力を示しています。
[
    {
    "auto_pause_settings": {
        "auto_pause_enabled": true,
        "delay_in_minutes": 15
    },
    "created_on": "2022-09-09 21:28:54.871251+00:00",
    "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<AML_WORKSPACE_NAME>/computes/<ATTACHED_SPARK_POOL_NAME>",
    "identity": {
        "principal_id": "<PRINCIPAL_ID>",
        "tenant_id": "<TENANT_ID>",
        "type": "system_assigned"
    },
    "___location": "eastus2",
    "name": "<ATTACHED_SPARK_POOL_NAME>",
    "node_count": 5,
    "node_family": "MemoryOptimized",
    "node_size": "Small",
    "provisioning_state": "Succeeded",
    "resourceGroup": "<RESOURCE_GROUP>",
    "resource_id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>",
    "scale_settings": {
        "auto_scale_enabled": false,
        "max_node_count": 0,
        "min_node_count": 0
    },
    "spark_version": "3.2",
    "type": "synapsespark"
    },
    ...
]
適用対象:  Python SDK azure-ai-ml v2 (現行)
Python SDK azure-ai-ml v2 (現行)
Azure Machine Learning Python SDK には、Azure Machine Learning Notebooks の Python コードを使用して Synapse Spark プールをアタッチおよび管理するための便利な機能が用意されています。
Python SDK を使用して Synapse Compute をアタッチするには、まず azure.ai.ml.MLClient クラスのインスタンスを作成します。 これにより、Azure Machine Learning サービスと対話するための便利な機能が提供されます。 次のコード サンプルでは、azure.identity.DefaultAzureCredential を使用して、指定した Azure サブスクリプションのリソース グループ内のワークスペースに接続します。 次のコード サンプルでは、次のパラメーターを使用して SynapseSparkCompute を定義します。
- name- 新しくアタッチされた Synapse Spark プールのユーザー定義名。
- resource_id- Azure Synapse Analytics ワークスペースで前に作成した Synapse Spark プールのリソース ID
azure.ai.ml.MLClient.begin_create_or_update() 関数呼び出しにより、定義済みの Synapse Spark プールが Azure Machine Learning ワークスペースにアタッチされます。
from azure.ai.ml import MLClient
from azure.ai.ml.entities import SynapseSparkCompute
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_comp = SynapseSparkCompute(name=synapse_name, resource_id=synapse_resource)
ml_client.begin_create_or_update(synapse_comp)
システム割り当て ID を使用する Synapse Spark プールをアタッチするには、IdentityConfiguration を、型を SystemAssigned に設定して、identity クラスの SynapseSparkCompute パラメーターとして渡します。 このコード スニペットは、システム割り当て ID を使用する Synapse Spark プールをアタッチします。
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import SynapseSparkCompute, IdentityConfiguration
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_identity = IdentityConfiguration(type="SystemAssigned")
synapse_comp = SynapseSparkCompute(
    name=synapse_name, resource_id=synapse_resource, identity=synapse_identity
)
ml_client.begin_create_or_update(synapse_comp)
Synapse Spark プールでは、ユーザー割り当て ID を使用することもできます。 ユーザー割り当て ID の場合、IdentityConfiguration クラスを使用して、マネージド ID 定義を identity クラスの SynapseSparkCompute パラメーターとして渡すことができます。 この方法で使用されるマネージド ID 定義の場合は、type を UserAssigned に設定します。 さらに、user_assigned_identities パラメーターを渡します。 パラメーター user_assigned_identities は、UserAssignedIdentity クラスのオブジェクトのリストです。 ユーザー割り当て ID の resource_id が、各 UserAssignedIdentity クラス オブジェクトに入力されます。 このコード スニペットは、ユーザー割り当て ID を使用する Synapse Spark プールをアタッチします。
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
    SynapseSparkCompute,
    IdentityConfiguration,
    UserAssignedIdentity,
)
from azure.identity import DefaultAzureCredential
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<AML_WORKSPACE_NAME>"
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace_name
)
synapse_name = "<ATTACHED_SPARK_POOL_NAME>"
synapse_resource = "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Synapse/workspaces/<SYNAPSE_WORKSPACE_NAME>/bigDataPools/<SPARK_POOL_NAME>"
synapse_identity = IdentityConfiguration(
    type="UserAssigned",
    user_assigned_identities=[
        UserAssignedIdentity(
            resource_id="/subscriptions/<SUBSCRIPTION_ID/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<AML_USER_MANAGED_ID>"
        )
    ],
)
synapse_comp = SynapseSparkCompute(
    name=synapse_name, resource_id=synapse_resource, identity=synapse_identity
)
ml_client.begin_create_or_update(synapse_comp)
注
指定した名前のプールがまだワークスペースに存在しない場合、azure.ai.ml.MLClient.begin_create_or_update() 関数は新しい Synapse Spark プールをアタッチします。 ただし、指定した名前の Synapse Spark プールが既にワークスペースにアタッチされている場合、azure.ai.ml.MLClient.begin_create_or_update() 関数を呼び出すと、既存のアタッチされたプールが新しい ID で更新されます。