Megosztás:


Azure DevOps-feladat az Azure Data Explorerhez

Az Azure DevOps Services olyan fejlesztési együttműködési eszközöket biztosít, mint a nagy teljesítményű folyamatok, az ingyenes privát Git-adattárak, a konfigurálható Kanban-táblák, valamint a kiterjedt automatizált és folyamatos tesztelési képességek. Az Azure Pipelines egy Azure DevOps-képesség, amely lehetővé teszi a CI/CD kezelését a kód olyan nagy teljesítményű folyamatokkal való üzembe helyezéséhez, amelyek bármilyen nyelvvel, platformmal és felhővel működnek. Az Azure Data Explorer – Pipeline Tools az Azure Pipelines-feladat, amellyel kiadási folyamatokat hozhat létre, és üzembe helyezheti az adatbázis módosításait az Azure Data Explorer-adatbázisokban. Ingyenesen elérhető a Visual Studio Marketplace-en. A bővítmény a következő alapvető feladatokat tartalmazza:

  • Azure Data Explorer-parancs – Rendszergazdai parancsok végrehajtása az Azure Data Explorer-fürtön

  • Azure Data Explorer-lekérdezés – Lekérdezések futtatása egy Azure Data Explorer-fürtön, és az eredmények elemzése

  • Azure Data Explorer lekérdezési szerver kapu – Ügynök nélküli művelet a kiadások engedélyezésére a lekérdezés eredményétől függően

    Képernyőkép a Pipeline Tools bővítményben elérhető feladattípusokról.

Ez a dokumentum egy egyszerű példát mutat be az Azure Data Explorer – Pipeline Tools feladat használatával sémamódosítások üzembe helyezésére az adatbázisban. A teljes CI/CD-folyamatokért tekintse meg az Azure DevOps dokumentációját.

Előfeltételek

A tartalom előkészítése a kiadásra

A következő módszerekkel hajthat végre rendszergazdai parancsokat egy feladaton belüli fürtön:

Képernyőkép a parancsforrás-vezérlési lehetőségekről.

  • Keresési minta használatával több parancsfájlt is lekérhet egy helyi ügynökmappából (forrásokat hozhat létre vagy kiadási összetevőket hozhat létre).

    Képernyőkép a helyi mappa beállításról.

  • Parancsokat írjon sorban.

    Képernyőkép a beágyazott parancs lehetőségről.

  • Adjon meg egy fájl elérési útját, amely közvetlenül a Git-forrásvezérlőből szeretné lekérni a parancsfájlokat (ajánlott).

    Képernyőkép a Git-forrásvezérlő fájlok beállításról.

    Hozza létre a következő mintamappákat (Functions, Policies, Tables) a Git-adattárban. Másolja a fájlokat a minta adattárból a megfelelő mappákba, és véglegesítse a módosításokat. A mintafájlok a következő munkafolyamat végrehajtásához vannak megadva.

    Képernyőkép az adattárban létrehozandó mappákról.

    Jótanács

    Saját munkafolyamat létrehozásakor javasoljuk a kód idempotenssé tételét. Használja például a .create-merge table helyett a .create table-t, és használja a .create-or-alter függvényt a .create függvény helyett.

Kiadási folyamat létrehozása

  1. Jelentkezzen be az Azure DevOps-szervezetbe.

  2. A bal oldali menüben válassza a Pipelines>Releases (Folyamatok kiadásai) lehetőséget, majd válassza az Új folyamat lehetőséget.

    Képernyőkép egy új folyamat indításáról.

  3. Megnyílik az Új kiadási folyamat ablak. A Folyamatok lapon, a Sablon kiválasztása panelen válassza az Üres feladat lehetőséget.

    Képernyőkép egy sablon kiválasztásáról.

  4. Válassza a Szakasz gombot. A Szakasz panelen adja hozzá a Szakasznevet, majd a Folyamat mentéséhez válassza a Mentés lehetőséget.

    Képernyőkép a folyamatszakasz elnevezéséről.

  5. Válassza az Összetevő hozzáadása gombot. Az Összetevő hozzáadása panelen válassza ki azt az adattárat, ahol a kód létezik, töltse ki a releváns információkat, és válassza a Hozzáadás lehetőséget. A folyamat mentéséhez válassza a Mentés lehetőséget.

    Képernyőkép az összetevő hozzáadásáról.

  6. A Változók lapon válassza a + Hozzáadás lehetőséget a feladatban használt végponti URL-cím változójának létrehozásához. Adja meg a végpont nevét és értékét , majd kattintson a Mentés gombra a folyamat mentéséhez.

    Folyamatváltozó létrehozását bemutató képernyőkép.

    A végpont URL-jának megkereséséhez nyissa meg az Azure Data Explorer-fürt áttekintési oldalát az Azure portálon, és másolja a fürt URI-ját. Hozza létre az URI változót a következő formátumban https://<ClusterURI>?DatabaseName=<DBName>. Például: https://kustodocs.westus.kusto.windows.net?DatabaseName=SampleDB

    Képernyőkép az Azure Data Explorer-fürt URI-jának értékének hozzáadásáról.

Feladat létrehozása a mappák üzembe helyezéséhez

  1. A Folyamat lapon válassza ki az 1 feladatot és a 0 feladatot a tevékenységek hozzáadásához.

    Képernyőkép egy tevékenység folyamathoz való hozzáadásáról.

  2. Ismételje meg az alábbi lépéseket a parancsfeladatok létrehozásához a táblák, függvények és szabályzatok mappáiból származó fájlok üzembe helyezéséhez:

    Képernyőkép az Azure Data Explorer rendszergazdai parancsának hozzáadásáról.

    1. A Feladatok lapon válassza ki +az Ügynökfeladatot , és keresse meg az Azure Data Explorert.

    2. Az Azure Data Explorer parancs futtatása alatt válassza a Hozzáadás lehetőséget.

    3. Válassza a Kusto parancsot , és frissítse a feladatot a következő információkkal:

      • Megjelenítendő név: A feladat neve. Például Deploy <FOLDER> hol <FOLDER> található a létrehozott üzembe helyezési feladat mappájának neve.

      • Fájl elérési útja: Minden mappához adja meg az elérési utat, ahol */<FOLDER>/*.csl<FOLDER> a feladathoz tartozó mappa található.

      • Végpont URL-címe: Adja meg az EndPoint URL előző lépésben létrehozott változót.

      • Szolgáltatásvégpont használata: Válassza ezt a lehetőséget.

      • Szolgáltatásvégpont: Válasszon ki egy meglévő szolgáltatásvégpontot, vagy hozzon létre egy újat (+ Új), amely a következő információkat adja meg az Azure Data Explorer szolgáltatáskapcsolati ablakában:

        Setting Ajánlott érték
        Hitelesítési módszer Állítsa be a Federated Identity Credentials (FIC) ( ajánlott), vagy válassza ki a Service Principal Authentication (SPA) lehetőséget.
        Kapcsolat neve Adjon meg egy nevet a szolgáltatásvégpont azonosításához
        Cluster URL Az érték az Azure Data Explorer-fürt áttekintési szakaszában található az Azure Portalon
        Szolgáltatásnév azonosítója Adja meg a Microsoft Entra alkalmazásazonosítóját (előfeltételként létrehozva)
        Szolgáltatásnév alkalmazáskulcsa Adja meg a Microsoft Entra alkalmazáskulcsot (előfeltételként létrehozva)
        Microsoft Entra bérlőazonosító Adja meg a Microsoft Entra-bérlőt (például microsoft.com vagy contoso.com)

      Jelölje be az összes folyamat számára a csatlakozás használatának engedélyezése jelölőnégyzetet, majd kattintson az OK gombra.

      A szolgáltatáskapcsolat hozzáadását bemutató képernyőkép.

  3. Válassza a Mentés lehetőséget, majd a Feladatok lapon ellenőrizze, hogy három tevékenység van-e: Táblák üzembe helyezése, Függvények üzembe helyezése és Szabályzatok telepítése.

    Képernyőkép az összes mappa üzembe helyezéséről.

Lekérdezési feladat létrehozása

Szükség esetén hozzon létre egy feladatot, amely lekérdezést futtat a klaszteren. A lekérdezések buildelési vagy kiadási folyamatban való futtatásával ellenőrizheti az adathalmazokat, és a lekérdezés eredményei alapján sikeres vagy sikertelen lépéseket hajthat végre. A tevékenységek sikerességi feltételei egy sorszám küszöbértékén vagy egyetlen értéken alapulhatnak attól függően, hogy a lekérdezés mit ad vissza.

  1. A Feladatok lapon válassza ki +az Ügynökfeladatot , és keresse meg az Azure Data Explorert.

  2. Az Azure Data Explorer-lekérdezés futtatása csoportban válassza a Hozzáadás lehetőséget.

  3. Válassza a Kusto Query lehetőséget, és frissítse a feladatot a következő információkkal:

    • Megjelenítendő név: A feladat neve. Például lekérdezésfürt.
    • Típus: Válassza a Beágyazott elemet.
    • Lekérdezés: Adja meg a futtatni kívánt lekérdezést.
    • Végpont URL-címe: Adja meg a EndPoint URL korábban létrehozott változót.
    • Szolgáltatásvégpont használata: Válassza ezt a lehetőséget.
    • Szolgáltatásvégpont: Válasszon ki egy szolgáltatásvégpontot.

    Képernyőkép a lekérdezési feladat létrehozásáról.

  4. A Tevékenység eredményei csoportban válassza ki a feladat sikerességi feltételeit a lekérdezés eredményei alapján az alábbiak szerint:

    • Ha a lekérdezés sorokat ad vissza, válassza a Sorszám lehetőséget, és adja meg a szükséges feltételeket.

      Képernyőkép a lekérdezésről, amely sorokat ad vissza, és beállítja a sorszám küszöbértékeit.

    • Ha a lekérdezés egy értéket ad vissza, válassza az Egyetlen érték lehetőséget , és adja meg a várt eredményt.

      Képernyőkép arról, hogy a lekérdezés egyetlen értéket ad vissza, és beállítja a várt értéket.

Lekérdezéskiszolgáló kapufeladatának létrehozása

Szükség esetén hozzon létre egy feladatot, amely lekérdezést futtat egy fürtön, és feltételessé teszi a kiadási folyamatot a lekérdezés eredményeinek sorainak száma alapján. A Kiszolgálói lekérdezési kapu feladat ügynök nélküli feladat, ami azt jelenti, hogy a lekérdezés közvetlenül az Azure DevOps Serveren fut.

  1. A Feladatok lapon válassza az +Ügynök nélküli feladat lehetőséget, és keresse meg az Azure Data Explorert.

  2. Az Azure Data Explorer lekérdezéskiszolgálói kapu futtatása területen válassza a Hozzáadás lehetőséget.

  3. Válassza a Kusto Query Server Gate , majd a Kiszolgálói kapu teszt lehetőséget.

    Képernyőkép arról, hogyan válasszon ki egy Kiszolgálókapu-feladatot.

  4. Konfigurálja a feladatot, és adja meg a következő információkat:

    • Megjelenítendő név: A kapu neve.
    • Szolgáltatásvégpont: Válasszon ki egy szolgáltatásvégpontot.
    • Adatbázis neve: Adja meg az adatbázis nevét.
    • Típus: Válassza ki a beágyazott lekérdezést.
    • Lekérdezés: Adja meg a futtatni kívánt lekérdezést.
    • Maximális küszöbérték: Adja meg a lekérdezés sikerességi feltételeinek maximális sorszámát.

    Képernyőkép arról, hogyan lehet konfigurálni egy Kiszolgálókapu-feladatot.

Megjegyzés:

A kiadás futtatásakor az alábbihoz hasonló eredményeknek kell megjelennie.

Képernyőkép az Query Gate feladat például eredményeiről.

A kiadás futtatása

  1. A kiadás elindításához válassza a + Kiadás>létrehozása lehetőséget .

    A kiadás létrehozását bemutató képernyőkép.

  2. A Naplók lapon ellenőrizze, hogy az üzembe helyezés állapota sikeres-e.

    Képernyőkép egy sikeres üzembe helyezésről.

Most befejeződött a kiadási csővezeték létrehozása az előállítást megelőző környezetbe történő üzembe helyezéshez.

Kulcs nélküli hitelesítés támogatása az Azure Data Explorer DevOps-feladataihoz

A bővítmény támogatja az Azure Data Explorer-fürtök kulcs nélküli hitelesítését. A kulcs nélküli hitelesítés lehetővé teszi, hogy az Azure Data Explorer füzérekhez kulcs nélkül hitelesítse önmagát. Biztonságosabb és könnyebben kezelhető.

Összevont identitás hitelesítő adatainak (FIC) használata Azure Data Explorer-szolgáltatáskapcsolatban

  1. A DevOps-példányban nyissa meg a Project Settings>Service-kapcsolatok>> azAzure Data Explorerben.

  2. Válassza a Kombinált identitáshitelesítő adatok lehetőséget, és adja meg a fürt URL-címét, a szolgáltatásnév azonosítóját, a bérlőazonosítót, a szolgáltatáskapcsolat nevét, majd válassza a Mentés lehetőséget.

  3. Az Azure Portalon nyissa meg a Microsoft Entra alkalmazást a megadott szolgáltatásnévhez.

  4. A Tanúsítványok > titkos kódok területen válassza az Összevont hitelesítő adatok lehetőséget.

    A Microsoft Entra alkalmazás összevont hitelesítő adatainak lapját bemutató képernyőkép.

  5. Válassza a Hitelesítő adatok hozzáadása lehetőséget, majd összevont hitelesítő adatok esetén válassza az Egyéb kiállító lehetőséget, és töltse ki a beállításokat az alábbi információk használatával:

    • Kiállító: <https://vstoken.dev.azure.com/{System.CollectionId}> ahol {System.CollectionId} az Azure DevOps-szervezet gyűjteményazonosítója. A gyűjtemény azonosítóját a következő módokon találja:

      • Az Azure DevOps klasszikus kiadási folyamatában válassza az Inicializálási feladat lehetőséget. A gyűjtemény azonosítója megjelenik a naplókban.
    • Tárgyazonosító: <sc://{DevOps_Org_name}/{Project_Name}/{Service_Connection_Name}> ahol {DevOps_Org_name} az Azure DevOps-szervezet neve, {Project_Name} a projekt neve, és {Service_Connection_Name} a korábban létrehozott szolgáltatáskapcsolat neve.

      Megjegyzés:

      Ha van hely a szolgáltatáskapcsolat nevére, használhatja a mező szóközével. Például: sc://MyOrg/MyProject/My Service Connection.

    • Név: Adja meg a hitelesítő adatok nevét.

    Képernyőkép arról, hogyan hozhat létre új szolgáltatáskapcsolatot összevont identitás hitelesítő adataival.

  6. Válassza a Hozzáadás lehetőséget.

Összevont identitás hitelesítő adatainak vagy felügyelt identitásának használata Azure Resource Manager-szolgáltatáskapcsolatban

  1. A DevOps-példányban nyissa meg a Project Settings>Service-kapcsolatok>>az Azure Resource Managerben.

    Képernyőkép az Azure Resource Monitor szolgáltatáskapcsolat hozzáadásáról.

  2. A hitelesítési módszer alatt válassza a Számítási feladatok identitásának összevonása (automatikus) lehetőséget a folytatáshoz. A számítási feladatok identitás-összevonásának (manuális) beállításával megadhatja a számítási feladatok identitásának összevonási adatait vagy a Felügyelt identitás lehetőséget is. További információ a felügyelt identitás azure resource management használatával történő beállításáról az Azure Resource Manager (ARM) szolgáltatáskapcsolataiban.

    Képernyőkép egy Azure Resource Monitor-szolgáltatáskapcsolat hitelesítési lehetőségével

  3. Töltse ki a szükséges adatokat, válassza az Ellenőrzés, majd a Mentés lehetőséget.

Yaml-folyamatvonal konfigurációja

A feladatokat az Azure DevOps webes felhasználói felületével vagy YAML-kóddal konfigurálhatja a folyamatsémán belül.

Rendszergazdai parancsminta

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

Lekérdezési minta

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