Sdílet prostřednictvím


Úloha Azure DevOps pro Azure Data Explorer

Azure DevOps Services poskytuje nástroje pro spolupráci pro vývoj, jako jsou vysoce výkonné kanály, bezplatné privátní úložiště Git, konfigurovatelné panely Kanbanu a rozsáhlé možnosti automatizovaného a průběžného testování. Azure Pipelines je funkce Azure DevOps, která umožňuje spravovat CI/CD a nasazovat kód pomocí vysoce výkonných kanálů, které fungují s libovolným jazykem, platformou a cloudem. Azure Data Explorer – Nástroje kanálu je úloha Azure Pipelines, která umožňuje vytvářet kanály verzí a nasazovat změny databáze do databází Azure Data Exploreru. Je k dispozici zdarma na webu Visual Studio Marketplace. Rozšíření zahrnuje následující základní úlohy:

  • Příkaz Azure Data Exploreru – Spuštění příkazů správce v clusteru Azure Data Exploreru

  • Dotaz Azure Data Exploreru – Spouštění dotazů na cluster Azure Data Exploreru a analýza výsledků

  • Brána dotazovacího serveru Azure Data Explorer – Úloha bez potřeby agenta pro kontrolu uvolnění v závislosti na výsledku dotazu

    Snímek obrazovky s zobrazením typů úloh dostupných v rozšíření Pipeline Tools

Tento dokument popisuje jednoduchý příklad použití úlohy Azure Data Explorer - Pipeline Tools k nasazení změn schématu do vaší databáze. Kompletní kanály CI/CD najdete v dokumentaci k Azure DevOps.

Požadavky

Příprava obsahu na vydání

Pomocí následujících metod můžete spouštět příkazy správce v clusteru v rámci úlohy:

Snímek obrazovky s možnostmi správy zdrojového kódu příkazu

  • Pomocí vzoru vyhledávání můžete získat více souborů příkazů z místní složky agenta (zdroje sestavení nebo artefakty vydané verze).

    Snímek obrazovky s možností místní složky

  • Napište příkazy na řádek.

    Snímek obrazovky s možností vloženého příkazu

  • Zadejte cestu k souboru pro získání souborů příkazů přímo ze správy zdrojového kódu Gitu (doporučeno).

    Snímek obrazovky znázorňující možnost souborů správy zdrojového kódu Git

    V úložišti Git vytvořte následující ukázkové složky (Funkce, Zásady, Tabulky). Zkopírujte soubory z úložiště ukázek do příslušných složek a potvrďte změny. Ukázkové soubory jsou k dispozici pro provedení následujícího pracovního postupu.

    Snímek obrazovky zobrazující složky, které se mají vytvořit v úložišti

    Tip

    Při vytváření vlastního pracovního postupu doporučujeme vytvořit idempotentní kód. Například použijte .create-merge table místo .create table a použijte funkci .create-or-alter místo funkce .create.

Vytvoření kanálu verze

  1. Přihlaste se ke své organizaci Azure DevOps.

  2. V nabídce vlevo vyberte Verze kanálů> a pak vyberte Nový kanál.

    Snímek obrazovky znázorňující, jak spustit nový kanál

  3. Otevře se okno Nový kanál verze. Na kartě Kanály v podokně Vybrat šablonu vyberte Prázdnou úlohu.

    Snímek obrazovky znázorňující, jak vybrat šablonu

  4. Vyberte tlačítko Fáze . V podokně Fáze přidejte Název fáze a pak vyberte Uložit, abyste uložili své potrubí.

    Snímek obrazovky znázorňující, jak pojmenovat fázi kanálu

  5. Vyberte Tlačítko Přidat artefakt . V podokně Přidat artefakt vyberte úložiště, ve kterém kód existuje, vyplňte relevantní informace a vyberte Přidat. Vyberte Uložit a kanál uložte.

    Snímek obrazovky znázorňující, jak přidat artefakt

  6. Na kartě Proměnné vyberte + Přidat a vytvořte proměnnou pro adresu URL koncového bodu použitou v úloze. Zadejte název a hodnotu koncového bodu a pak vyberte Uložit a kanál uložte.

    Snímek obrazovky znázorňující, jak vytvořit proměnnou kanálu

    Pokud chcete najít adresu URL koncového bodu, přejděte na stránku přehledu clusteru Azure Data Exploreru na webu Azure Portal a zkopírujte identifikátor URI clusteru. Vytvořte identifikátor URI proměnné v následujícím formátu https://<ClusterURI>?DatabaseName=<DBName>. Například https://kustodocs.westus.kusto.windows.net?DatabaseName=SampleDB

    Snímek obrazovky znázorňující, jak přidat hodnotu pro identifikátor URI clusteru Azure Data Exploreru

Vytvoření úlohy nasazení složek

  1. Na kartě Potrubí vyberte 1 úkol, 0 úkolů pro přidání úkolů.

    Snímek obrazovky znázorňující přidání úlohy do kanálu

  2. Opakováním následujících kroků vytvořte úlohy příkazů pro nasazení souborů ze složek Tabulky, Funkce a Zásady :

    Snímek obrazovky znázorňující, jak přidat příkaz správce Azure Data Exploreru

    1. Na kartě Úlohy vyberte + podle úlohy agenta a vyhledejte Azure Data Explorer.

    2. V části Spustit příkaz Azure Data Exploreru vyberte Přidat.

    3. Vyberte příkaz Kusto a aktualizujte úlohu následujícími informacemi:

      • Zobrazovaný název: Název úkolu. Kde je například název složky pro úlohu nasazení, Deploy <FOLDER><FOLDER> kterou vytváříte.

      • Cesta k souboru: Pro každou složku zadejte cestu, kde */<FOLDER>/*.csl<FOLDER> je příslušná složka úkolu.

      • Adresa URL koncového bodu: Zadejte proměnnou vytvořenou EndPoint URL v předchozím kroku.

      • Použít koncový bod služby: Vyberte tuto možnost.

      • Koncový bod služby: Vyberte existující koncový bod služby nebo vytvořte nový (+ Nový) a v okně Přidat připojení služby Azure Data Exploreru zadejte následující informace:

        Nastavení Navrhovaná hodnota
        Metoda ověřování Nastavte přihlašovací údaje federované identity (doporučeno) nebo vyberte ověřování instančního objektu (SPA).
        Název připojení Zadejte název pro identifikaci tohoto koncového bodu služby.
        Adresa URL clusteru Hodnotu najdete v části přehledu clusteru Azure Data Exploreru na webu Azure Portal.
        ID instančního objektu Zadejte ID aplikace Microsoft Entra (vytvořené jako předpoklad).
        Klíč aplikace instančního objektu Zadejte klíč aplikace Microsoft Entra (vytvořený jako předpoklad).
        ID tenanta Microsoft Entra Zadejte tenanta Microsoft Entra (například microsoft.com nebo contoso.com).

      Zaškrtněte políčko Povolit všem kanálům používat toto připojení a pak vyberte OK.

      Snímek obrazovky znázorňující, jak přidat připojení služby

  3. Vyberte Uložit a potom na kartě Úlohy ověřte, že existují tři úlohy: Nasazení tabulek, nasazení funkcí a zásady nasazení.

    Snímek obrazovky znázorňující, jak nasadit všechny složky

Vytvoření úlohy dotazu

V případě potřeby vytvořte úlohu, která spustí dotaz na cluster. Spouštění dotazů v kanálu buildu nebo verze se dá použít k ověření datové sady a k úspěšnému nebo neúspěšném kroku na základě výsledků dotazu. Kritéria úspěchu úkolů můžou být založená na prahové hodnotě počtu řádků nebo jedné hodnotě v závislosti na tom, co dotaz vrátí.

  1. Na kartě Úlohy vyberte + podle úlohy agenta a vyhledejte Azure Data Explorer.

  2. V části Spustit dotaz Azure Data Exploreru vyberte Přidat.

  3. Vyberte Dotaz Kusto a aktualizujte úlohu následujícími informacemi:

    • Zobrazovaný název: Název úkolu. Například cluster dotazů.
    • Typ: Vyberte vložený.
    • Dotaz: Zadejte dotaz, který chcete spustit.
    • Adresa URL koncového bodu: Zadejte proměnnou vytvořenou EndPoint URL dříve.
    • Použít koncový bod služby: Vyberte tuto možnost.
    • Koncový bod služby: Vyberte koncový bod služby.

    Snímek obrazovky znázorňující, jak vytvořit úlohu dotazu

  4. V části Výsledky úkolů vyberte kritéria úspěchu úkolu na základě výsledků dotazu následujícím způsobem:

    • Pokud dotaz vrátí řádky, vyberte Počet řádků a zadejte kritéria, která požadujete.

      Snímek obrazovky zobrazující dotaz vrátí řádky a nastaví prahové hodnoty počtu řádků

    • Pokud dotaz vrátí hodnotu, vyberte Jednu hodnotu a zadejte očekávaný výsledek.

      Snímek obrazovky zobrazující dotaz vrátí jednu hodnotu a nastaví očekávanou hodnotu.

Vytvoření úlohy Brány dotazovacího serveru

V případě potřeby vytvořte úlohu, která spustí dotaz na cluster a vyvrátí průběh vydání čekající na počet řádků výsledků dotazu. Úloha brány dotazů serveru je úloha bez agenta, což znamená, že dotaz běží přímo na Azure DevOps Serveru.

  1. Na kartě Úlohy vyberte + podle úlohy bez agenta a vyhledejte Azure Data Explorer.

  2. V části Spustit bránu dotazovacího serveru Azure Data Exploreru vyberte Přidat.

  3. Vyberte Bránu dotazovacího serveru Kusto a pak vyberte Test brány serveru.

    Snímek obrazovky znázorňující, jak vybrat úlohu Brány serveru

  4. Nakonfigurujte úlohu s následujícími informacemi:

    • Zobrazovaný název: Název brány.
    • Koncový bod služby: Vyberte koncový bod služby.
    • Název databáze: Zadejte název databáze.
    • Typ: Vyberte vložený dotaz.
    • Dotaz: Zadejte dotaz, který chcete spustit.
    • Maximální prahová hodnota: Zadejte maximální počet řádků pro kritéria úspěchu dotazu.

    Snímek obrazovky znázorňující, jak nakonfigurovat úlohu Brány serveru

Poznámka:

Při spuštění vydané verze by se měly zobrazit výsledky podobné následujícímu.

Snímek obrazovky znázorňující ukázkové výsledky úkolů Brány dotazů

Spuštění vydané verze

  1. Vyberte + Uvolnit>Vytvořit uvolnění, abyste mohli začít s vydáním.

    Snímek obrazovky znázorňující, jak vytvořit verzi

  2. Na kartě Protokoly zkontrolujte, jestli je stav nasazení úspěšný.

    Snímek obrazovky znázorňující úspěšné nasazení

Vytvoření kanálu verze pro nasazení do předprodukčního prostředí je teď hotové.

Podpora ověřování bez klíčů pro úlohy DevOps v Azure Data Exploreru

Rozšíření podporuje ověřování bez klíčů pro clustery Azure Data Exploreru. Ověřování bez klíčů umožňuje ověřování v clusterech Azure Data Exploreru bez použití klíče. Správa je bezpečnější a jednodušší.

Použití ověřování federovaných identit (FIC) v připojení služby Azure Data Explorer

  1. V instanci DevOps přejděte do >>

  2. Vyberte Přihlašovací údaje federované identity a zadejte adresu URL clusteru, ID instančního objektu, ID tenanta, název připojení služby a pak vyberte Uložit.

  3. Na webu Azure Portal otevřete aplikaci Microsoft Entra pro zadaný instanční objekt.

  4. V části Certifikáty a tajné kódy vyberte federované přihlašovací údaje.

    Snímek obrazovky znázorňující kartu federovaných přihlašovacích údajů aplikace Microsoft Entra

  5. Vyberte Přidat přihlašovací údaje a pak pro scénář federovaných přihlašovacích údajů vyberte Jiný vystavitel a vyplňte nastavení pomocí následujících informací:

    • Vystavitel: <https://vstoken.dev.azure.com/{System.CollectionId}> kde {System.CollectionId} je ID kolekce vaší organizace Azure DevOps. ID kolekce najdete následujícími způsoby:

      • V kanálu verze Azure DevOps Classic vyberte Inicializovat úlohu. ID kolekce se zobrazí v protokolech.
    • Identifikátor subjektu: <sc://{DevOps_Org_name}/{Project_Name}/{Service_Connection_Name}> kde {DevOps_Org_name} je název organizace Azure DevOps, {Project_Name} je název projektu a {Service_Connection_Name} je název připojení služby, který jste vytvořili dříve.

      Poznámka:

      Pokud je v názvu připojení k službě mezera, můžete ji použít s mezerou v poli. Například: sc://MyOrg/MyProject/My Service Connection.

    • Název: Zadejte název přihlašovacích údajů.

    Snímek obrazovky znázorňující, jak vytvořit nové připojení služby s přihlašovacími údaji federované identity

  6. Vyberte Přidat.

Použití přihlašovacích údajů federované identity nebo spravované identity v připojení ke službě Azure Resource Manager (ARM)

  1. V instanci DevOps přejděte na připojení>

    Snímek obrazovky znázorňující, jak přidat připojení služby Azure Resource Monitor

  2. V části Metoda ověřování vyberte Federaci identit úloh (automatická) a pokračujte. Můžete také použít ruční možnost Federace identit úloh (manuálně) k určení detailů Federace identit úloh nebo možnost Spravované identity. Přečtěte si další informace o nastavení spravované identity pomocí správy prostředků Azure v připojeních služeb Azure Resource Manageru (ARM).

    Snímek obrazovky znázorňující možnost ověřování pro připojení služby Azure Resource Monitor

  3. Vyplňte požadované podrobnosti, vyberte Ověřit a pak vyberte Uložit.

Konfigurace kanálu Yaml

Úlohy můžete nakonfigurovat pomocí webového uživatelského rozhraní Azure DevOps nebo kódu YAML v rámci schématu kanálu.

Ukázka příkazu správce

steps:
- task: Azure-Kusto.PublishToADX.PublishToADX.PublishToADX@4
  displayName: '<Task Name>'
  inputs:
    targetType: 'inline'
    script: '<inline Script>'
    waitForOperation: true
    kustoUrls: '$(CONNECTIONSTRING):443?DatabaseName=""'
    authType: 'armserviceconn'
    connectedServiceARM: '<ARM Service Endpoint Name>'
    serialDelay: 1000
  `continueOnError: true`
  condition: ne(variables['ProductVersion'], '') ## Custom condition Sample

Ukázka dotazu

steps:
- task: Azure-Kusto.PublishToADX.ADXQuery.ADXQuery@4
  displayName: '<Task Display Name>'
  inputs:
    targetType: 'inline'
    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=<DatabaseName>'
    authType: 'kustoserviceconn'
    connectedServiceName: '<connection service name>'
    minThreshold: '0'
    maxThreshold: '10'
  continueOnError: true