Integrare Azure Machine Learning con gli strumenti DevOps

Completato

Si supponga di lavorare con un team di data science in un progetto di Machine Learning. Il team può scegliere di usare Azure DevOps o GitHub per pianificare il lavoro, archiviare il repository di codice e automatizzare i flussi di lavoro.

Con entrambi i set di strumenti, esistono in genere due ruoli:

  • Amministratore: configura l'ambiente DevOps e gestisce gli strumenti.
  • Utente finale: contribuisce al progetto collaborando allo sviluppo. Si connette agli strumenti ma ha accesso limitato alla configurazione dell'ambiente DevOps.

L'amministratore è responsabile della connessione di Azure Machine Learning con Azure DevOps o GitHub. Per comprendere come viene configurata l'integrazione con Azure Machine Learning, si esaminerà come un amministratore connetterà in modo sicuro Azure DevOps e GitHub con Azure Machine Learning.

Configurare Azure DevOps

Per connettere Azure DevOps con Azure Machine Learning, è prima necessario creare un'organizzazione e un progetto. Si userà l'organizzazione per raggruppare e gestire i progetti.

Per iniziare, accedere ad Azure DevOps con un account Microsoft o GitHub.

Dopo l'accesso, è possibile creare un'organizzazione .

Nuova organizzazione in Azure DevOps

All'interno di un'organizzazione è possibile creare più progetti .

Nuovo progetto in Azure DevOps

Per ogni progetto, si avrà accesso a strumenti come Boards, Repos e Pipeline per applicare i principi DevOps nel progetto.

Connettere Azure DevOps ad Azure Machine Learning

Per accedere in modo sicuro all'area di lavoro di Azure Machine Learning da Azure DevOps, è necessario creare una connessione al servizio .

Quando si crea una connessione al servizio, si definisce il modo in cui Azure DevOps verrà autenticato per connettersi a un altro servizio. Quando si lavora con Azure Machine Learning, l'opzione consigliata è quella di consentire ad Azure DevOps di creare un principale del servizio per te.

Un'entità servizio viene creata come identità in Microsoft Entra ID. Anziché usare le credenziali di un membro del team per connettersi ad Azure Machine Learning, Azure DevOps usa le credenziali dell'entità servizio.

Quando viene creato un progetto Azure DevOps, è possibile connettersi a un'area di lavoro di Azure Machine Learning esistente:

  1. All'interno di un progetto passare a Impostazioni del progetto.
  2. Selezionare connessioni al servizio e crearne una nuova.
  3. Scegliere Azure Resource Manager.
  4. Scegliere di eseguire l'autenticazione con un'entità servizio automatica.
  5. Impostare il livello di ambito su Area di lavoro di Machine Learning e connettersi a un'area di lavoro di Azure Machine Learning esistente a cui si ha accesso.
  6. Concedere l'autorizzazione di accesso a tutte le pipeline.
  7. Dai un nome alla connessione al servizio. Si userà il nome ogni volta che è necessario autenticare Azure DevOps per gestire l'area di lavoro di Azure Machine Learning.

Nuova connessione al servizio in Azure DevOps

Dopo aver creato la connessione al servizio, si noterà che un'entità servizio appena creata ha accesso Collaboratore all'area di lavoro di Azure Machine Learning.

Configurare GitHub

Per connettere GitHub con Azure Machine Learning, è prima necessario creare un repository GitHub.

Per iniziare, accedere a GitHub.

Dopo aver eseguito l'accesso a GitHub, è possibile scegliere se si vuole essere proprietari del repository o se deve essere di proprietà di un'organizzazione GitHub.

Nuovo repository in GitHub

Suggerimento

Altre informazioni sull'uso di organizzazioni GitHub per gestire i repository.

Connettere GitHub con Azure Machine Learning

Per usare GitHub per automatizzare i flussi di lavoro di Machine Learning, è possibile autenticare GitHub per connettersi ad Azure Machine Learning. Per configurare una connessione sicura, è necessario:

  • Creare un service principal in Azure.
  • Aggiungere le credenziali dell'entità servizio ai segreti del repository.

Per creare un'entità servizio, è possibile usare l'interfaccia della riga di comando di Azure. Per usare l'interfaccia della riga di comando, un'opzione consiste nell'inviare comandi in Azure Cloud Shell.

È possibile creare un'entità servizio denominata github-aml-sp a cui verrà concesso l'accesso Collaboratore all'area di lavoro di Azure Machine Learning con il comando seguente:

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

Dopo aver creato l'entità servizio, viene restituito un testo JSON come output che include le credenziali di cui GitHub avrà bisogno per connettersi al gruppo di risorse di Azure. Copiare il testo JSON e salvarlo per il passaggio successivo.

Per archiviare queste credenziali in GitHub:

  1. Passare a Settings per il repository.
  2. Passare alla pagina Secrets.
  3. Selezionare Azioni.
  4. Aggiungere un nuovo segreto del repository.
  5. Immettere AZURE_CREDENTIALS come nome.
  6. Incollare il codice JSON di output con le credenziali e aggiungere il segreto.

Nuovo segreto in GitHub

Dopo aver aggiunto il segreto a GitHub, è possibile usare il segreto AZURE_CREDENTIALS ogni volta che è necessario che GitHub venga autenticato per lavorare con l'area di lavoro di Azure Machine Learning.

Suggerimento

Continuare l'apprendimento sull'integrazione di GitHub con Azure Machine Learning ed esplorare come usare GitHub Actions con Azure Machine Learning. Il tutorial usa il segreto AZURE_CREDENTIALS per connettersi ad Azure.