Integrare Azure Machine Learning con gli strumenti di DevOps

Completato

Si supponga di lavorare con un team di data science a 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, i ruoli sono in genere due:

  • 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 capire come viene configurata l'integrazione con Azure Machine Learning, si analizzerà come un amministratore connette in modo sicuro Azure DevOps e GitHub con Azure Machine Learning.

Configurare Azure DevOps

Per connettere Azure DevOps con Azure Machine Learning, prima sarà 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.

Una volta effettuato l'accesso, è possibile creare un'organizzazione.

New organization in Azure DevOps

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

New project in Azure DevOps

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

Connettere Azure DevOps ad Azure Machine Learning

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

Quando si crea una connessione al servizio, si definisce come 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 automaticamente un'entità servizio.

Un'entità servizio viene creata come identità in Microsoft Entra ID. Invece di 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 di 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 Azure Machine Learning e connettersi a un'area di lavoro di Azure Machine Learning esistente a cui si ha accesso.
  6. Concedi l'autorizzazione di accesso a tutte le pipeline.
  7. Assegnare un nome alla connessione al servizio. Il nome verrà usato ogni volta che sarà necessario autenticare Azure DevOps per gestire l'area di lavoro di Azure Machine Learning.

New service connection 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 sarà necessario creare un repository GitHub.

Per iniziare, accedere a GitHub.

Dopo aver effettuato l'accesso a GitHub, è possibile scegliere se il repository deve essere di proprietà di un singolo individuo o di un'organizzazione GitHub.

New repo in GitHub

Suggerimento

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

Connettere GitHub ad Azure Machine Learning

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

  • Creare un'entità servizio 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 è quella di inviare i 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

Una volta creata l'entità servizio, verrà restituito un testo JSON come output, che include le credenziali necessarie a GitHub 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. Seleziona Azioni.
  4. Aggiungere un elemento new repository secret.
  5. Immettere AZURE_CREDENTIALS come nome.
  6. Incollare il codice JSON di output con le credenziali e aggiungere il segreto.

New secret in GitHub

Dopo aver aggiunto il segreto a GitHub, è possibile usare il segreto AZURE_CREDENTIALS ogni volta che è necessaria l'autenticazione di GitHub per usare l'area di lavoro di Azure Machine Learning.

Suggerimento

Continuare la formazione relativa all'integrazione di GitHub con Azure Machine Learning ed esplorare come usare GitHub Actions con Azure Machine Learning. L'esercitazione usa il segreto AZURE_CREDENTIALS per connettersi ad Azure.