Azure DevOps-feladat az Azure Data Explorer-hoz
Az Azure DevOps Services fejlesztési együttműködési eszközöket, például nagy teljesítményű folyamatokat, ingyenes privát Git-adattárakat, konfigurálható Kanban-táblákat, valamint kiterjedt automatizált és folyamatos tesztelési képességeket biztosít. Az Azure Pipelines egy Azure DevOps-képesség, amely lehetővé teszi a CI/CD kezelését a kód nagy teljesítményű folyamatokkal való üzembe helyezéséhez, amelyek bármilyen nyelven, platformon és felhőben működnek. Azure Data Explorer – A Pipeline Tools az Azure Pipelines-feladat, amely lehetővé teszi a kiadási folyamatok létrehozását és az adatbázis-módosítások üzembe helyezését az Azure Data Explorer-adatbázisokban. Ingyenesen elérhető a Visual Studio Marketplace-en. Ez a bővítmény 3 alapvető feladatot tartalmaz:
Azure Data Explorer command – Rendszergazda-parancsok futtatása Azure Data Explorer-fürtön
Azure Data Explorer Query – Lekérdezések futtatása azure Data Explorer-fürtön, és az eredmények elemzése
Azure Data Explorer Query Server Gate – Ügynök nélküli feladat a Gate-nek a lekérdezés eredményétől függően
Ez a dokumentum egy egyszerű példát mutat be az Azure Data Explorer – Pipeline Tools feladat használatára a sémamódosítások adatbázisba való üzembe helyezéséhez. A teljes CI/CD-folyamatokért tekintse meg az Azure DevOps dokumentációját.
Előfeltételek
- Azure-előfizetés. Hozzon létre egy ingyenes Azure-fiókot.
- Egy Azure-Data Explorer-fürt és -adatbázis. Hozzon létre egy fürtöt és egy adatbázist.
- Azure Data Explorer-fürt beállítása:
- Hozzon létre Microsoft Entra alkalmazást egy Microsoft Entra alkalmazás kiépítésével.
- Az Azure Data Explorer-adatbázis engedélyeinek kezelésével hozzáférést adhat Microsoft Entra-alkalmazásához az Azure Data Explorer-adatbázisban.
- Az Azure DevOps beállítása:
- Bővítmény telepítése:
- Ha Ön az Azure DevOps-példány tulajdonosa, telepítse a bővítményt a Marketplace-ről.
- Ha NEM Ön az Azure DevOps-példány tulajdonosa, lépjen kapcsolatba a tulajdonosával , és kérje meg, hogy telepítse.
- Ha Ön az Azure DevOps-példány tulajdonosa, telepítse a bővítményt a Marketplace-ről.
A tartalom előkészítése a kiadásra
Háromféleképpen futtathat rendszergazdai parancsokat egy feladat fürtjén.
Keresési minta használatával több parancsfájlt is lekérhet egy helyi ügynökmappából (buildforrások vagy kiadási összetevők)
Parancsok írása beágyazottan
Adja meg a fájl elérési útját a parancsfájlok közvetlenül a Git-verziókövetésből való lekéréséhez (ajánlott)
Hozza létre a következő mintamappákat (függvények, szabályzatok, táblák) a Git-adattárban. Másolja a fájlokat innen a megfelelő mappákba az alább látható módon, és véglegesítse a módosításokat. A mintafájlok a következő munkafolyamat végrehajtásához vannak megadva.
Tipp
Saját munkafolyamat létrehozásakor javasoljuk a kód idempotenssé tételét. Használja például a helyett a parancsot,
.create-merge table
és függvény helyett használja.create-or-alter
a függvényt.create
..create table
Kiadási folyamat létrehozása
Jelentkezzen be az Azure DevOps-szervezetbe.
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.
Megnyílik az Új kiadási folyamat ablak. A Folyamatok lap Sablon kiválasztása paneljén válassza az Üres feladat lehetőséget.
Válassza a Fázis gombot. A Szakasz panelen adja hozzá a Szakasz nevét. A folyamat mentéséhez válassza a Mentés lehetőséget.
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 kattintson a Hozzáadás gombra. A folyamat mentéséhez válassza a Mentés lehetőséget.
A Változók lapon válassza a + Hozzáadás lehetőséget egy változó létrehozásához a feladatban használt végponti URL-címhez . Írja be a végpont nevét és értékét . A folyamat mentéséhez válassza a Mentés lehetőséget.
A Endpoint_URL megkereséséhez az Azure Data Explorer-fürt áttekintő oldala a Azure Portal tartalmazza az Azure Data Explorer-fürt URI-ját. Hozza létre az URI-t a következő formátumban
https://<Azure Data Explorer cluster URI>?DatabaseName=<DBName>
: . Például: https://kustodocs.westus.kusto.windows.net?DatabaseName=SampleDB
Feladatok létrehozása a mappák üzembe helyezéséhez
A Folyamat lapon kattintson az 1 feladat, 0 tevékenység elemre a tevékenységek hozzáadásához.
Ismételje meg az alábbi lépéseket a parancsfeladatok létrehozásához, hogy fájlokat helyezzen üzembe a Táblák, Függvények és Szabályzatok mappából:
A Feladatok lapon válassza az Ügynökfeladat lehetőséget+, és keresse meg az Azure Data Explorer.
Az Azure Data Explorer parancs futtatása területen válassza a Hozzáadás lehetőséget.
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>
, ahol<FOLDER>
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) az Azure Data Explorer szolgáltatáskapcsolat hozzáadása ablakban:
Beállítás Ajánlott érték Kapcsolat neve Adjon meg egy nevet a szolgáltatásvégpont azonosításához Fürt URL-címe Az érték az Azure Data Explorer-fürt áttekintési szakaszában található a Azure Portal Szolgáltatásnév azonosítója Adja meg a Microsoft Entra alkalmazásazonosító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 használhatja ezt a kapcsolatot jelölőnégyzetet, majd kattintson az OK gombra.
Válassza a Mentés lehetőséget, majd a Feladatok lapon ellenőrizze, hogy három feladat van-e: Táblák üzembe helyezése, Függvények üzembe helyezése és Szabályzatok központi telepítése.
Lekérdezési feladat létrehozása
Ha szükséges, hozzon létre egy feladatot, amellyel lekérdezést futtathat a fürtön. A lekérdezések buildelési vagy kiadási folyamatban való futtatásával érvényesítheti az adathalmazt, és a lekérdezés eredményei alapján sikeres vagy sikertelen lépésekkel rendelkezhet. A feladatok 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.
A Feladatok lapon válassza az Ügynökfeladatok lehetőséget+, és keresse meg az Azure Data Explorer.
Az Azure Data Explorer Query futtatása területen válassza a Hozzáadás lehetőséget.
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. Ilyen például a Lekérdezésfürt.
- Típus: Válassza a Beágyazott lehetőséget.
- 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.
A Tevékenység eredményei területen 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.
Ha a lekérdezés értéket ad vissza, válassza az Egyetlen érték lehetőséget, és adja meg a várt eredményt.
Lekérdezéskiszolgáló-kapu feladat létrehozása
Ha szükséges, hozzon létre egy feladatot, amely lekérdezést futtat egy fürtön, és lezárja a kiadási folyamatot a Lekérdezési eredmények sorszámának függőben. A Kiszolgálólekérdezés-kapu feladat ügynök nélküli feladat, ami azt jelenti, hogy a lekérdezés közvetlenül a Azure DevOps Server fut.
A Feladatok lapon válassza az Ügynök nélküli feladat lehetőséget+, és keresse meg az Azure Data Explorer.
Az Azure Data Explorer Query Server Gate futtatása területen válassza a Hozzáadás lehetőséget.
Válassza a Kusto Query Server Gate elemet, majd válassza a Kiszolgálói kapu tesztelése lehetőséget.
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 a Beágyazott lekérdezés lehetőséget.
- 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ételének maximális sorszámát.
Megjegyzés
Az alábbihoz hasonló eredményeknek kell megjelennie a kiadás futtatásakor.
A kiadás futtatása
A kiadás létrehozásához válassza a + Kiadás>létrehozása lehetőséget .
A Naplók lapon ellenőrizze, hogy az üzembe helyezés állapota sikeres-e.
Ezzel befejezte egy kiadási folyamat létrehozását az éles üzem előtti üzembe helyezéshez.
Yaml-folyamat konfigurálása
A feladatok konfigurálhatók az Azure DevOps webes felhasználói felületén (a fent látható módon) és a folyamatsémán belüli Yaml-kódon keresztül is
Rendszergazda parancs mintahasználata
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
Lekérdezési minta használata
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