Attività Azure DevOps per Azure Esplora dati
Azure DevOps Services offre strumenti di collaborazione di sviluppo, ad esempio pipeline ad alte prestazioni, repository Git privati gratuiti, schede Kanban configurabili e funzionalità di test automatizzate e continue estese. Azure Pipelines è una funzionalità di Azure DevOps che consente di gestire CI/CD per distribuire il codice con pipeline ad alte prestazioni che funzionano con qualsiasi linguaggio, piattaforma e cloud. Azure Esplora dati- Pipeline Tools è l'attività Azure Pipelines che consente di creare pipeline di rilascio e distribuire le modifiche del database ai database di Azure Esplora dati. È disponibile gratuitamente in Visual Studio Marketplace. Questa estensione include 3 attività di base:
Comando di Azure Esplora dati - Eseguire comandi Amministrazione in un cluster di Esplora dati di Azure
Query di Azure Esplora dati - Eseguire query su un cluster di Azure Esplora dati e analizzare i risultati
Azure Esplora dati Query Server Gate - Attività senza agente per le versioni gate a seconda del risultato della query
Questo documento descrive un semplice esempio sull'uso dell'attività Azure Esplora dati - Strumenti pipeline per distribuire le modifiche dello schema al database. Per le pipeline CI/CD complete, vedere la documentazione di Azure DevOps.
Prerequisiti
- Una sottoscrizione di Azure. Creare un account Azure gratuito.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Configurazione del cluster di Azure Esplora dati:
- Creare Microsoft Entra'app eseguendo il provisioning di un'applicazione Microsoft Entra.
- Concedere l'accesso all'app Microsoft Entra nel database di Azure Esplora dati gestendo le autorizzazioni di database di Azure Esplora dati.
- Configurazione di Azure DevOps:
- Installazione estensione:
- Se si è il proprietario dell'istanza di Azure DevOps, installare l'estensione dal Marketplace.
- Se non si è il proprietario dell'istanza di Azure DevOps, contattare il proprietario e chiedere loro di installarlo.
Preparare il contenuto per la versione
Sono disponibili tre modi per eseguire comandi di amministratore nel cluster in un'attività.
Usare un modello di ricerca per ottenere più file di comando da una cartella dell'agente locale (origini di compilazione o artefatti versione)
Scrivere comandi inline
Specificare un percorso file per ottenere i file di comando direttamente dal controllo del codice sorgente Git (consigliato)
Creare le cartelle di esempio seguenti (Funzioni, Criteri, Tabelle) nel repository Git. Copiare i file da qui nelle rispettive cartelle, come illustrato di seguito e eseguire il commit delle modifiche. I file di esempio vengono forniti per eseguire il flusso di lavoro seguente.
Suggerimento
Quando si crea un flusso di lavoro personalizzato, è consigliabile creare l'idempotente del codice. Ad esempio, usare invece di
.create table
e usare.create-merge table
.create-or-alter
la funzione anziché la.create
funzione.
Creare una pipeline di versione
Accedere all'organizzazione Azure DevOps.
Selezionare Versioni> pipelinedal menu a sinistra e selezionare Nuova pipeline.
Verrà visualizzata la finestra Nuova pipeline di versione . Nella scheda Pipeline selezionare Processo vuoto nel riquadro Seleziona un modello.
Selezionare Il pulsante Fase . Nel riquadro Fase aggiungere il nome della fase. Selezionare Salva per salvare la pipeline.
Selezionare Aggiungi un elemento . Nel riquadro Aggiungi un artefatto selezionare il repository in cui esiste il codice, compilare informazioni pertinenti e fare clic su Aggiungi. Selezionare Salva per salvare la pipeline.
Nella scheda Variabili selezionare + Aggiungi per creare una variabile per l'URL dell'endpoint che verrà usato nell'attività. Scrivere il nome e il valore dell'endpoint. Selezionare Salva per salvare la pipeline.
Per trovare la Endpoint_URL, la pagina panoramica del cluster di Azure Esplora dati nell'portale di Azure contiene l'URI del cluster di Azure Esplora dati. Costruire l'URI nel formato
https://<Azure Data Explorer cluster URI>?DatabaseName=<DBName>
seguente. Ad esempio: https://kustodocs.westus.kusto.windows.net?DatabaseName=SampleDB
Creare attività per distribuire le cartelle
Nella scheda Pipeline fare clic su 1 processo, 0 attività per aggiungere attività.
Ripetere i passaggi seguenti per creare attività di comando per distribuire file dalle cartelle Tabelle, Funzioni e Criteri :
Nella scheda Attività selezionare + per processo agente e cercare Azure Esplora dati.
In Esegui comando di Azure Esplora dati selezionare Aggiungi.
Selezionare Comando Kusto e aggiornare l'attività con le informazioni seguenti:
Nome visualizzato: nome dell'attività. Ad esempio,
Deploy <FOLDER>
dove<FOLDER>
è il nome della cartella per l'attività di distribuzione che si sta creando.Percorso file: per ogni cartella specificare il percorso come
*/<FOLDER>/*.csl
dove<FOLDER>
è la cartella pertinente per l'attività.URL dell'endpoint: specificare la
EndPoint URL
variabile creata nel passaggio precedente.Usare l'endpoint di servizio: selezionare questa opzione.
Endpoint servizio: selezionare un endpoint di servizio esistente o crearne uno nuovo (+ Nuovo) fornendo le informazioni seguenti nella finestra Aggiungi connessione al servizio Esplora dati di Azure:
Impostazione Valore consigliato Nome connessione Immettere un nome per identificare l'endpoint del servizio Cluster Url Il valore è disponibile nella sezione panoramica del cluster di Azure Esplora dati nel portale di Azure ID entità servizio Immettere l'ID app Microsoft Entra (creato come prerequisito) Chiave app dell'entità servizio Immettere la chiave app Microsoft Entra (creata come prerequisito) ID tenant Microsoft Entra Immettere il tenant Microsoft Entra (ad esempio microsoft.com o contoso.com)
Selezionare Consenti a tutte le pipeline di usare questa casella di controllo connessione e quindi selezionare OK.
Selezionare Salva e quindi nella scheda Attività verificare che siano presenti tre attività: Distribuire tabelle, Distribuire funzioni e Distribuire criteri.
Creare un'attività Query
Se necessario, creare un'attività per eseguire una query sul cluster. L'esecuzione di query in una pipeline di compilazione o versione può essere usata per convalidare un set di dati e avere esito positivo o negativo in base ai risultati della query. I criteri di esito positivo delle attività possono essere basati su una soglia di conteggio delle righe o su un singolo valore a seconda del risultato restituito dalla query.
Nella scheda Attività selezionare + per processo agente e cercare Azure Esplora dati.
In Esegui query di Azure Esplora dati selezionare Aggiungi.
Selezionare Kusto Query e aggiornare l'attività con le informazioni seguenti:
- Nome visualizzato: nome dell'attività. Ad esempio, cluster di query.
- Tipo: selezionare Inline.
- Query: immettere la query da eseguire.
- URL dell'endpoint: specificare la
EndPoint URL
variabile creata in precedenza. - Usare l'endpoint di servizio: selezionare questa opzione.
- Endpoint servizio: selezionare un endpoint di servizio.
In Risultati attività selezionare i criteri di esito positivo dell'attività in base ai risultati della query, come indicato di seguito:
Se la query restituisce righe, selezionare Conteggio righe e specificare i criteri necessari.
Se la query restituisce un valore, selezionare Valore singolo e specificare il risultato previsto.
Creare un'attività Query Server Gate
Se necessario, creare un'attività per eseguire una query su un cluster e cancellare lo stato di avanzamento della versione in sospeso Conteggio righe risultati query. L'attività Server Query Gate è un processo senza agente, ovvero che la query viene eseguita direttamente nella Azure DevOps Server.
Nella scheda Attività selezionare + per processo senza agente e cercare Azure Esplora dati.
In Esegui Azure Esplora dati Query Server Gate selezionare Aggiungi.
Selezionare Kusto Query Server Gate e quindi selezionare Server Gate Test.
Configurare l'attività che fornisce le informazioni seguenti:
- Nome visualizzato: nome del gate.
- Endpoint servizio: selezionare un endpoint di servizio.
- Nome database: specificare il nome del database.
- Tipo: selezionare query inline.
- Query: immettere la query da eseguire.
- Soglia massima: specificare il numero massimo di righe per i criteri di esito positivo della query.
Nota
Quando si esegue la versione, i risultati dovrebbero essere visualizzati come segue.
Eseguire la versione
Selezionare + ReleaseCreate release (Crea versione>) per creare una versione.
Nella scheda Log controllare che lo stato della distribuzione sia riuscito.
È stata ora completata la creazione di una pipeline di versione per la distribuzione in fase di pre-produzione.
Configurazione della pipeline Yaml
Le attività possono essere configurate sia tramite l'interfaccia utente Web di Azure DevOps (come illustrato in precedenza) sia tramite il codice Yaml all'interno dello schema della pipeline
Utilizzo di esempio di comando Amministrazione
steps:
- task: Azure-Kusto.PublishToADX.PublishToADX.PublishToADX@1
displayName: '<Task Name>'
inputs:
script: '<inline Script>'
waitForOperation: true
kustoUrls: '$(CONNECTIONSTRING):443?DatabaseName=""'
customAuth: true
connectedServiceName: '<Service Endpoint Name>'
serialDelay: 1000
continueOnError: true
condition: ne(variables['ProductVersion'], '') ## Custom condition Sample
Utilizzo di esempio di query
steps:
- task: Azure-Kusto.PublishToADX.ADXQuery.ADXQuery@1
displayName: '<Task Display Name>'
inputs:
script: |
let badVer=
RunnersLogs | where Timestamp > ago(30m)
| where EventText startswith "$$runnerresult" and Source has "ShowDiagnostics"
| extend State = extract(@"Status='(.*)', Duration.*",1, EventText)
| where State == "Unhealthy"
| extend Reason = extract(@'"NotHealthyReason":"(.*)","IsAttentionRequired.*',1, EventText)
| extend Cluster = extract(@'Kusto.(Engine|DM|CM|ArmResourceProvider).(.*).ShowDiagnostics',2, Source)
| where Reason != "Merge success rate past 60min is < 90%"
| where Reason != "Ingestion success rate past 5min is < 90%"
| where Reason != "Ingestion success rate past 5min is < 90%, Merge success rate past 60min is < 90%"
| where isnotempty(Cluster)
| summarize max(Timestamp) by Cluster,Reason
| order by max_Timestamp desc
| where Reason startswith "Differe"
| summarize by Cluster
;
DimClusters | where Cluster in (badVer)
| summarize by Cluster , CmConnectionString , ServiceConnectionString ,DeploymentRing
| extend ServiceConnectionString = strcat("#connect ", ServiceConnectionString)
| where DeploymentRing == "$(DeploymentRing)"
kustoUrls: 'https://<ClusterName>.kusto.windows.net?DatabaseName=<DataBaneName>'
customAuth: true
connectedServiceName: '<Service Endpoint Name>'
continueOnError: true
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per