Aracılığıyla paylaş


Azure Static Web Apps ile veritabanına Bağlan (önizleme)

Azure Static Web Apps veritabanı bağlantı özelliği, özel sunucu tarafı kodu yazmadan statik web uygulamanızdan bir veritabanına erişmenizi sağlar.

Web uygulamanızla veritabanınız arasında bir bağlantı oluşturduktan sonra CRUD işlemleri, yerleşik yetkilendirme ve ilişkiler için tam destekle verileri işleyebilirsiniz.

Azure Static Web Apps, Veri API'si oluşturucusunu temel alarak REST ve GraphQL isteklerini alır ve bunları veritabanı sorgularına dönüştürür.

Veritabanı bağlantıları tarafından desteklenen özellikler şunlardır:

Özellik Açıklama
Tümleşik güvenlik Azure Static Web Apps kimlik doğrulaması ve yetkilendirme güvenlik modeliyle yerleşik tümleştirme. Yolların güvenliğini sağlamak için kullanılan rol tabanlı güvenlik, API uç noktaları için de kullanılabilir.
Tam CRUD tabanlı işlemler Uygulamanızdaki verileri işlemeye ilişkin bir örnek için Azure Cosmos DB, Azure SQL, MySQL veya PostgreSQL öğreticilerine bakın.
SQL ve NoSQL'i destekler uygulamanızın veritabanı olarak ilişkisel ve belge veritabanlarını kullanabilirsiniz.
Sunucusuz mimari Bağlan ions 0'dan 1 çalışana ölçeklendirilir (önizleme sırasında).
Veritabanı ilişkileri Yalnızca GraphQL uç noktası aracılığıyla desteklenir.
CLI desteği Static Web Apps CLI ile yerel olarak geliştirme. Geliştirme aşamasındaki --data-api-location veri API'lerine yönelik istekleri bulutta işlenmek üzere işlemek için seçeneğini kullanın.

Desteklenen veritabanları

Aşağıdaki tabloda farklı ilişkisel ve NoSQL veritabanları için destek gösterilmektedir.

Adı Tür Açıklama REST GraphQL
Azure Cosmos DB Standart Her ölçekte hem NoSQL hem de ilişkisel veritabanları için genel olarak dağıtılmış veritabanı platformu.

Standart yapılandırmaya ek olarak, GraphQL uç noktaları için birgql şema dosyası gerekir.
Azure SQL Standart Azure bulutunda SQL Server veritabanı altyapısını kullanan yönetilen, güvenli ve akıllı ürünler ailesi.
MySQL için Azure Veritabanı Flex MySQL Community Edition tabanlı Microsoft bulutunda ilişkisel veritabanı hizmeti
PostgreSQL için Azure Veritabanı Flex Görev açısından kritik iş yüklerini tahmin edilebilir performans ve dinamik ölçeklenebilirlikle işleyen tam olarak yönetilen Hizmet olarak PostgreSQL veritabanı.
PostgreSQL için Azure Veritabanı (tek) Tekli Tam olarak yönetilen PostgreSQL veritabanı.

Veritabanı erişimi için aşağıdaki bağlantı türlerini kullanabilirsiniz:

  • Connection string
  • Kullanıcı Tarafından Atanan Yönetilen Kimlik
  • Sistem tarafından atanan Yönetilen Kimlik

Uç nokta konumu

Veri uç noktalarına erişim yolu dışında /data-api kullanılabilir.

Aşağıdaki tabloda isteklerin statik web uygulamasının farklı bölümlerine nasıl yönlendirilmiş olduğu gösterilmektedir:

Yol Açıklama
example.com/api/* API işlevleri
example.com/data-api/* REST ve GraphQL isteklerini destekleyen veritabanı bağlantı uç noktaları.
example.com/* Statik içerik

Web sitenizde veritabanı bağlantılarını yapılandırırken, yolun REST veya GraphQL sonekini /data-api/* yapılandırabilirsiniz. Ön /data-api ek, Statik Web Uygulamaları'nın bir kuralıdır ve değiştirilemez.

Yapılandırma

Statik Web Apps'te veritabanı bağlantısını yapılandırmanın iki adımı vardır. Veritabanınızı Azure portalında statik web uygulamanıza bağlamanız ve veritabanı bağlantıları yapılandırma dosyanızı güncelleştirmeniz gerekir.

Daha fazla ayrıntı için bkz . Azure Static Web Apps'te veritabanı bağlantısı yapılandırması.

Yerel geliştirme

Azure Static Web Apps CLI (SWA CLI), yerel geliştirme sırasında veritabanı bağlantılarıyla çalışma desteği içerir.

CLI, yerel /data-api uç noktayı etkinleştirir ve proxy'ler bağlantı noktasından 4280 veritabanı erişimi için uygun bağlantı noktasına istekte bulunur.

SWA CLI'yi veritabanı bağlantısıyla başlatan örnek bir komut aşağıda verilmişti:

swa start ./src --data-api-location swa-db-connections

Bu komut src dizininde SWA CLI'yi başlatır. seçeneği CLI'ya swa-db-connections adlı bir klasörün staticwebapp.database.config.json dosyasını barındırdığını bildirir. --data-api-location

Not

Geliştirme aşamasında kimlik doğrulaması için bir bağlantı dizesi kullanırsanız, bir ortam değişkenindeki bağlantı dizesi okumak için işlevini kullanınenv(). İşleve geçirilen dize tırnak env içine alınmalıdır.

Rol tabanlı güvenlik

staticwebapp.database.config.json dosyasında bir varlık tanımladığınızda, varlık uç noktasına erişmek için gereken rollerin listesini belirtebilirsiniz.

Aşağıdaki yapılandırma parçası, yönetici rolünün sipariş varlığındaki tüm eylemlere (create, read, update, delete) erişmesini gerektirir.

{
...
"entities": { 
  "Orders": { 
    "source": "dbo.Orders", 
    "permissions": [ 
      { 
        "actions": ["*"], 
        "role": "admin" 
      }
    ]
 }
}
...
}

Rol gerektiren bir uç noktaya çağrı yaptığınızda aşağıdaki koşullar gereklidir:

  1. Geçerli kullanıcının kimliği doğrulanmalıdır.

  2. Geçerli kullanıcı gerekli rolün üyesi olmalıdır.

  3. REST veya GraphQL isteği, anahtarıyla X-MS-API-ROLE bir üst bilgi ve varlık yapılandırma kurallarında listelenenlerle eşleşen rol adı değerini içermelidir.

    Örneğin, aşağıdaki kod parçacığı bir istek üst bilgisinde yönetici rolünün nasıl geçir yapılacağını gösterir.

    {
      method: "POST",
      headers: { 
        "Content-Type": "application/json",
        "X-MS-API-ROLE": "admin"
      },
      body: JSON.stringify(requestPayload)
    }
    

Sınırlamalar

  • Veritabanlarına Azure altyapısı tarafından erişilebilir olmalıdır.
  • Genel önizleme sırasında veritabanı bağlantıları 0'dan 1 veritabanı çalışanına ölçeklendirilir.

Sonraki adımlar