Integrieren von Azure Machine Learning in DevOps-Tools
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.
Innerhalb einer Organisation können Sie mehrere Projekte erstellen.
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:
- Navigieren Sie in einem Projekt zu Projekteinstellungen.
- Wählen Sie Dienstverbindungen aus, und erstellen Sie eine neue Dienstverbindung.
- Wählen Sie Azure Resource Manager aus.
- Wählen Sie Authentifizierung mit einem automatischen Dienstprinzipal aus.
- 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.
- Gewähren Sie allen Pipelines die Zugriffsberechtigung.
- Benennen Sie Ihre Dienstverbindung. Sie verwenden den Namen, wenn Sie Azure DevOps authentifizieren müssen, um den Azure Machine Learning-Arbeitsbereich zu verwalten.
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.
Tipp
Erfahren Sie mehr über die Verwendung von GitHub-Organisationen zum Verwalten von Repositorys.
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:
- Navigieren Sie zu den Einstellungen Ihres Repositorys.
- Navigieren Sie zur Seite Secrets (Geheimnisse).
- Wählen Sie Actions aus.
- Fügen Sie ein neues Repositorygeheimnis hinzu.
- Geben Sie
AZURE_CREDENTIALS
als Namen ein. - Fügen Sie den Text der JSON-Ausgabe mit den Anmeldeinformationen ein, und fügen Sie das Geheimnis hinzu.
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.