Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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
- Egy 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 klasztert és egy adatbázist.
- Az Azure Data Explorer-fürt beállítása:
- Hozzon létre egy Microsoft Entra-alkalmazást a Microsoft Entra alkalmazás előkészítésével.
- Az Azure Data Explorer-adatbázis engedélyeinek kezelésével hozzáférést biztosíthat a Microsoft Entra-alkalmazáshoz 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, ellenkező esetben lépjen kapcsolatba az Azure DevOps-példány tulajdonosával , és kérje meg őket a telepítésre.
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:
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). Az egysoros beállítás fájlonként egy paranccsal több fájlt is támogat.
Parancsokat írjon sorban.
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).
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.
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 tablehelyett a.create table-t, és használja a.create-or-alterfüggvényt a.createfüggvény helyett.
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 lapon, a Sablon kiválasztása panelen válassza az Üres feladat lehetőséget.
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.
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.
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.
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
Feladat létrehozása a mappák üzembe helyezéséhez
A Folyamat lapon válassza ki az 1 feladatot és a 0 feladatot a tevékenységek hozzáadásához.
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:
A Feladatok lapon válassza ki +az Ügynökfeladatot , és keresse meg az Azure Data Explorert.
Az Azure Data Explorer parancs futtatása alatt 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>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 URLelő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.
Ha a rendszergazdai parancsok hosszú ideig futó aszinkron műveleteket hajtanak végre, jelölje be a várakozás hosszú aszinkron rendszergazdai parancsokra jelölőnégyzetet. Ha engedélyezve van, a feladat a parancs befejezéséig lekérdezi a művelet állapotát
.show operations.
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.
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.
A Feladatok lapon válassza ki +az Ügynökfeladatot , és keresse meg az Azure Data Explorert.
Az Azure Data Explorer-lekérdezés futtatása csoportban 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. 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 URLkorá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 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.
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.
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.
A Feladatok lapon válassza az +Ügynök nélküli feladat lehetőséget, és keresse meg az Azure Data Explorert.
Az Azure Data Explorer lekérdezéskiszolgálói kapu futtatása területen válassza a Hozzáadás lehetőséget.
Válassza a Kusto Query Server Gate , majd a Kiszolgálói kapu teszt 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 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.
Megjegyzés:
A kiadás futtatásakor az alábbihoz hasonló eredményeknek kell megjelennie.
A kiadás futtatása
A kiadás elindítá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.
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ő.
Megjegyzés:
A Kusto Fabric-fürtök URL-címei nem támogatottak a Workload Identity Federation (WIF) és a Felügyelt Identitás hitelesítése esetében.
Összevont identitás hitelesítő adatainak (FIC) használata Azure Data Explorer-szolgáltatáskapcsolatban
Megjegyzés:
A 4.0.x-es verziótól kezdve az Azure Data Explorer szolgáltatásvégpont a szolgáltatásnév-hitelesítés mellett támogatja a számítási feladatok identitás-összevonási (WIF) hitelesítését is.
A DevOps-példányban nyissa meg a Project Settings>Service-kapcsolatok>> azAzure Data Explorerben.
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.
Az Azure Portalon nyissa meg a Microsoft Entra alkalmazást a megadott szolgáltatásnévhez.
A Tanúsítványok > titkos kódok területen válassza az Összevont hitelesítő adatok lehetőséget.
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.
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
A DevOps-példányban nyissa meg a Project Settings>Service-kapcsolatok>>az Azure Resource Managerben.
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.
Töltse ki a szükséges adatokat, válassza az Ellenőrzés, majd a Mentés lehetőséget.
YAML-folyamat konfigurálása
A feladatokat az Azure DevOps webes felhasználói felületével vagy YAML-kóddal konfigurálhatja a folyamatsémán belül.
A bővítmény három folyamatfeladatot biztosít, mindegyiket a YAML-en keresztül érheti el:
-
Azure Data Explorer-parancs (
ADXAdminCommand@5) – Rendszergazdai/vezérlési parancsok futtatása ADX-fürtön - Azure Data Explorer Query – Lekérdezések futtatása ADX-fürtön, és az eredmények elemzése
- Azure Data Explorer Query Server Gate – Kiadásvezérlő feladat ügynök nélkül, a lekérdezés eredményétől függően
Jótanács
A fokozott biztonság érdekében használja a Workload Identity Federation vagy a Managed Identity hitelesítést egy Azure Resource Manager szolgáltatáskapcsolaton keresztül, ahelyett, hogy közvetlenül a folyamatban tárolja a hitelesítő adatokat. Ezek a kulcs nélküli hitelesítési módszerek ajánlottak.
Rendszergazdai parancsminta – beágyazott parancsok
Az alábbi minta egy beágyazott rendszergazdai parancsot futtat egy Azure Resource Manager(ARM) szolgáltatáskapcsolat használatával, amely támogatja a számítási feladatok identitás-összevonását (WIF) és a felügyelt identitás hitelesítését:
steps:
- task: Azure-Kusto.ADXAdminCommands.PublishToADX.ADXAdminCommand@5
displayName: 'Run inline ADX admin command'
inputs:
clusterUri: 'https://<ClusterName>.<Region>.kusto.windows.net'
databaseName: '<DatabaseName>'
commandsSource: 'inline'
inlineCommands: |
.create-merge table MyTable (Id:int, Name:string, Timestamp:datetime)
.create-or-alter function MyFunction() { MyTable | take 10 }
azureSubscription: '<ARM Service Connection Name>'
continueOnError: true
Rendszergazdai parancsminta – fájlalapú parancsok
Az alábbi minta rendszergazdai parancsokat futtat egy Glob-mintával egyező fájlokból az AAD-alkalmazásregisztráció hitelesítésével:
steps:
- task: Azure-Kusto.ADXAdminCommands.PublishToADX.ADXAdminCommand@5
displayName: 'Deploy schema from files'
inputs:
clusterUri: 'https://<ClusterName>.<Region>.kusto.windows.net'
databaseName: '<DatabaseName>'
commandsSource: 'files'
commandFilesPattern: '**/*.csl'
aadAppId: '$(AAD_APP_ID)'
aadAppKey: '$(AAD_APP_KEY)'
aadTenantId: '$(AAD_TENANT_ID)'
continueOnError: true
A fájlelnevezési konvenciótól függően glob mintaként is használható **/*.kql .
Rendszergazdai parancsminta – Azure Resource Manager-szolgáltatáskapcsolat
Az alábbi minta egy Azure Resource Manager-szolgáltatáskapcsolatot használ, amely támogatja a számítási feladatok identitásának összevonását (WIF) és a felügyelt identitást a kulcs nélküli hitelesítéshez:
steps:
- task: Azure-Kusto.ADXAdminCommands.PublishToADX.ADXAdminCommand@5
displayName: 'Deploy schema via ARM service connection'
inputs:
clusterUri: 'https://<ClusterName>.<Region>.kusto.windows.net'
databaseName: '<DatabaseName>'
commandsSource: 'files'
commandFilesPattern: '**/*.csl'
azureSubscription: '<ARM Service Connection Name>'
continueOnError: true
condition: ne(variables['ProductVersion'], '')
Tevékenységbeviteli paraméterek
Az alábbi táblázat a tevékenység legfontosabb bemeneti paramétereit ADXAdminCommand@5 ismerteti:
| Paraméter | Leírás |
|---|---|
clusterUri |
A Kusto-fürt alap URI-ja (például https://<ClusterName>.<Region>.kusto.windows.net) |
databaseName |
A céladatbázis neve |
commandsSource |
A parancsok forrása: inline beágyazott KQL-parancsokhoz vagy files fájlalapú parancsokhoz |
inlineCommands |
Futtatandó beágyazott KQL-parancsok (ha commandsSource van inline) |
commandFilesPattern |
Glob-minta szkriptfájlokhoz (akkor használatos, ha commandsSource vanfiles), például **/*.csl**/*.kql |
aadAppId |
Az AAD-alkalmazás hitelesítéséhez tartozó Microsoft Entra alkalmazás (szolgáltatási főszereplő) azonosítója |
aadAppKey |
A Microsoft Entra alkalmazáskulcsa/titkos kulcsa az AAD-alkalmazások hitelesítéséhez |
aadTenantId |
A Microsoft Entra bérlőazonosítója az AAD-alkalmazás hitelesítéséhez |
azureSubscription |
Az AZURE Resource Manager szolgáltatáskapcsolat neve ARM-alapú hitelesítéshez (támogatja a WIF-et és a felügyelt identitást) |
Hitelesítési módszerek
A bővítmény a következő hitelesítési módszereket támogatja:
-
Azure Active Directory (AAD) alkalmazásregisztráció – Használja a
aadAppId,aadAppKeyésaadTenantIdhitelesítéséhez egy szolgáltatásnévvel. Biztonságos folyamatváltozóként tárolja a hitelesítő adatokat. - Tanúsítványalapú hitelesítés – A Szolgáltatásnév hitelesítéséhez használjon tanúsítványt alkalmazáskulcs helyett. Tárolja a tanúsítvány részleteit biztonságos folyamatváltozókként.
-
Felügyelt identitás – Felügyelt identitással konfigurált Azure Resource Manager-szolgáltatáskapcsolat használata. Állítsa be a
azureSubscriptionbemenetet a szolgáltatáskapcsolat nevére. -
Munkaterhelés Identitás Federáció (WIF) – Azure Resource Manager szolgáltatáskapcsolat használata Munkaterhelés Identitás Federációval (automatikus vagy manuális). Ez az ajánlott kulcs nélküli megközelítés. Állítsa be a
azureSubscriptionbemenetet a szolgáltatáskapcsolat nevére.
Megjegyzés:
A Workload Identity Federation (WIF) az újabb funkció a bővítményben. Lehetővé teszi a jelszómentes hitelesítést, és ez az új pipeline-ok ajánlott megközelítése. A beállítási utasításokért lásd: Összevont identitás hitelesítő adatainak vagy felügyelt identitás használata Azure Resource Manager -szolgáltatáskapcsolatban.
Lekérdezési minta
steps:
- task: Azure-Kusto.PublishToADX.ADXQuery.ADXQuery@5
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