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 bir gql ş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:
Geçerli kullanıcının kimliği doğrulanmalıdır.
Geçerli kullanıcı gerekli rolün üyesi olmalıdır.
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.