Erstellen einer Compute-Instanz von Azure Machine Learning

GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Hier erfahren Sie, wie Sie eine Compute-Instanz in Ihrem Azure Machine Learning-Arbeitsbereich erstellen.

Nutzen Sie eine Compute-Instanz als Ihre vollständig konfigurierte und verwaltete Entwicklungsumgebung in der Cloud. Zu Entwicklungs- und Testzwecken können Sie die Instanz auch als Trainingscomputeziel verwenden. Computeinstanzen können mehrere Aufträge parallel ausführen und verfügen über eine Auftragswarteschlange. Da es sich bei einer Compute-Instanz um eine Entwicklungsumgebung handelt, kann diese nicht für andere in Ihrem Arbeitsbereich freigegeben werden.

In diesem Artikel erfahren Sie, wie Sie eine Compute-Instanz erstellen. Unter Verwalten einer Azure Machine Learning-Compute-Instanz finden Sie Schritte zum Verwalten des Startens, Beendens, Neustarts und Löschens einer Compute-Instanz.

Sie können auch ein Setupskript verwenden, um die Compute-Instanz mit Ihrer eigenen benutzerdefinierten Umgebung zu erstellen.

Sie können Aufträge sicher in einer virtuellen Netzwerkumgebung ausführen, ohne dass Unternehmen hierfür SSH-Ports öffnen müssen. Der Auftrag wird in einer Containerumgebung ausgeführt und packt die Abhängigkeiten Ihres Modells in einen Docker-Container.

Hinweis

In diesem Artikel wird in einigen Beispielen CLI v2 verwendet. Wenn Sie noch die CLI v1 verwenden, lesen Sie Erstellen eines Azure Machine Learning-Computeclusters (CLI v1).

Voraussetzungen

  • Ein Azure Machine Learning-Arbeitsbereich. Weitere Informationen finden Sie unter Erstellen eines Azure Machine Learning-Arbeitsbereichs. Im Speicherkonto muss die Option „Zugriff auf Speicherkontoschlüssel zulassen“ aktiviert sein, damit die Erstellung der Compute-Instanz erfolgreich ist.

Wählen Sie die Registerkarte für die verwendete Umgebung aus, um weitere Voraussetzungen anzuzeigen.

  • Um das Python SDK verwenden zu können, richten Sie Ihre Entwicklungsumgebung mit einem Arbeitsbereich ein. Sobald Ihre Umgebung eingerichtet ist, fügen Sie sie an den Arbeitsbereich in Ihrem Python-Skript an:

    GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

    Führen Sie diesen Code aus, um eine Verbindung mit Ihrem Azure ML-Arbeitsbereich herzustellen.

    Ersetzen Sie Ihre Abonnement-ID, den Namen der Ressourcengruppe und den Namen des Arbeitsbereichs in dem unten stehenden Code. So finden Sie diese Werte:

    1. Melden Sie sich bei Azure Machine Learning Studio an.
    2. Öffnen Sie den Arbeitsbereich, den Sie verwenden möchten.
    3. Wählen Sie auf der oben rechts angezeigten Azure Machine Learning Studio-Symbolleiste den Namen Ihres Arbeitsbereichs aus.
    4. Kopieren Sie den Wert für Arbeitsbereich, Ressourcengruppe und Abonnement-ID in den Code.
    5. Wenn Sie ein Notebook innerhalb von Studio verwenden, müssen Sie einen Wert kopieren, den Bereich schließen und einfügen und dann für den nächsten Wert zurückkehren.
    # Enter details of your AML workspace
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    workspace = "<AML_WORKSPACE_NAME>"
    # get a handle to the workspace
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    ml_client = MLClient(
        DefaultAzureCredential(), subscription_id, resource_group, workspace
    )

    ml_client ist ein Handler für den Arbeitsbereich, den Sie für die Verwaltung anderer Ressourcen und Aufträge verwenden.

Erstellen

Geschätzter Zeitaufwand: Ca. fünf Minuten.

Das Erstellen einer Compute-Instanz ist ein für Ihren Arbeitsbereich einmaliger Prozess. Sie können die Compute-Instanz als Entwicklungsarbeitsstation oder als Computeziel für das Training wiederverwenden. Sie können mehrere Compute-Instanzen an Ihren Arbeitsbereich anfügen.

Das Kontingent dedizierter Kerne pro Region pro VM-Familie und gesamte regionale Kontingent, das für die Erstellung von Compute-Instanzen gilt, ist einheitlich und wird mit dem Kontingent für Azure Machine Learning-Trainingcomputecluster gemeinsam genutzt. Das Beenden der Compute-Instanz gibt keine Kontingente frei. So wird sichergestellt, dass Sie die Compute-Instanz erneut starten können. Es ist nicht möglich, die Größe der VM einer Compute-Instanz zu ändern, nachdem sie erstellt wurde.

Der schnellste Weg, eine Compute-Instanz zu erstellen, ist die Anleitung Erstellen von Ressourcen, die Sie für den Einstieg benötigen.

Sie können auch die folgenden Beispiele verwenden, um eine Compute-Instanz mit weiteren Optionen zu erstellen:

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

# Compute Instances need to have a unique name across the region.
# Here we create a unique name with current datetime
from azure.ai.ml.entities import ComputeInstance, AmlCompute
import datetime

ci_basic_name = "basic-ci" + datetime.datetime.now().strftime("%Y%m%d%H%M")
ci_basic = ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2")
ml_client.begin_create_or_update(ci_basic).result()

Weitere Informationen zu den in diesem Beispiel verwendeten Klassen, Methoden und Parametern finden Sie in den folgenden Referenzdokumenten:

Sie können eine Compute-Instanz auch mit einer Azure Resource Manager-Vorlage erstellen.

Konfigurieren des Herunterfahrens bei Leerlauf

Sie können verhindern, dass Ihnen Kosten für eine aktivierte, aber inaktive Compute-Instanz in Rechnung gestellt werden, indem Sie konfigurieren, wann Ihre Compute-Instanz bei Inaktivität heruntergefahren werden soll.

Eine Compute-Instanz wird als inaktiv betrachtet, wenn die folgenden Bedingungen erfüllt sind:

  • Keine aktiven Jupyter-Kernelsitzungen (das heißt, keine Notebooknutzung über Jupyter-, JupyterLab- oder Interactive-Notebooks).
  • Keine aktiven Jupyter-Terminalsitzungen.
  • Keine aktiven Azure Machine Learning-Ausführungen oder -Experimente
  • Keine SSH-Verbindungen.
  • Keine VS Code-Verbindungen. Sie müssen Ihre VS Code-Verbindung für Ihre Compute-Instanz schließen, damit diese als inaktiv betrachtet wird. Sitzungen werden automatisch beendet, wenn VS Code drei Stunden lang keine Aktivität erkennt.
  • Auf der Compute-Instanz werden keine benutzerdefinierten Anwendungen ausgeführt.

Eine Compute-Instanz wird nicht als inaktiv betrachtet, wenn eine benutzerdefinierte Anwendung ausgeführt wird. Es gibt auch einige grundlegende Grenzen für Inaktivitätszeiten. Die Compute-Instanz muss für mindestens 15 Minuten und maximal drei Tage inaktiv sein.

Wenn eine Compute-Instanz bereits für eine bestimmte Zeit im Leerlauf war und die Einstellungen für das Herunterfahren im Leerlauf auf einen Zeitraum aktualisiert werden, der kürzer als die aktuelle Leerlaufdauer ist, wird die Leerlaufzeit zudem auf 0 zurückgesetzt. Wenn sich die Compute-Instanz beispielsweise bereits 20 Minuten im Leerlauf befindet und die Einstellungen für das Herunterfahren auf 15 Minuten aktualisiert werden, wird die Leerlaufzeit auf 0 zurückgesetzt.

Wichtig

Wenn die Compute-Instanz auch mit einer verwalteten Identität konfiguriert ist, wird die Compute-Instanz nicht aufgrund von Inaktivität heruntergefahren, es sei denn, die verwaltete Identität hat Mitwirkenden-Zugriff auf den Azure Machine Learning-Arbeitsbereich. Weitere Informationen zu Zugriffsberechtigungen finden Sie unter Verwalten des Zugriffs auf einen Azure Machine Learning-Arbeitsbereich.

Die Einstellung kann während der Erstellung einer Compute-Instanz oder für vorhandene Compute-Instanzen über die folgenden Schnittstellen konfiguriert werden:

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

Fügen Sie beim Erstellen einer neuen Compute-Instanz den Parameter idle_time_before_shutdown_minutes hinzu.

# Note that idle_time_before_shutdown has been deprecated.
ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2", idle_time_before_shutdown_minutes="30")

Sie können die Leerlaufzeit einer vorhandenen Compute-Instanz nicht mit dem Python SDK ändern.

Sie können die Leerlaufzeit auch wie folgt ändern:

  • REST-API

    Endpunkt:

    POST https://management.azure.com/subscriptions/{SUB_ID}/resourceGroups/{RG_NAME}/providers/Microsoft.MachineLearningServices/workspaces/{WS_NAME}/computes/{CI_NAME}/updateIdleShutdownSetting?api-version=2021-07-01
    

    Hauptteil:

    {
        "idleTimeBeforeShutdown": "PT30M" // this must be a string in ISO 8601 format
    }
    
  • ARM-Vorlagen: Nur konfigurierbar während der Erstellung einer neuen Compute-Instanz

    // Note that this is just a snippet for the idle shutdown property in an ARM template
    {
        "idleTimeBeforeShutdown":"PT30M" // this must be a string in ISO 8601 format
    }
    

Planen des automatischen Startens und Beendens

Definieren Sie mehrere Zeitpläne für automatisches Herunterfahren und automatisches Starten. Erstellen Sie beispielsweise einen Zeitplan, der von Montag bis Donnerstag um 9 Uhr morgens beginnt und um 18 Uhr endet, und einen zweiten Zeitplan, der um 9 Uhr morgens beginnt und um 16 Uhr endet, für Freitag. Sie können insgesamt vier Zeitpläne pro Compute-Instanz erstellen.

Zeitpläne können auch für Erstellen im Namen von Compute-Instanzen definiert werden. Sie können einen Zeitplan erstellen, mit dem die Compute-Instanz im angehaltenen Zustand erstellt wird. Angehaltene Compute-Instanzen sind nützlich, wenn Sie eine Compute-Instanz im Namen eines anderen Benutzers erstellen.

Vor einem geplanten Herunterfahren wird Benutzer*innen eine Benachrichtigung angezeigt, die sie darüber informiert, dass die Compute-Instanz in Kürze heruntergefahren wird. An diesem Punkt können die Benutzer*innen das bevorstehende Herunterfahren verwerfen, wenn sie z. B. ihre Compute-Instanz gerade verwenden.

Erstellen eines Zeitplans

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

from azure.ai.ml.entities import ComputeInstance, ComputeSchedules, ComputeStartStopSchedule, RecurrenceTrigger, RecurrencePattern
from azure.ai.ml.constants import TimeZone
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

# authenticate
credential = DefaultAzureCredential()

# Get a handle to the workspace
ml_client = MLClient(
    credential=credential,
    subscription_id="<SUBSCRIPTION_ID>",
    resource_group_name="<RESOURCE_GROUP>",
    workspace_name="<AML_WORKSPACE_NAME>",
)

ci_minimal_name = "ci-name"
ci_start_time = "2023-06-21T11:47:00" #specify your start time in the format yyyy-mm-ddThh:mm:ss

rec_trigger = RecurrenceTrigger(start_time=ci_start_time, time_zone=TimeZone.INDIA_STANDARD_TIME, frequency="week", interval=1, schedule=RecurrencePattern(week_days=["Friday"], hours=15, minutes=[30]))
myschedule = ComputeStartStopSchedule(trigger=rec_trigger, action="start")
com_sch = ComputeSchedules(compute_start_stop=[myschedule])

my_compute = ComputeInstance(name=ci_minimal_name, schedules=com_sch)
ml_client.compute.begin_create_or_update(my_compute)

Erstellen eines Zeitplans mithilfe einer Resource Manager-Vorlage

Sie können den automatischen Start und Stopp einer Compute-Instanz planen, indem Sie eine Ressourcenmanager-Vorlage verwenden.

Fügen Sie in der Ressourcenmanager-Vorlage hinzu:

"schedules": "[parameters('schedules')]"

Verwenden Sie dann entweder cron- oder LogicApps-Ausdrücke, um den Zeitplan für das Starten oder Stoppen der Instanz in Ihrer Parameterdatei zu definieren:

  "schedules": {
    "value": {
      "computeStartStop": [
        {
          "triggerType": "Cron",
          "cron": {
            "timeZone": "UTC",
            "expression": "0 18 * * *"
          },
          "action": "Stop",
          "status": "Enabled"
        },
        {
          "triggerType": "Cron",
          "cron": {
            "timeZone": "UTC",
            "expression": "0 8 * * *"
          },
          "action": "Start",
          "status": "Enabled"
        },
        {
          "triggerType": "Recurrence",
          "recurrence": {
            "frequency": "Day",
            "interval": 1,
            "timeZone": "UTC",
            "schedule": {
              "hours": [17],
              "minutes": [0]
            }
          },
          "action": "Stop",
          "status": "Enabled"
        }
      ]
    }
  }
  • Die Aktion kann den Wert Start oder Stop aufweisen.

  • Für den Auslösertyp Recurrence verwenden Sie dieselbe Syntax wie für LogicApps mit diesem -Serienschema.

  • Für den Auslösertyp cron verwenden Sie die Standard-Cron-Syntax:

    // Crontab expression format: 
    // 
    // * * * * * 
    // - - - - - 
    // | | | | | 
    // | | | | +----- day of week (0 - 6) (Sunday=0) 
    // | | | +------- month (1 - 12) 
    // | | +--------- day of month (1 - 31) 
    // | +----------- hour (0 - 23) 
    // +------------- min (0 - 59) 
    // 
    // Star (*) in the value field above means all legal values as in 
    // braces for that column. The value column can have a * or a list 
    // of elements separated by commas. An element is either a number in 
    // the ranges shown above or two numbers in the range separated by a 
    // hyphen (meaning an inclusive range). 
    

Azure Policy-Unterstützung zur Vorgabe eines Zeitplans

Verwenden Sie die Azure-Policy, um für jede Compute-Instanz in einem Abonnement einen Zeitplan für das Herunterfahren zu erzwingen, oder verwenden Sie standardmäßig einen Zeitplan, wenn nichts vorhanden ist. Nachfolgend finden Sie ein Beispiel für eine Richtlinie, die das Herunterfahren um 22.00 Uhr PST vorsieht.

{
    "mode": "All",
    "policyRule": {
     "if": {
      "allOf": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
        "equals": "ComputeInstance"
       },
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "exists": "false"
       }
      ]
     },
     "then": {
      "effect": "append",
      "details": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "value": {
         "computeStartStop": [
          {
           "triggerType": "Cron",
           "cron": {
            "startTime": "2021-03-10T21:21:07",
            "timeZone": "Pacific Standard Time",
            "expression": "0 22 * * *"
           },
           "action": "Stop",
           "status": "Enabled"
          }
         ]
        }
       }
      ]
     }
    }
}

Erstellen im Namen von

Als Administrator können Sie im Namen einer wissenschaftlichen Fachkraft für Daten eine Compute-Instanz erstellen und ihr die Instanz mit der folgenden Methode zuweisen:

Zuweisen einer verwalteten Identität

Sie können einer Compute-Instanz eine system- oder benutzerseitig zugewiesene verwaltete Identität zuweisen, um sich gegenüber anderen Azure-Ressourcen wie einem Speicher zu authentifizieren. Die Verwendung von verwalteten Identitäten für die Authentifizierung trägt zur Verbesserung der Sicherheit und Verwaltung des Arbeitsbereichs bei. Sie können z. B. Benutzern den Zugriff auf Trainingsdaten nur gestatten, wenn sie bei einer Compute-Instanz angemeldet sind. Oder verwenden Sie eine gemeinsame benutzerseitig zugewiesene verwaltete Identität, um den Zugriff auf ein bestimmtes Speicherkonto zu ermöglichen.

Wichtig

Wenn die Compute-Instanz auch für Herunterfahren im Leerlauf konfiguriert ist, wird die Compute-Instanz nicht aufgrund von Inaktivität heruntergefahren, es sei denn, die verwaltete Identität hat Mitwirkenden-Zugriff auf den Azure Machine Learning-Arbeitsbereich. Weitere Informationen zu Zugriffsberechtigungen finden Sie unter Verwalten des Zugriffs auf einen Azure Machine Learning-Arbeitsbereich.

Verwenden Sie das SDK V2, um eine Compute-Instanz mit systemseitig zugewiesener verwalteter Identität zu erstellen:

from azure.ai.ml import MLClient
from azure.identity import ManagedIdentityCredential
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
credential = ManagedIdentityCredential(client_id=client_id)
ml_client = MLClient(credential, sub_id, rg_name, ws_name)
data = ml_client.data.get(name=data_name, version="1")

Sie können auch SDK V1 verwenden:

from azureml.core.authentication import MsiAuthentication
from azureml.core import Workspace
client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
auth = MsiAuthentication(identity_config={"client_id": client_id})
workspace = Workspace.get("chrjia-eastus", auth=auth, subscription_id="381b38e9-9840-4719-a5a0-61d9585e1e91", resource_group="chrjia-rg", location="East US")

Nachdem die verwaltete Identität erstellt wurde, erteilen Sie der verwalteten Identität mindestens die Rolle „Storage-Blobdatenleser“ für das Speicherkonto des Datenspeichers. Weitere Informationen finden Sie unter Zugreifen auf Speicherdienste. Wenn Sie dann an der Compute-Instanz arbeiten, wird die verwaltete Identität automatisch zur Authentifizierung bei Datenspeichern verwendet.

Hinweis

Der Name der erstellten systemseitig verwalteten Identität hat in Microsoft Entra ID dieses Format: /workspace-name/computes/compute-instance-name.

Sie können die verwaltete Identität auch manuell zur Authentifizierung bei anderen Azure-Ressourcen verwenden. Das folgende Beispiel zeigt, wie Sie es verwenden, um ein Azure Resource Manager-Zugriffstoken abzurufen:

import requests

def get_access_token_msi(resource):
    client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
    resp = requests.get(f"{os.environ['MSI_ENDPOINT']}?resource={resource}&clientid={client_id}&api-version=2017-09-01", headers={'Secret': os.environ["MSI_SECRET"]})
    resp.raise_for_status()
    return resp.json()["access_token"]

arm_access_token = get_access_token_msi("https://management.azure.com")

Wenn Sie die Azure CLI mit der verwalteten Identität für die Authentifizierung verwenden möchten, geben Sie bei der Anmeldung die Client-ID der Identität als Benutzernamen an:

az login --identity --username $DEFAULT_IDENTITY_CLIENT_ID

Hinweis

Sie können azcopy nicht verwenden, wenn Sie versuchen, eine verwaltete Identität zu verwenden. azcopy login --identity funktioniert nicht.

Aktivieren des SSH-Zugriffs

Der SSH-Zugriff ist standardmäßig deaktiviert. Der SSH-Zugriff kann nach der Erstellung nicht aktiviert oder deaktiviert werden. Stellen Sie sicher, dass Sie den Zugriff aktivieren, wenn Sie vorhaben, interaktiv mit VS Code Remote zu debuggen.

Nach Auswahl von Weiter: Erweiterte Einstellungen:

  1. Aktivieren Sie die Option SSH-Zugriff aktivieren.
  2. Wählen Sie als Quelle für öffentlichen SSH-Schlüssel eine der folgenden Optionen in der Dropdownliste aus:
    • Bei Verwendung von Neues Schlüsselpaar generieren:
      1. Geben Sie in Name des Schlüsselpaars einen Namen für den Schlüssel ein.
      2. Klicken Sie auf Erstellen.
      3. Wählen Sie Privaten Schlüssel herunterladen und Computeressource erstellen aus. Der Schlüssel wird üblicherweise in den Ordner Downloads heruntergeladen.
    • Wenn Sie In Azure vorhandenen öffentlichen Schlüssel verwenden auswählen, suchen Sie unter Gespeicherter Schlüssel nach dem Schlüssel, und wählen Sie ihn aus.
    • Wenn Sie Vorhandenen öffentlichen Schlüssel verwenden auswählen, geben Sie einen öffentlichen RSA-Schlüssel im einzeiligen Format (beginnend mit „ssh-rsa“) oder im mehrzeiligen PEM-Format an. Sie können die SSH-Schlüssel mithilfe von „ssh-keygen“ unter Linux und OS X oder mit PuTTYGen unter Windows generieren.

Einrichten eines SSH-Schlüssels zu einem späteren Zeitpunkt

Obwohl SSH nach der Erstellung nicht aktiviert oder deaktiviert werden kann, haben Sie die Möglichkeit, einen SSH-Schlüssel auf einer SSH-fähigen Compute-Instanz zu einem späteren Zeitpunkt einzurichten. Dadurch können Sie den SSH-Schlüssel nach der Erstellung einrichten. Aktivieren Sie dazu SSH auf Ihrer Compute-Instanz, und wählen Sie „Später einen SSH-Schlüssel einrichten” als öffentliche SSH-Schlüsselquelle aus. Nachdem die Compute-Instanz erstellt wurde, können Sie die Detailseite Ihrer Compute-Instanz besuchen und auswählen, dass Sie Ihre SSH-Schlüssel bearbeiten möchten. An dieser Stelle können Sie Ihren SSH-Schlüssel hinzufügen.

Ein Beispiel für einen häufigen Anwendungsfall hierfür ist das Erstellen einer Compute-Instanz im Namen anderer Benutzer*innen (siehe Erstellen im Auftrag von). Wenn Sie eine Compute-Instanz im Namen anderer Benutzer*innen bereitstellen, können Sie SSH für die neuen Besitzer*innen der Compute-Instanz aktivieren, indem Sie Später einen SSH-Schlüssel einrichten auswählen. Die neuen Besitzer*innen der Compute-Instanz können dadurch für die neue Compute-Instanz einen SSH-Schlüssel einrichten, sobald die Compute-Instanz gemäß den oben beschriebenen Schritten erstellt und zugewiesen wurde.

Verbinden mit SSH

Nachdem Sie eine Compute mit aktiviertem SSH-Zugriff erstellt haben, verwenden Sie diese Schritte für den Zugriff.

  1. Suchen Sie die Computeressourcen in Ihren Arbeitsbereichsressourcen:

    1. Wählen Sie links Compute aus.
    2. Verwenden Sie die Registerkarten oben, um Compute-Instanz oder Computecluster für die Suche nach Ihrem Computer auszuwählen.
  2. Wählen Sie den Namen der Computeressource in der Liste der Ressourcen aus.

  3. Suchen Sie die Verbindungszeichenfolge:

    • Wählen Sie für eine Compute-Instanz die Option Verbinden am oberen Rand des Abschnitts Details aus.

      Screenshot that shows connect tool at the top of the Details page.

    • Wählen Sie für einen Compute-Cluster oben die Option Knoten und dann in der Tabelle die Verbindungszeichenfolge für Ihren Knoten aus. Screenshot that shows connection string for a node in a compute cluster.

  4. Kopieren Sie die Verbindungszeichenfolge.

  5. Unter Windows öffnen Sie PowerShell oder eine Eingabeaufforderung:

    1. Wechseln Sie in das Verzeichnis oder den Ordner, in dem Ihr Schlüssel gespeichert ist.

    2. Fügen Sie der Verbindungszeichenfolge das Flag „-i“ hinzu, um den privaten Schlüssel zu finden und auf seinen Speicherort zu verweisen:

      ssh -i <keyname.pem> azureuser@... (rest of connection string)

  6. Führen Sie für Linux-Benutzer die Schritte unter Erstellen und Verwenden eines SSH-Schlüsselpaars für virtuelle Linux-Computer in Azure aus.

  7. Für die SCP-Verwendung:

    scp -i key.pem -P {port} {fileToCopyFromLocal } azureuser@yourComputeInstancePublicIP:~/{destination}

  • REST-API

Die wissenschaftliche Fachkraft für Daten, für die Sie die Compute-Instanz erstellen, benötigt die folgenden Azure RBAC-Berechtigungen (rollenbasierte Zugriffssteuerung in Azure):

  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

Die wissenschaftliche Fachkraft für Daten kann die Compute-Instanz starten, beenden und neu starten. Sie kann die Compute-Instanz für folgende Zwecke verwenden:

  • Jupyter
  • JupyterLab
  • RStudio
  • Posit Workbench (früher RStudio Workbench)
  • Integrierte Notebooks

Hinzufügen benutzerdefinierter Anwendungen wie RStudio oder Posit Workbench

Sie können beim Erstellen einer Compute-Instanz andere Anwendungen einrichten, z. B. RStudio oder Posit Workbench (früher RStudio Workbench). Führen Sie die folgenden Schritte in Studio aus, um eine benutzerdefinierte Anwendung auf Ihrer Compute-Instanz einzurichten.

  1. Ausfüllen des Formulars zum Erstellen einer neuen Compute-Instanz
  2. Wählen Sie Anwendungen aus.
  3. Wählen Sie Anwendung hinzufügen aus.

Screenshot showing Custom Service Setup.

Einrichten von Posit Workbench (früher RStudio Workbench)

RStudio ist eine der beliebtesten IDEs unter R-Entwicklern für ML- und Data Science-Projekte. Sie können Posit Workbench (eine Entwicklungsumgebung, die Zugriff auf RStudio und andere Entwicklungstools bietet) ganz einfach mit Ihrer eigenen Posit-Lizenz zur Ausführung auf Ihrer Compute-Instanz einrichten und auf die umfangreichen Features von Posit Workbench zugreifen.

  1. Befolgen Sie beim Erstellen Ihrer Compute-Instanz die oben aufgeführten Schritte zum Hinzufügen von Anwendungen.
  2. Wählen Sie im Dropdownmenü Anwendung die Option Posit Workbench (Bring Your Own License) aus, und geben Sie Ihren Posit Workbench-Lizenzschlüssel in das Feld Lizenzschlüssel ein. Sie erhalten Ihre Posit Workbench-Lizenz oder Testlizenz von Posit.
  3. Klicken Sie auf Erstellen, um die Posit Workbench-Anwendung Ihrer Compute-Instanz hinzuzufügen.

Screenshot shows Posit Workbench settings.

Wichtig

Wenn Sie einen Arbeitsbereich mit einer privaten Verbindung verwenden, stellen Sie sicher, dass das Docker-Image, „pkg-containers.githubusercontent.com“ und „ghcr.io“ zugänglich sind. Verwenden Sie zudem einen veröffentlichten Port im Bereich 8704–8993. Stellen Sie bei Verwendung von Posit Workbench (früher RStudio Workbench) sicher, dass auf die Lizenz zugegriffen werden kann, indem Sie Netzwerkzugriff auf https://www.wyday.com bereitstellen.

Hinweis

  • Die Unterstützung für den Zugriff auf den Dateispeicher Ihres Arbeitsbereichs über Posit Workbench ist noch nicht verfügbar.
  • Wenn Sie auf mehrere Instanzen von Posit Workbench zugreifen, verwenden Sie bei der Anzeige des Fehlers „400 – Ungültige Anforderung. Anforderungsheader oder Cookie zu groß“ einen neuen Browser, oder greifen Sie über einen Browser im Inkognito-Modus zu.

Einrichten von RStudio (Open Source)

Um RStudio zu verwenden, richten Sie wie folgt eine benutzerdefinierte Anwendung ein:

  1. Befolgen Sie beim Erstellen Ihrer Compute-Instanz die oben aufgeführten Schritte zum Hinzufügen von Anwendungen.

  2. Wählen Sie in der Dropdownliste Anwendung die Option Benutzerdefinierte Anwendung aus.

  3. Konfigurieren Sie in Anwendungsname den gewünschten Namen für die Anwendung.

  4. Richten Sie die Anwendung zur Ausführung auf Zielport8787 ein. Das unten aufgeführte Docker-Image für RStudio (Open Source) muss auf diesem Zielport ausgeführt werden.

  5. Richten Sie die Anwendung für den Zugriff über den Veröffentlichungsport8787 ein. Wenn Sie möchten, können Sie die Anwendung für den Zugriff über einen anderen Veröffentlichungsport konfigurieren.

  6. Verweisen Sie das Docker-Image an ghcr.io/azure/rocker-rstudio-ml-verse:latest.

  7. Wählen Sie Erstellen aus, um RStudio als benutzerdefinierte Anwendung auf Ihrer Compute-Instanz einzurichten.

Screenshot shows form to set up RStudio as a custom application

Wichtig

Wenn Sie einen Arbeitsbereich mit einer privaten Verbindung verwenden, stellen Sie sicher, dass das Docker-Image, „pkg-containers.githubusercontent.com“ und „ghcr.io“ zugänglich sind. Verwenden Sie zudem einen veröffentlichten Port im Bereich 8704–8993. Stellen Sie bei Verwendung von Posit Workbench (früher RStudio Workbench) sicher, dass auf die Lizenz zugegriffen werden kann, indem Sie Netzwerkzugriff auf https://www.wyday.com bereitstellen.

Einrichten weiterer benutzerdefinierter Anwendungen

Richten Sie weitere benutzerdefinierte Anwendungen auf Ihrer Compute-Instanz ein, indem Sie die Anwendung in einem Docker-Image bereitstellen.

  1. Befolgen Sie beim Erstellen Ihrer Compute-Instanz die oben aufgeführten Schritte zum Hinzufügen von Anwendungen.
  2. Wählen Sie im Dropdownmenü Benutzerdefinierte Anwendung die Option Benutzerdefinierte Anwendung aus.
  3. Konfigurieren Sie einen Wert für Anwendungsname, den Zielport, über den Sie die Anwendung ausführen möchten, den Veröffentlichungsport, über den Sie auf die Anwendung zugreifen möchten und das Docker-Image, das Ihre Anwendung enthält. Wenn Ihr benutzerdefiniertes Image in einer Azure Container Registry-Instanz gespeichert ist, weisen Sie den Benutzer*innen der Anwendung die Rolle Mitwirkender zu. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Verwalten des Zugriffs auf einen Azure Machine Learning-Arbeitsbereich.
  4. Fügen Sie optional Umgebungsvariablen hinzu, die Sie für Ihre Anwendung verwenden möchten.
  5. Verwenden Sie Bindungsbereitstellungen, um den Zugriff auf die Dateien in Ihrem Standardspeicherkonto hinzuzufügen:
    • Geben Sie /home/azureuser/cloudfiles für Hostpfad an.
    • Geben Sie /home/azureuser/cloudfiles für Containerpfad an.
    • Wählen Sie Hinzufügen aus, um diese Einbindung hinzuzufügen. Da die Dateien eingebunden sind, stehen Änderungen, die Sie daran vornehmen, auch in anderen Compute-Instanzen und Anwendungen zur Verfügung.
  6. Wählen Sie Erstellen aus, um die benutzerdefinierte Anwendung auf Ihrer Compute-Instanz einzurichten.

Screenshot show custom application settings.

Wichtig

Wenn Sie einen Arbeitsbereich mit einer privaten Verbindung verwenden, stellen Sie sicher, dass das Docker-Image, „pkg-containers.githubusercontent.com“ und „ghcr.io“ zugänglich sind. Verwenden Sie zudem einen veröffentlichten Port im Bereich 8704–8993. Stellen Sie bei Verwendung von Posit Workbench (früher RStudio Workbench) sicher, dass auf die Lizenz zugegriffen werden kann, indem Sie Netzwerkzugriff auf https://www.wyday.com bereitstellen.

Zugreifen auf benutzerdefinierte Anwendungen in Studio

Greifen Sie auf die benutzerdefinierten Anwendungen zu, die Sie in Studio eingerichtet haben:

  1. Wählen Sie links Compute aus.
  2. Ihre Anwendungen werden auf der Registerkarte Compute-Instanz in der Spalte Anwendungen angezeigt.

Screenshot shows studio access for your custom applications.

Hinweis

Nach dem Einrichten einer benutzerdefinierten Anwendung kann es ein paar Minuten dauern, bis Sie über die Links darauf zugreifen können. Der Zeitaufwand hängt von der Größe des für Ihre Anwendung verwendeten Images ab. Wenn Sie beim Zugriff auf die Anwendung eine 502-Fehlermeldung erhalten, warten Sie einige Zeit, bis die Anwendung eingerichtet ist und versuchen Sie es erneut. Wenn das benutzerdefinierte Image aus einer Azure Container Registry-Instanz abgerufen wird, benötigen Sie die Rolle Mitwirkender für den Arbeitsbereich. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Verwalten des Zugriffs auf einen Azure Machine Learning-Arbeitsbereich.

Nächste Schritte