Freigeben über


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. Siehe Verwalten einer Azure Machine Learning-Computeinstanz für Schritte zum Starten, Beenden, Neustarten und Löschen einer Computeinstanz.

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

Computeinstanzen können Aufträge sicher in einer virtuellen Netzwerkumgebung ausführen, ohne dass Unternehmen 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 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 Den Speicherkontoschlüssel zulassen" aktiviert sein, damit die Erstellung von Computeinstanzen erfolgreich ausgeführt werden kann.

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

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

Ersetzen Sie Ihre Abonnement-ID, den Namen der Ressourcengruppe und den Namen des Arbeitsbereichs im folgenden 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 in der Azure Machine Learning Studio-Symbolleiste oben rechts den Namen Ihres Arbeitsbereichs aus.
  4. Kopieren Sie den Wert für Arbeitsbereich, Ressourcengruppe und Abonnement-ID in den Code.

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

# 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 Computeinstanz ist ein einmaliger Prozess für Ihren Arbeitsbereich. 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 Computeinstanz gibt kein Kontingent frei, um sicherzustellen, dass Sie die Computeinstanz neu starten können. Ein Kontingent ist ein Kreditlimit für Azure-Ressourcen, keine Kapazitätsgarantie. Das Neustarten einer Computeinstanz hängt weiterhin von der verfügbaren Kapazität der Region ab. Wenn in der Region für die SKU eine Kapazitätsknappung vorhanden ist, können Sie die Computeinstanz möglicherweise nicht neu starten. Es ist nicht möglich, die Größe des virtuellen Computers einer Computeinstanz 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 Klassen, Methoden und Parametern zum Erstellen einer Compute-Instanz 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 Computeinstanz wird als inaktiv betrachtet, wenn die folgenden Bedingungen erfüllt sind:

  • Keine aktiven Jupyter-Kernelsitzungen (die in keine Notizbücher-Verwendung über Jupyter, JupyterLab oder interaktive Notizbücher übersetzt werden)
  • Keine aktiven Jupyter-Terminalsitzungen
  • Keine aktiven Azure Machine Learning-Ausführungen oder -Experimente
  • 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 keine Aktivität für 3 Stunden 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. Um eine Berechnung automatisch mit einer benutzerdefinierten Anwendung herunterzufahren, muss ein Zeitplan eingerichtet werden, oder die benutzerdefinierte Anwendung muss entfernt werden. Es gibt auch einige grundlegende Grenzen in Bezug auf Inaktivitätszeiträume; Eine Computeinstanz muss mindestens 15 Minuten und maximal drei Tage lang inaktiv sein. Außerdem verfolgen wir VS Code SSH-Verbindungen nicht nach, um Aktivitäten zu ermitteln.

Wenn eine Computeinstanz bereits für eine bestimmte Zeit im Leerlauf war und die Einstellungen für das Herunterfahren im Leerlauf auf eine Zeit aktualisiert werden, die kürzer als die aktuelle Leerlaufdauer ist, wird die Leerlaufzeit auf 0 zurückgesetzt. Wenn die Computeinstanz beispielsweise bereits 20 Minuten im Leerlauf war und die Einstellungen für das Herunterfahren auf 15 Minuten aktualisiert werden, wird die Leerlaufzeit auf 0 zurückgesetzt.

Wichtig

Wenn die Azure Machine Learning-Arbeitsbereichsressource auch mit einer verwalteten Identität konfiguriert ist, wird die Compute-Instanz aufgrund von Inaktivität nicht heruntergefahren, es sei denn, die verwaltete Identität hat Mitwirkender-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 dem geplanten Herunterfahren wird benutzern eine Benachrichtigung angezeigt, in der sie darüber informiert werden, dass die Computeinstanz beendet wird. An diesem Punkt können die Benutzer*innen das bevorstehende Herunterfahren verwerfen, Wenn sie sich z. B. in der Mitte der Verwendung ihrer Computeinstanz befinden.

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

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 einen Wert von Start oder Stop.

  • Verwenden Sie für den Triggertyp Recurrencedieselbe Syntax wie Logik-Apps 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 Azure-Richtlinie, um zu erzwingen, dass für jede Computeinstanz in einem Abonnement oder standardmäßig ein Zeitplan vorhanden ist, falls keine vorhanden ist. Im Folgenden sehen Sie eine Beispielrichtlinie, um einen Zeitplan für das Herunterfahren auf 10:00 Uhr PST standardmäßig zu verwenden:

{
    "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:

Um die Sicherheit weiter zu verbessern, wird beim Erstellen einer Compute-Instanz im Namen der wissenschaftlichen Fachkraft für Daten und Zuweisen der Instanz an diese das einmalige Anmelden (Single Sign-On, SSO) deaktiviert, wenn die Compute-Instanz über ein Setupskript oder eine benutzerdefinierte App verfügt.

Der zugewiesene Benutzer muss SSO für die Computeinstanz selbst aktivieren, nachdem ihm die Berechnung zugewiesen wurde, indem die SSO-Einstellung für die Computeinstanz aktualisiert wird. Der zugewiesene Benutzer muss über die folgende Berechtigung/Aktion in seiner Rolle verfügen: MachineLearningServices/workspaces/computes/enableSso/action. Der zugewiesene Benutzer benötigt keine Computeschreibberechtigung (Erstellen), um SSO zu aktivieren.

Hier sind die Schritte, die der zugewiesene Benutzer ausführen muss. Beachten Sie, dass der Ersteller der Computeinstanz aus Sicherheitsgründen SSO für diese Computeinstanz nicht aktivieren darf.

  1. Wählen Sie " Berechnen " im linken Bereich im Azure Machine Learning Studio aus.

  2. Wählen Sie den Namen der Computeinstanz aus, in der Sie SSO aktivieren müssen.

  3. Bearbeiten Sie den Detailabschnitt für einmaliges Anmelden.

    Screenshot zeigt, dass SSO auf der Detailseite der Compute-Instanz vom zugewiesenen Benutzer aktualisiert werden kann.

  4. Aktivieren Sie den Umschalter für einmaliges Anmelden.

  5. Speichern Sie sie. Das Aktualisieren dauert einige Zeit.

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 SDK V2, um eine Computeinstanz mit einer vom System zugewiesenen verwalteten 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, subscription_id, resource_group, workspace)

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=subscription_id, resource_group=resource_group, ___location="East US")

Nachdem die verwaltete Identität erstellt wurde, erteilen Sie der verwalteten Identität mindestens die Rolle "Storage Blob Data Reader" für das Speicherkonto des Datenspeichers. Siehe Zugriff 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 vom System verwalteten Identität befindet sich im Format "/workspace-name/computes/compute-instance-name" in Ihrer Microsoft Entra-ID.

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. Von dort aus können Sie Ihren SSH-Schlüssel hinzufügen.

Ein Beispiel für einen allgemeinen Anwendungsfall hierfür ist das Erstellen einer Computeinstanz im Auftrag eines anderen Benutzers (siehe Erstellen im Auftrag von). Wenn Sie eine Computeinstanz im Namen eines anderen Benutzers bereitstellen, können Sie SSH für den neuen Computeinstanzbesitzer aktivieren, indem Sie später einen SSH-Schlüssel einrichten. Auf diese Weise kann der neue Besitzer der Computeinstanz seinen SSH-Schlüssel für seine neu erstellte Computeinstanz einrichten, nachdem er erstellt und ihnen nach den vorherigen Schritten 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, der das Verbindungstool oben auf der Seite Details zeigt.

    • 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, der die Verbindungszeichenfolge für einen Knoten in einem Compute-Cluster zeigt.

  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}

Der Datenwissenschaftler, den Sie für die Berechnungsinstanz erstellen, benötigt die folgenden Azure-rollenbasierten Zugriffssteuerungsberechtigungen (Azure RBAC ):

  • 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 in Ihrer Computeinstanz 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: Einrichten eines benutzerdefinierten Diensts

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 ganz einfach einrichten, die Zugriff auf RStudio zusammen mit anderen Entwicklungstools bietet, um auf Ihrer Computeinstanz auszuführen, ihre eigene Posit-Lizenz zu verwenden und auf den umfangreichen Featuresatz zuzugreifen, den Posit Workbench bietet.

  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 können Ihre Posit Workbench-Lizenz oder Testlizenz von Posit erhalten.
  3. Klicken Sie auf Erstellen, um die Posit Workbench-Anwendung Ihrer Compute-Instanz hinzuzufügen.

Screenshot: Posit Workbench-Einstellungen

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 für die Ausführung am Zielport8787 ein – das Docker-Image für die unten aufgeführte Open Source für RStudio muss auf diesem Zielport ausgeführt werden.

  5. Richten Sie die Anwendung für den Zugriff über den Veröffentlichungsport8787 ein. Bei Bedarf 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: Formular zum Einrichten von RStudio als benutzerdefinierte Anwendung

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 in der Dropdownliste "Anwendung" die Option "Benutzerdefinierte Anwendung" aus.
  3. Konfigurieren Sie den Anwendungsnamen, den Zielport , auf dem Sie die Anwendung ausführen möchten, den veröffentlichten Port , auf 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: Einstellungen der benutzerdefinierten Anwendung

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: Zugriff auf das Studio für Ihre benutzerdefinierten Anwendungen

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.