Integrieren von Azure Machine Learning in DevOps-Tools

Abgeschlossen

Stellen Sie sich vor, Sie arbeiten mit einem Data Science-Team an einem Projekt für maschinelles Lernen. Ihr Team kann wahlweise Azure DevOps oder GitHub verwenden, um die Aufgaben zu planen, das Coderepository zu speichern und Workflows zu automatisieren.

Bei beiden Tools gibt es in der Regel zwei Rollen:

  • Administrator: Legt die DevOps-Umgebung fest und verwaltet die Tools.
  • Endnutzer: Trägt zum Projekt bei, indem er an der Entwicklung mitarbeitet. Stellt eine Verbindung mit den Tools her, besitzt jedoch eingeschränkten Zugriff auf die Konfiguration der DevOps-Umgebung.

Der Administrator ist für die Verbindung von Azure Machine Learning mit Azure DevOps oder GitHub verantwortlich. Um zu verstehen, wie die Integration mit Azure Machine Learning eingerichtet wird, sehen wir uns an, wie ein Administrator Azure DevOps und GitHub sicher mit Azure Machine Learning verbinden würde.

Einrichten von Azure DevOps

Um Azure DevOps mit Azure Machine Learning zu verbinden, müssen Sie zunächst eine Organisation und ein Projekt erstellen. Sie verwenden die Organisation, um Projekte zu gruppieren und zu verwalten.

Melden Sie sich zunächst mit einem Microsoft- oder GitHub-Konto bei Azure DevOps an.

Sobald Sie angemeldet sind, können Sie eine Organisation erstellen.

New organization in Azure DevOps

Innerhalb einer Organisation können Sie mehrere Projekte erstellen.

New project in Azure DevOps

Für jedes Projekt haben Sie Zugriff auf Tools wie Boards, Repos und Pipelines, um DevOps-Prinzipien in Ihrem Projekt anzuwenden.

Verbinden von Azure DevOps mit Azure Machine Learning

Um sicher auf Ihren Azure Machine Learning-Arbeitsbereich aus Azure DevOps zuzugreifen, müssen Sie eine Dienstverbindung erstellen.

Wenn Sie eine Dienstverbindung erstellen, definieren Sie, wie Azure DevOps authentifiziert wird, um eine Verbindung mit einem anderen Dienst herzustellen. Wenn Sie mit Azure Machine Learning arbeiten, empfiehlt es sich, Azure DevOps einen Dienstprinzipal für Sie erstellen zu lassen.

Ein Dienstprinzipal wird als Identität in Microsoft Entra ID erstellt. Anstatt die Anmeldeinformationen eines Teammitglieds zu verwenden, um eine Verbindung mit Azure Machine Learning herzustellen, verwendet Azure DevOps die Anmeldeinformationen des Dienstprinzipals.

Wenn ein Azure DevOps-Projekt erstellt wird, können Sie eine Verbindung mit einem vorhandenen Azure Machine Learning-Arbeitsbereich herstellen:

  1. Navigieren Sie in einem Projekt zu Projekteinstellungen.
  2. Wählen Sie Dienstverbindungen aus, und erstellen Sie eine neue Dienstverbindung.
  3. Wählen Sie Azure Resource Manager aus.
  4. Wählen Sie Authentifizierung mit einem automatischen Dienstprinzipal aus.
  5. Legen Sie die Bereichsebene auf Machine Learning-Arbeitsbereich fest, und stellen Sie eine Verbindung mit einem vorhandenen Azure Machine Learning-Arbeitsbereich her, auf den Sie Zugriff besitzen.
  6. Gewähren Sie allen Pipelines die Zugriffsberechtigung.
  7. Benennen Sie Ihre Dienstverbindung. Sie verwenden den Namen, wenn Sie Azure DevOps authentifizieren müssen, um den Azure Machine Learning-Arbeitsbereich zu verwalten.

New service connection in Azure DevOps

Nachdem die Dienstverbindung erstellt wurde, werden Sie feststellen, dass ein neu erstellter Dienstprinzipal Mitwirkenderzugriff auf Ihren Azure Machine Learning-Arbeitsbereich besitzt.

Einrichten von GitHub

Um GitHub mit Azure Machine Learning zu verbinden, müssen Sie zunächst ein GitHub-Repository erstellen.

Beginnen Sie, indem Sie sich bei GitHub anmelden.

Nachdem Sie sich bei GitHub angemeldet haben, können Sie auswählen, ob Sie als Einzelperson Besitzer des Repositorys sein möchten oder ob eine GitHub-Organisation Besitzer sein soll.

New repo in GitHub

Verbinden von GitHub mit Azure Machine Learning

Um GitHub zum Automatisieren von Workflows für maschinelles Lernen zu verwenden, können Sie GitHub authentifizieren, um eine Verbindung mit Azure Machine Learning herzustellen. Um eine sichere Verbindung einzurichten, müssen Sie die folgenden Schritte ausführen:

  • Erstellen eines Dienstprinzipals in Azure.
  • Hinzufügen der Anmeldeinformationen des Dienstprinzipals zu den Geheimnissen des Repositorys.

Um einen Dienstprinzipal zu erstellen, können Sie die Azure CLI verwenden. Um mit der CLI zu arbeiten, besteht eine Option darin, Befehle in Azure-Cloud Shell zu übermitteln.

Sie können mit dem folgenden Befehl einen Dienstprinzipal namens github-aml-sp erstellen, der Mitwirkenderzugriff auf den Azure Machine Learning-Arbeitsbereich erhält:

az ad sp create-for-rbac --name "github-aml-sp" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name> \
                            --sdk-auth

Nachdem der Dienstprinzipal erstellt wurde, wird Ihnen ein JSON-Text als Ausgabe zurückgegeben, der die Anmeldeinformationen enthält, die GitHub zum Herstellen einer Verbindung mit Ihrer Azure-Ressourcengruppe benötigt. Kopieren Sie den JSON-Text, und speichern Sie ihn für den nächsten Schritt.

So speichern Sie diese Anmeldeinformationen in GitHub:

  1. Navigieren Sie zu den Einstellungen Ihres Repositorys.
  2. Navigieren Sie zur Seite Secrets (Geheimnisse).
  3. Wählen Sie Actions aus.
  4. Fügen Sie ein neues Repositorygeheimnis hinzu.
  5. Geben Sie AZURE_CREDENTIALS als Namen ein.
  6. Fügen Sie den Text der JSON-Ausgabe mit den Anmeldeinformationen ein, und fügen Sie das Geheimnis hinzu.

New secret in GitHub

Sobald das Geheimnis GitHub hinzugefügt wurde, können Sie das AZURE_CREDENTIALS-Geheimnis immer dann verwenden, wenn GitHub für die Arbeit mit Ihrem Azure Machine Learning-Arbeitsbereich authentifiziert werden muss.

Tipp

Setzen Sie Ihre Schulung zur Integration von GitHub mit Azure Machine Learning fort, und erfahren Sie, wie Sie GitHub Actions mit Azure Machine Learning verwenden können. Das Tutorial verwendet das AZURE_CREDENTIALS-Geheimnis, um eine Verbindung mit Azure herzustellen.