GraphQL için API'de kaynak denetimi ve dağıtım ardışık düzenleri

Microsoft Fabric'de Git tümleştirmesi ve işlem hatlarının GraphQL API'si ile nasıl çalıştığını öğrenin. Bu makale, deponuza bağlantı ayarlamayı, GraphQL için API'nizi yönetmeyi ve bunları farklı ortamlara dağıtmayı anlamanıza yardımcı olur.

Kaynak denetimi ve dağıtımı kimler kullanır?

Git tümleştirmesi ve dağıtım iş akışları şunlar için gereklidir:

  • Sürüm denetimi ve CI/CD iş akışları aracılığıyla Fabric GraphQL API yapılandırmalarını yöneten veri mühendisleri
  • Geliştirme , test ve üretim Doku çalışma alanlarında dağıtımları koordine eden doku çalışma alanı yöneticileri
  • DevOps ekipleri, birçok ortam ve kapasitede Fabric API'leri için dağıtım hattı uyguluyor.
  • Fabric API değişiklikleri için yönetim, izleme ve geri alma özellikleri gerektiren platform ekipleri

GraphQL API'lerini birden fazla ortamda düzenli bir geliştirme yaşam döngüsünün parçası olarak yönetmeniz gerektiğinde kaynak denetimi ve dağıtım hattı kullanın.

Önkoşullar

Genel Bakış

Fabric, iki ana bileşen aracılığıyla CI/CD (sürekli tümleştirme ve sürekli dağıtım) ve geliştirme yaşam döngüsü yönetimi için güçlü araçlar sunar: Git tümleştirmesi (CI) ve dağıtım hatları (CD). Çalışma alanları hem Git eşitlemesi hem de dağıtım aşamaları için merkezi bileşenler görevi görür.

Git tümleştirmesi (CI): Çalışma alanı öğelerini (kod, yapılandırmalar, API'ler gibi) version denetim depolarıyla eşitleyerek sürüm denetimini ve Git aracılığıyla change tracking etkinleştirir.

Deployment pipelines (CD): Bağlantılı çalışma alanlarıyla aşamaların (örneğin, Geliştirme, Test, Üretim) oluşturulmasını sağlar. Her aşamada desteklenen öğeler sonraki aşamalara otomatik olarak çoğaltılır ve çalışma alanında yapılan değişiklikler yayın işlem hattında dağıtımı tetikler. Değişikliklerin ortamlar arasında verimli bir şekilde test edilmesini ve dağıtılmasını sağlamak için işlem hattını yapılandırabilirsiniz.

Fabric, yaygın senaryolara göre uyarlanmış çeşitli CI/CD iş akışlarını destekler. Daha fazla bilgi için bkz. Fabric'de CI/CD iş akışı seçenekleri.

Uyarı

Dağıtım sırasında yalnızca meta veriler kopyalanır; ve veriler kopyalanmıyor.

Çalışma alanındaki öğeler ilişkili Git deposunda Kod Olarak Altyapı (IaC) olarak depolanır. Depodaki kod değişiklikleri ardışık düzenlerde dağıtımı başlatabilir. Bu yöntem, test ve üretim sürümü amacıyla aşamalar arasında kod değişikliklerinin otomatik olarak çoğaltılmasını sağlar.

Veri kaynağı kimlik doğrulama yöntemleri

GraphQL için API'nizi oluştururken, istemcilerin veri kaynaklarına nasıl kimlik doğrulaması yapıp erişim sağlayacaklarını siz seçersiniz. Bu seçimin dağıtım boru hattı ve otomatik bağlantı davranışı üzerinde önemli etkileri vardır. Bu kimlik doğrulama yöntemlerini anlamak, CI/CD iş akışınızı planlamak için gereklidir. Otomatik bağlama ve dağıtım işlemi hakkında daha fazla bilgi için bkz. Dağıtım işlemini anlama.

GraphQL için API'nize veri kaynakları bağlanırken kullanabileceğiniz iki bağlantı seçeneği vardır: Çoklu oturum açma (SSO) ve Kayıtlı kimlik bilgileri.

Veri kaynaklarına GraphQL bağlantısı seçeneklerinin ekran görüntüsü.

Çoklu oturum açma (SSO)

SSO ile API istemcileri, veri kaynaklarına erişmek için kendi kimlik bilgilerini kullanır. Kimliği doğrulanmış API kullanıcısının hem API hem de temel alınan veri kaynağı için izinleri olmalıdır.

Şu durumlarda SSO kullanın:

  • Fabric veri kaynaklarını (göl evleri, ambarlar, SQL analiz uç noktaları) ortaya çıkarma
  • Kullanıcıların kendi izinlerine göre verilere erişmelerini istiyorsunuz.
  • Kullanıcı başına uygulamak için satır düzeyi güvenlik veya diğer veri erişim ilkeleri gereklidir

İzin gereksinimleri:

  • API kullanıcılarının GraphQL API'sinde Yürütme izinleri olmalıdır (Sorguları ve Mutasyonları Çalıştır)
  • API kullanıcılarının veri kaynağında okuma veya yazma izinlerine sahip olması gerekir
  • Alternatif olarak, kullanıcıları hem API'nin hem de veri kaynağının bulunduğu Katkıda Bulunan rolüne sahip çalışma alanı üyeleri olarak ekleyin

Dağıtım hatlarındaki otomatik bağlama davranışı: Kaynak çalışma alanından (örneğin, Geliştirme) hedef çalışma alanına (örneğin, Test) SSO kullanarak bir API dağıttığınızda:

  • Veri kaynağı ve GraphQL API'sinin her ikisi de hedef çalışma alanına dağıtılır
  • Hedef çalışma alanında API otomatik olarak hedef çalışma alanında yerel veri kaynağı kopyasına bağlanır
  • Her ortam (Geliştirme, Test, Üretim) kendi veri kaynağı örneğini kullanır

Uyarı

SQL Analytics Uç Noktaları ile SSO kullanırken belirli sınırlamalar vardır. Ayrıntılar için bkz. Geçerli sınırlamalar .

Kaydedilen kimlik bilgileri

Kaydedilen kimlik bilgileriyle, API ile veri kaynakları arasında tek bir paylaşılan kimlik bilgisi kimlik doğrulaması yapar. API kullanıcılarının temel alınan veri kaynaklarına değil yalnızca API'nin kendisine access ihtiyacı vardır.

Aşağıdaki durumlarda kaydedilmiş kimlik bilgilerini kullanın:

  • Azure veri kaynaklarını (Azure SQL Veritabanı, dış veritabanları) ortaya çıkarma
  • Basitleştirilmiş izin yönetimi istiyorsunuz (kullanıcıların yalnızca API access ihtiyacı vardır)
  • Tüm API kullanıcıları aynı izinlerle aynı verilere erişmelidir.
  • Tüm API isteklerinde tutarlı kimlik bilgilerine ihtiyacınız var

İzin gereksinimleri:

  • API kullanıcıları yalnızca GraphQL API'sinde Yürütme izinlerine ihtiyaç duyar (Sorguları ve Mutasyonları Çalıştır)
  • Kaydedilen kimlik bilgilerinin veri kaynağı üzerinde uygun izinlere sahip olması gerekir
  • API'yi dağıtan geliştiricilerin kaydedilen kimlik bilgilerine access olması gerekir

Dağıtım hatlarındaki otomatik bağlantı davranışı: Kaynak çalışma alanından (Geliştirme), hedef çalışma alanına (Test) kaydedilmiş kimlik bilgilerini kullanarak bir API dağıttığınızda:

  • Veri kaynağı hedef çalışma alanına dağıtılır
  • Hedef çalışma alanında API, kaynak çalışma alanında (Geliştirme) veri kaynağına bağlı kalır
  • Otomatik bağlama gerçekleşmez - dağıtılan API, özgün veri kaynağına işaret eden kaydedilmiş kimlik bilgilerini kullanmaya devam eder
  • Bağlantıları el ile yeniden yapılandırmanız veya her hedef ortamda yeni kaydedilmiş kimlik bilgileri oluşturmanız gerekir

Önemli

API'niz için bir kimlik doğrulama yöntemi seçtikten sonra, bu yöntem bu API'ye eklenen tüm veri kaynakları için geçerlidir. SSO ve kaydedilmiş kimlik bilgilerini aynı API'de karıştıramazsınız.

Çalışma alanları arası bağlantılar

Kaynak çalışma alanında (Geliştirme) API'niz farklı bir çalışma alanında bulunan bir veri kaynağına bağlanıyorsa, hedef çalışma alanında (Test) dağıtılan API , kimlik doğrulama yönteminden bağımsız olarak bu dış veri kaynağına bağlı kalır. Otomatik bağlama yalnızca hem API hem de veri kaynağı aynı kaynak çalışma alanında olduğunda çalışır.

Aşağıdaki diyagramda bu dağıtım senaryoları gösterilmektedir:

Çeşitli veri kaynağı bağlantıları ve senaryoları için işlem hattının ekran görüntüsü.

API'nizi oluştururken bu kimlik doğrulama yöntemlerini ayarlama hakkında daha fazla bilgi için bkz. Veri kaynağına bağlanma.

GraphQL Git tümleştirmesi için API

GraphQL için Doku API'si Git tümleştirmesini destekleyerek GraphQL API'lerinizi sürüm denetim sisteminizde kod olarak yönetmenizi sağlar. Bu tümleştirme sürüm geçmişi, dallar ve çekme istekleri aracılığıyla işbirliği, değişiklikleri geri döndürme olanağı ve API değişikliklerinin tam denetim kaydını sağlar. GraphQL API yapılandırmanızı Kod Olarak Altyapı (IaC) olarak değerlendirerek, veri access katmanınıza yazılım geliştirme en iyi yöntemlerini uygulayabilirsiniz.

Git tümleştirmesi şu nedenler için gereklidir:

  • Sürüm denetimi: GraphQL şemanızda, veri kaynağı bağlantılarında ve ilişkilerde zaman içinde yapılan tüm değişiklikleri izleme
  • İşbirliği: Dalları, çekme isteklerini ve kod incelemelerini kullanarak ekip üyeleriyle çalışma
  • Geri alma özelliği: Sorunlar oluştuğunda önceki API yapılandırmalarına geri dönme
  • Ortam yükseltme: Ortamlar arasında API'leri dağıtmak için gerçeğin kaynağı olarak Git'i kullanın

Çalışma alanınızı Git'e bağlama

GraphQL API'leriniz için Git tümleştirmesini etkinleştirmek için:

  1. GraphQL için API'nizi içeren çalışma alanının Çalışma Alanı ayarlarını açın
  2. Deponuzla Git bağlantısını yapılandırma (DevOps, GitHub veya diğer Git sağlayıcısı Azure)
  3. Bağlandıktan sonra, GraphQL API'leri de dahil olmak üzere tüm çalışma alanı öğeleri Kaynak denetim masasında görünür

Ayrıntılı kurulum yönergeleri için bkz. Git tümleştirmesiyle başlama.

Çalışma alanı ve kaynak denetimi durumunun ekran görüntüsü.

GraphQL API'lerinizi işleme ve eşitleme

Git'e bağlandıktan sonra GraphQL yapılandırmaları için API'nizi depoya işleyebilirsiniz. Her işleme, AŞAĞıDAKIler dahil olmak üzere API tanımınızın anlık görüntüsünü oluşturur:

  • GraphQL şema tanımları
  • Veri kaynağı bağlantıları ve kimlik doğrulama ayarları
  • İlişki yapılandırmaları
  • Sorgu ve mutasyon tanımları

İşlendikten sonra GraphQL API'leriniz Git deponuzda yapılandırılmış klasör hiyerarşisi ile görünür. Bu noktadan itibaren pull request'ler oluşturma, dalları yönetme ve kod incelemeleri aracılığıyla ekibinizle iş birliği yapma gibi standart Git iş akışlarından faydalanabilirsiniz. Dallarla çalışma hakkında daha fazla bilgi için bkz. Dalları yönetme.

Git'te GraphQL API gösterimi

GraphQL için her API öğesi, API yapılandırmanızın tüm yönlerini temsil eden iyi tanımlanmış bir klasör yapısıyla Git'te depolanır:

GraphQL için Git'te dosya yapısı gösteriminin ekran görüntüsü.

API tanım dosyaları, Herhangi bir Doku çalışma alanında GraphQL API'nizi yeniden oluşturmak için gereken tüm meta verileri içerir. Buna şema tanımları, veri kaynağı eşlemeleri ve yapılandırma ayarları dahildir. Git'ten Fabric çalışma alanına geri eşitlediğinizde, sistem API'nizi commit edildiği zamanki gibi tam olarak geri yüklemek için şu tanım dosyalarını kullanır:

Git'te depolanan GraphQL tanımları için API'nin ekran görüntüsü.

API tanım dosyalarıyla çalışma:

GraphQL API tanım biçimi, Fabric'in Kod Olarak Altyapı (IaC) standartlarını izler. Bu dosyaları doğrudan Git deponuzda görüntüleyebilir ve düzenleyebilirsiniz, ancak şema geçerliliğini sağlamak için çoğu değişikliğin Doku portalı üzerinden yapılması gerekir. Tanım dosyaları özellikle şunlar için kullanışlıdır:

  • Kod incelemeleri: Ekip üyeleri çekme isteklerindeki API değişikliklerini gözden geçirebilir
  • Belgeler: Dosyalar API yapınızın belgeleri olarak görev alır
  • Automation: CI/CD pipelines API yapılandırmalarını anlamak için bu dosyaları okuyabilir
  • Olağanüstü durum kurtarma: Tam API tanımları sürüm denetiminde korunur

GraphQL API tanım biçimi, söz dizimi ve örnekler hakkında ayrıntılı bilgi için Doku denetim düzlemi API'leri belgelerine bakın:

Dağıtım işlem hattında GraphQL için API

Dağıtım hatları, GraphQL yapılandırmalarınız için API'nizi geliştirme, test ve üretim gibi ortamlar arasında terfi ettirmenizi sağlar. GraphQL için api'yi bir işlem hattı üzerinden dağıttığınızda şema tanımları, veri kaynağı bağlantıları ve ilişki yapılandırmaları dahil olmak üzere yalnızca API meta verileri kopyalanır. Gerçek veriler bağlı veri kaynaklarında kalır ve dağıtım sırasında kopyalanmaz.

Önemli dağıtım konuları:

Dağıtmadan önce, kimlik doğrulama yöntemlerinin ve çalışma alanı düzenlemenin dağıtımınızı nasıl etkilediğini anlayın:

  • Tek Sign-On (SSO) kullanan API'ler hedef çalışma alanında yerel veri kaynaklarına otomatik olarak bağlanabilir (veri kaynağı aynı kaynak çalışma alanından da dağıtıldığında)
  • Kayıtlı Kimlik Bilgileri kullanan API'ler otomatik olarak bağlanmaz ve kaynak çalışma alanının veri kaynağına bağlı kalmaz
  • Çalışma alanları arası veri kaynakları, kimlik doğrulama yöntemi ne olursa olsun hiçbir zaman otomatik olarak bağlamaz

Dağıtım işleminin kapsamlı bir şekilde anlaşılması için bkz. Dağıtım işlemini anlama.

GraphQL için API'nizi dağıtma

GraphQL için API'nizi dağıtım boru hatları kullanarak devreye almak için:

  1. Yeni bir dağıtım işlem hattı oluşturun veya var olan bir işlem hattını açın. Ayrıntılı yönergeler için dağıtım boru hatlarıyla çalışmaya başlama kısmına bakın.

  2. Dağıtım stratejinize göre işlem hattı aşamalarına (Geliştirme, Test, Üretim) çalışma alanları atayın. Her aşamanın ayrılmış bir çalışma alanı olmalıdır.

  3. Aşamalar arasındaki öğeleri gözden geçirin ve karşılaştırın. İşlem hattı, vurgulanan alanlardaki öğe sayılarıyla gösterilen GraphQL api'lerinin hangilerinin değiştiğini gösterir. Bu karşılaştırma, dağıtımdan nelerin etkileneceğini anlamanıza yardımcı olur.

    Her geliştirme aşamasında öğelerin durumunu gösteren işlem hattının ekran görüntüsü.

  4. GraphQL için API'leri ve dağıtmak istediğiniz ilgili öğeleri (bağlı veri kaynakları gibi) seçin. Ardından dağıt'ı seçerek bir sonraki aşamaya taşıyın.

    Dağıtılması gereken seçili öğeleri gösteren işlem hattının ekran görüntüsü.

  5. Dağıtılmak üzere olan tüm öğeleri gösteren dağıtım onayı iletişim kutusunu gözden geçirin. Devam etmek için Dağıt'ı seçin.

    Dağıtım onay iletisini gösteren işlem hattının ekran görüntüsü.

Mevcut sınırlamalar

GraphQL API'lerini dağıtım boru hatları aracılığıyla dağıtırken autobinding aşağıdaki sınırlamalara sahiptir:

  • Alt öğeler: API, üst veri kaynağının (lakehouse gibi) alt öğesi olan bir SQL Analytics Uç Noktasına bağlandığında otomatik bağlama çalışmaz. Dağıtılan API, kaynak çalışma alanının uç noktasına bağlı kalır.

  • Kayıtlı Kimlik Bilgileri: Kayıtlı Kimlik Bilgileri kimlik doğrulama yöntemini kullanan API'ler otomatik bağlamayı desteklemez. API, dağıtımdan sonra kaynak çalışma alanının veri kaynağına bağlı kalır. Kimlik doğrulama yöntemleri ve bunların otomatik bağlama davranışı hakkında ayrıntılı bilgi için bkz. Veri kaynağı kimlik doğrulama yöntemleri.

  • GraphQL API'si ve Temel Alınan Veri Kaynağı Şema Değişiklikleri: Dokudaki GraphQL API'leri, temel alınan veri kaynaklarında şema değişikliklerini otomatik olarak algılamaz. Tablo veya görünüm yapısını değiştirirse (örneğin, sütunlar eklenir, yeniden adlandırılır veya kaldırılır), API oluşturulduğunda veya son yenilendiğinde yakalanan şemayı kullanmaya devam eder, böylece yeni alanlar veya güncelleştirilmiş türler otomatik olarak görünmez. Şema güncelleştirmelerini yansıtmak için, ÖRNEĞIN GraphQL API öğesini açıp şemasını güncelleştirerek (sütunları ekleyip kaldırarak) veya tabloyu kaldırıp yeniden ekleyerek API'nin meta verilerinin el ile yenilenmesi gerekir. Bazı durumlarda, tüm şema değişikliklerini tam olarak yakalamak için veri kaynağının tamamını silmek ve yeniden eklemek gerekebilir.