Azure Veri Gezgini için Azure DevOps Görevi
Azure DevOps Services , yüksek performanslı işlem hatları, ücretsiz özel Git depoları, yapılandırılabilir Kanban panoları ve kapsamlı otomatik ve sürekli test özellikleri gibi geliştirme işbirliği araçları sağlar. Azure Pipelines , kodunuzu herhangi bir dil, platform ve bulutla çalışan yüksek performanslı işlem hatlarıyla dağıtmak için CI/CD'yi yönetmenizi sağlayan bir Azure DevOps özelliğidir. Azure Veri Gezgini - İşlem Hattı Araçları, yayın işlem hatları oluşturmanıza ve veritabanı değişikliklerinizi Azure Veri Gezgini veritabanlarınıza dağıtmanıza olanak tanıyan Azure Pipelines görevidir. Visual Studio Market'te ücretsiz olarak kullanılabilir. Bu uzantı aşağıdaki temel görevleri içerir:
Azure Veri Gezgini Komutu - Azure Veri Gezgini kümesinde Yönetici Komutlarını çalıştırma
Azure Veri Gezgini Sorgusu - Azure Veri Gezgini kümesinde Sorgu çalıştırma ve sonuçları ayrıştırma
Azure Veri Gezgini Sorgu Sunucusu Kapısı - Sorgu sonucuna bağlı olarak Gate'e aracısız görev yayınları
Bu belgede, şema değişikliklerinizi veritabanınıza dağıtmak için Azure Veri Gezgini - İşlem Hattı Araçları görevinin kullanımına ilişkin basit bir örnek açıklanmaktadır. Tam CI/CD işlem hatları için Azure DevOps belgelerine bakın.
Önkoşullar
- Azure aboneliği. Ücretsiz bir Azure hesabı oluşturun.
- Azure Veri Gezgini kümesi ve veritabanı. Küme ve veritabanı oluşturma.
- Azure Veri Gezgini kümesi kurulumu:
- Bir Microsoft Entra uygulaması sağlayarak Microsoft Entra uygulaması oluşturun.
- Azure Veri Gezgini veritabanı izinlerini yöneterek Azure Veri Gezgini veritabanınızda Microsoft Entra Uygulamanıza erişim izni verin.
- Azure DevOps kurulumu:
- Ücretsiz bir kuruluşa kaydolun.
- Kuruluş oluşturma.
- Azure DevOps'ta proje oluşturma.
- Git ile kod.
- Uzantı Yüklemesi:
Azure DevOps örneği sahibiyseniz uzantıyı Market'ten yükleyin, aksi takdirde Azure DevOps örneği sahibine başvurun ve yüklemesini isteyin.
İçeriğinizi yayına hazırlama
Bir görev içindeki kümede yönetici komutlarını yürütmek için aşağıdaki yöntemleri kullanabilirsiniz:
Yerel aracı klasöründen birden çok komut dosyası almak için arama deseni kullanma (Derleme kaynakları veya Yayın yapıtları)
Komutları satır içinde yazma
Komut dosyalarını doğrudan git kaynak denetiminden almak için bir dosya yolu belirtin (önerilir)
Git deponuzda aşağıdaki örnek klasörleri (İşlevler, İlkeler, Tablolar) oluşturun. Örnek deposundaki dosyaları ilgili klasörlere kopyalayın ve değişiklikleri işleyin. Örnek dosyalar aşağıdaki iş akışını yürütmek için sağlanır.
İpucu
Kendi iş akışınızı oluştururken kodunuzun bir kez etkili olmasını öneririz. Örneğin, yerine kullanın
.create-merge table
ve işlev yerine.create
işlev kullanın.create-or-alter
..create table
Yayın işlem hattı oluşturma
Sol taraftaki menüden İşlem Hatları>Yayınları'nın ardından Yeni işlem hattı'nın seçilmesini seçin.
Yeni yayın işlem hattı penceresi açılır. İşlem Hatları sekmesindeki Şablon seçin bölmesinde boş iş'i seçin.
Aşama düğmesini seçin. Aşama bölmesinde, Aşama adını ekleyin. İşlem hattınızı kaydetmek için Kaydet'i seçin.
Yapıt ekle düğmesini seçin. Yapıt ekle bölmesinde kodunuzun bulunduğu depoyu seçin, ilgili bilgileri doldurun ve Ekle'yi seçin. İşlem hattınızı kaydetmek için Kaydet'i seçin.
Değişkenler sekmesinde + Ekle'yi seçerek görevde kullanılan Uç Nokta URL'si için bir değişken oluşturun. Uç noktanın Adını ve Değerini yazın. İşlem hattınızı kaydetmek için Kaydet'i seçin.
Uç nokta URL'nizi bulmak için Azure portalda Azure Veri Gezgini kümenizin genel bakış sayfasına gidin ve küme URI'sini kopyalayın. Değişken URI'sini aşağıdaki biçimde biçimlendirin
https://<ClusterURI>?DatabaseName=<DBName>
. Örneğin https://kustodocs.westus.kusto.windows.net?DatabaseName=SampleDB
Görev oluşturma klasörleri dağıtma
İşlem Hattı sekmesinde, görev eklemek için 1 iş, 0 görev'i seçin.
Tablolar, İşlevler ve İlkeler klasörlerinden dosya dağıtmak üzere komut görevleri oluşturmak için aşağıdaki adımları yineleyin:
Görevler sekmesinde Aracı işine göre öğesini seçin + ve Azure Veri Gezgini araması yapın.
Azure Veri Gezgini Komutunu Çalıştır'ın altında Ekle'yi seçin.
Kusto Komutu'na tıklayın ve görevi aşağıdaki bilgilerle güncelleştirin:
Görünen ad: Görevin adı. Örneğin, burada
<FOLDER>
oluşturmaktaDeploy <FOLDER>
olduğunuz dağıtım görevinin klasörünün adıdır.Dosya yolu: Her klasör için, görevin ilgili klasörü olarak
<FOLDER>
yolu*/<FOLDER>/*.csl
belirtin.Uç nokta URL'si
EndPoint URL
: Önceki adımda oluşturulan değişkeni belirtin.Hizmet Uç Noktasını Kullan: Bu seçeneği belirleyin.
Hizmet Uç Noktası: Mevcut bir hizmet uç noktasını seçin veya Azure Veri Gezgini hizmet bağlantısı ekle penceresinde aşağıdaki bilgileri sağlayan yeni bir (+ Yeni) oluşturun:
Ayar Önerilen değer Kimlik doğrulama yöntemi Federasyon Kimliği Kimlik Bilgilerini (FIC) ayarlayın (önerilir) veya Hizmet Sorumlusu Kimlik Doğrulaması (SPA) seçeneğini belirleyin. Bağlantı adı Bu hizmet uç noktasını tanımlamak için bir ad girin Küme Url'si Değer, Azure portalındaki Azure Veri Gezgini Kümenizin genel bakış bölümünde bulunabilir Hizmet Sorumlusu Kimliği Microsoft Entra Uygulama Kimliğini girin (önkoşul olarak oluşturulur) Hizmet Sorumlusu Uygulama Anahtarı Microsoft Entra Uygulama Anahtarı'nı girin (önkoşul olarak oluşturulur) Microsoft Entra kiracı kimliği Microsoft Entra kiracınızı (microsoft.com veya contoso.com gibi) girin
Tüm işlem hatlarının bu bağlantıyı kullanmasına izin ver onay kutusunu ve ardından Tamam'ı seçin.
Kaydet'i seçin ve görevler sekmesinde üç görev olduğunu doğrulayın: Tabloları Dağıtma, İşlevleri Dağıtma ve İlkeleri Dağıtma.
Sorgu görevi oluşturma
Gerekirse, kümeye karşı sorgu çalıştırmak için bir görev oluşturun. Derleme veya Yayın işlem hattında sorgu çalıştırmak, bir veri kümesini doğrulamak ve sorgu sonuçlarına göre bir adımın başarılı veya başarısız olması için kullanılabilir. Görevlerin başarı ölçütleri, sorgunun döndürdüğü değere bağlı olarak bir satır sayısı eşiğine veya tek bir değere dayalı olabilir.
Görevler sekmesinde Aracı işine göre öğesini seçin + ve Azure Veri Gezgini araması yapın.
Azure Veri Gezgini Sorgusunu Çalıştır'ın altında Ekle'yi seçin.
Kusto Sorgusu'na tıklayın ve görevi aşağıdaki bilgilerle güncelleştirin:
- Görünen ad: Görevin adı. Örneğin, Sorgu kümesi.
- Tür: Satır içi'yi seçin.
- Sorgu: Çalıştırmak istediğiniz sorguyu girin.
- Uç nokta URL'si
EndPoint URL
: Daha önce oluşturulan değişkeni belirtin. - Hizmet Uç Noktasını Kullan: Bu seçeneği belirleyin.
- Hizmet Uç Noktası: Bir hizmet uç noktası seçin.
Görev Sonuçları'nın altında, sorgunuzun sonuçlarına göre görevin başarı ölçütlerini aşağıdaki gibi seçin:
Sorgunuz satır döndürüyorsa Satır Sayısı'nı seçin ve ihtiyacınız olan ölçütleri belirtin.
Sorgunuz bir değer döndürürse Tek Değer'i seçin ve beklenen sonucu sağlayın.
Sorgu Sunucusu Kapısı görevi oluşturma
Gerekirse, bir kümede sorgu çalıştırmak ve Sorgu Sonuçları Satır Sayısı'nı bekleyen yayın ilerleme durumunu geçit olarak göndermek için bir görev oluşturun. Sunucu Sorgu Kapısı görevi aracısız bir iştir, yani sorgu doğrudan Azure DevOps Sunucusu'nda çalışır.
Görevler sekmesinde Aracısız işe göre seçin + ve Azure Veri Gezgini araması yapın.
Azure Veri Gezgini Sorgu Sunucusu Geçidi'nin altında Ekle'yi seçin.
Kusto Sorgu Sunucusu Kapısı'na ve ardından Sunucu Kapısı Testi'ne tıklayın.
Aşağıdaki bilgileri sağlayarak görevi yapılandırın:
- Görünen ad: Geçidin adı.
- Hizmet Uç Noktası: Bir hizmet uç noktası seçin.
- Veritabanı adı: Veritabanı adını belirtin.
- Tür: Satır içi sorgu'yu seçin.
- Sorgu: Çalıştırmak istediğiniz sorguyu girin.
- Maksimum eşik: Sorgunun başarı ölçütleri için en yüksek satır sayısını belirtin.
Not
Sürümü çalıştırırken aşağıdaki gibi sonuçlar görmeniz gerekir.
Sürümü çalıştırma
Yayın oluşturmak için + Yayın>Sürümü oluştur'u seçin.
Günlükler sekmesinde dağıtım durumunun başarılı olup olmadığını denetleyin.
Artık ön üretime dağıtım için bir yayın işlem hattı oluşturma işlemi tamamlandı.
Azure Veri Gezgini DevOps görevleri için anahtarsız kimlik doğrulaması desteği
Uzantı, Azure Veri Gezgini kümeleri için anahtarsız kimlik doğrulamasını destekler. Anahtarsız kimlik doğrulaması, anahtar kullanmadan Azure Veri Gezgini kümelerinde kimlik doğrulaması yapmanıza olanak tanır ve anahtar kullanmaktan daha güvenli ve yönetilmesi daha kolaydır.
Azure Veri Gezgini hizmet bağlantısında Federasyon Kimliği Kimlik Bilgileri (FIC) kimlik doğrulamayı kullanma
DevOps örneğinizde Proje Ayarları>Hizmet bağlantıları>Yeni hizmet bağlantısı>Azure Veri Gezgini'ne gidin.
Federasyon Kimliği Kimlik Bilgileri'ne tıklayın ve küme URL'nizi, hizmet sorumlusu kimliğinizi, kiracı kimliğinizi, bir hizmet bağlantı adını girin ve Kaydet'i seçin.
Azure portalında, belirtilen hizmet sorumlusu için Microsoft Entra uygulamasını açın.
Sertifikalar ve gizli diziler'in altında Federasyon kimlik bilgileri'ni seçin.
Kimlik bilgisi ekle'yi seçin ve federasyon kimlik bilgisi senaryosu için Diğer veren'i seçin ve aşağıdaki bilgileri kullanarak ayarları doldurun:
Veren:
<https://vstoken.dev.azure.com/{System.CollectionId}>
burada{System.CollectionId}
Azure DevOps kuruluşunuzun koleksiyon kimliğidir. Koleksiyon kimliğini aşağıdaki yollarla bulabilirsiniz:- Azure DevOps klasik yayın işlem hattında İşi başlat'ı seçin. Koleksiyon kimliği günlüklerde görüntülenir.
Konu tanımlayıcısı:
<sc://{DevOps_Org_name}/{Project_Name}/{Service_Connection_Name}>
burada{DevOps_Org_name}
Azure DevOps kuruluş adı,{Project_Name}
proje adı ve{Service_Connection_Name}
daha önce oluşturduğunuz hizmet bağlantısı adıdır.Not
Hizmet bağlantı adınızda alan varsa, alanı alanıyla birlikte kullanabilirsiniz. Örneğin:
sc://MyOrg/MyProject/My Service Connection
.Ad: Kimlik bilgisi için bir ad girin.
Ekle'yi seçin.
Azure Resource Manager (ARM) hizmet bağlantısında Federasyon Kimliği Kimlik Bilgilerini veya Yönetilen Kimliği kullanma
DevOps örneğinizde Proje Ayarları>Hizmet bağlantıları>Yeni hizmet bağlantısı>Azure Resource Manager'a gidin.
Kimlik doğrulama yöntemi'nin altında İş Yükü Kimlik Federasyonu (otomatik)'i seçin. Alternatif olarak, el ile İş Yükü Kimliği Federasyonu (el ile) seçeneğini kullanarak İş Yükü Kimliği Federasyonu ayrıntılarını belirtebilir veya Yönetilen Kimlik seçeneğini kullanabilirsiniz. Azure Kaynak Yönetimi kullanarak yönetilen kimlik ayarlama hakkında daha fazla bilgi için bkz . Azure Resource Manager (ARM) Hizmet Bağlantıları.
Gerekli ayrıntıları doldurun, Doğrula'yı ve ardından Kaydet'i seçin.
Yaml İşlem Hattı yapılandırması
Görevler hem Azure DevOps Web kullanıcı arabirimi aracılığıyla hem de işlem hattı şemasındaki Yaml kodu aracılığıyla yapılandırılabilir.
Yönetici komutu örnek kullanımı
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
Sorgu örneği kullanımı
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=<DataBaneName>'
authType: 'kustoserviceconn'
connectedServiceName: '<connection service name>'
minThreshold: '0'
maxThreshold: '10'
continueOnError: true