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

    Tipi di attività.

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

Preparare il contenuto per la versione

Sono disponibili tre modi per eseguire comandi di amministratore nel cluster in un'attività.

Opzioni di controllo del codice sorgente dei comandi.

  • Usare un modello di ricerca per ottenere più file di comando da una cartella dell'agente locale (origini di compilazione o artefatti versione)

    Opzione cartella locale.

  • Scrivere comandi inline

    Opzione di comando inline.

  • Specificare un percorso file per ottenere i file di comando direttamente dal controllo del codice sorgente Git (consigliato)

    Opzione File Git.

    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.

    Creare cartelle per il repository.

    Suggerimento

    Quando si crea un flusso di lavoro personalizzato, è consigliabile creare l'idempotente del codice. Ad esempio, usare invece di .create tablee usare .create-merge table.create-or-alter la funzione anziché la .create funzione.

Creare una pipeline di versione

  1. Accedere all'organizzazione Azure DevOps.

  2. Selezionare Versioni> pipelinedal menu a sinistra e selezionare Nuova pipeline.

    Nuova pipeline.

  3. Verrà visualizzata la finestra Nuova pipeline di versione . Nella scheda Pipeline selezionare Processo vuoto nel riquadro Seleziona un modello.

    Selezionare un modello.

  4. Selezionare Il pulsante Fase . Nel riquadro Fase aggiungere il nome della fase. Selezionare Salva per salvare la pipeline.

    Assegnare un nome alla fase.

  5. 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.

    Aggiungi un artefatto.

  6. 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.

    Creare una variabile.

    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

    URI del cluster di Azure Esplora dati.

Creare attività per distribuire le cartelle

  1. Nella scheda Pipeline fare clic su 1 processo, 0 attività per aggiungere attività.

    Aggiungere attività.

  2. Ripetere i passaggi seguenti per creare attività di comando per distribuire file dalle cartelle Tabelle, Funzioni e Criteri :

    Aggiungere comandi di amministratore.

    1. Nella scheda Attività selezionare + per processo agente e cercare Azure Esplora dati.

    2. In Esegui comando di Azure Esplora dati selezionare Aggiungi.

    3. 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.

      Aggiungere la connessione al servizio.

  3. Selezionare Salva e quindi nella scheda Attività verificare che siano presenti tre attività: Distribuire tabelle, Distribuire funzioni e Distribuire criteri.

    Distribuire tutte le cartelle.

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.

  1. Nella scheda Attività selezionare + per processo agente e cercare Azure Esplora dati.

  2. In Esegui query di Azure Esplora dati selezionare Aggiungi.

  3. 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.

    Attività di query.

  4. 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.

      Conteggio delle righe delle attività di query.

    • Se la query restituisce un valore, selezionare Valore singolo e specificare il risultato previsto.

      Eseguire query su un singolo valore dell'attività.

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.

  1. Nella scheda Attività selezionare + per processo senza agente e cercare Azure Esplora dati.

  2. In Esegui Azure Esplora dati Query Server Gate selezionare Aggiungi.

  3. Selezionare Kusto Query Server Gate e quindi selezionare Server Gate Test.

    Selezionare Attività Server Gate.

  4. 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.

    Configurare l'attività Server Gate.

Nota

Quando si esegue la versione, i risultati dovrebbero essere visualizzati come segue.

Attività Query Gate.

Eseguire la versione

  1. Selezionare + ReleaseCreate release (Crea versione>) per creare una versione.

    Creare una versione.

  2. Nella scheda Log controllare che lo stato della distribuzione sia riuscito.

    La distribuzione ha esito positivo.

È 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