Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
data-source bölümünde veritabanı erişim ayrıntıları tanımlanmıştır. Ayrıca veritabanı seçeneklerini tanımlar.
Veri kaynağı ayarları
| Property | Description |
|---|---|
| data-source | Veritabanı bağlantı ayarlarını içeren nesne |
| data-source.database-type | Arka uçta kullanılan veritabanı: mssql, postgresql, mysql, , cosmosdb_nosql, cosmosdb_postgresql |
| data-source.connection-string | Seçili veritabanı türü için bağlantı dizesi |
| data-source.options | Veritabanına özgü özellikler (örneğin, SQL Server, Cosmos DB, vb.) |
| data-source.options.database | NoSQL için Azure Cosmos DB veritabanının adı (gerektiğinde database-type = cosmosdb_nosql) |
| data-source.options.container | NoSQL için Azure Cosmos DB kapsayıcısının adı (gerektiğinde database-type = cosmosdb_nosql) |
| data-source.options.schema | GraphQL şema dosyasının yolu (için database-type = cosmosdb_nosqlgereklidir) |
| data-source.options.set-session-context | JSON Web Belirteci (JWT) taleplerini oturum bağlamı olarak göndermeyi etkinleştirir (yalnızca SQL Server) |
| data-source.health | Veri kaynağı için sistem durumu denetimlerini yapılandıran nesne |
| data-source.health.enabled | Sistem durumu denetimi uç noktasını etkinleştirir |
| data-source.health.name | Sistem durumu raporunda kullanılan tanımlayıcı |
| data-source.health.threshold-ms | Sistem durumu denetimi sorgusu için milisaniye cinsinden en uzun süre |
Format overview
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
// mssql only
"set-session-context": <true> (default) | <false>,
// cosmosdb_nosql only
"database": <string>,
"container": <string>,
"schema": <string>
},
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
},
"data-source-files": ["<string>"]
}
Data source
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
database-source |
object | ✔️ Yes | - |
Nested properties
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Yes | None |
data-source |
connection-string |
string | ✔️ Yes | None |
data-source |
options |
object | ❌ Hayır | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
Dokuda SQL | - |
mssql |
Azure SQL Veritabanı | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Doku SQL Analytics uç noktası | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
NoSQL için Azure Cosmos DB | - |
cosmosdb_postgresql |
PostgreSQL için Azure Cosmos DB | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Örnek: Azure SQL & SQL Server
"data-source": {
"database-type": "mssql",
"connection-string": "Server=tcp:myserver.database.windows.net,1433;Initial Catalog=MyDatabase;User ID=MyUser;Password=MyPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
"options": {
"set-session-context": true
}
}
Note
We use SqlClient for Azure SQL and SQL Server, which supports these connection strings variants.
Tüketen SESSION_CONTEXT
Azure SQL ve SQL Server için, Veri API oluşturucusu SQL'in SESSION_CONTEXTtalep bilgilerini içerebilir.
CREATE PROC GetUser @userId INT AS
BEGIN
-- Use claims
IF SESSION_CONTEXT(N'user_role') = 'admin'
BEGIN
RAISERROR('Unauthorized access', 16, 1);
END
SELECT Id, Name, Age, IsAdmin
FROM Users
WHERE Id = @userId;
END;
Örnek: Azure Cosmos DB
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"options": {
"database": "Your_CosmosDB_Database_Name",
"container": "Your_CosmosDB_Container_Name",
"schema": "Path_to_Your_GraphQL_Schema_File"
}
}
Note
Belirtilen "seçenekler" (database, containerve schema) Azure Cosmos DB'ye özeldir.
Environment variables
Düz metin gizli dizilerini yapılandırma dosyanızın dışında tutmak için ortam değişkenlerini kullanın.
Tip
Veri API'sinin oluşturucusu hem@env() function.env](../reference-functions.md#env) and [' dosyalarını destekler.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Veri API oluşturucusu, geçici hatalardan sonra veritabanı isteklerini yeniden denemek için Üstel Geri Alma kullanır.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Yönetilen Hizmet Kimlikleri (MSI)
Yönetilen Hizmet Kimlikleri (MSI) kitaplıkta Azure.Identity tanımlı olarak DefaultAzureCredential desteklenir.
Azure SQL için Microsoft Entra'da Yönetilen kimlikler hakkında daha fazla bilgi edinin.
yönetilen kimlikleri (UAMI) User-Assigned
For User Assigned Managed Identity, append the Authentication and User Id properties to your connection string while substituting in your User Assigned Managed Identity's client id: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned Yönetilen Kimlik (SAMI)
For System Assigned Managed Identity, append the Authentication property and exclude the UserId and Password arguments from your connection string: Authentication=Active Directory Managed Identity;.
Sistem Durumu (Veri kaynağı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Veri API oluşturucusu, her biri kendi veri kaynağına sahip olan birden çok yapılandırma dosyasını destekler. Bu yapılandırma bloğu, her veri kaynağının kendi sistem durumu yapılandırmasına sahip olmasını sağlar.
Nested properties
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
string | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Check name
Birden çok yapılandırma dosyası aynı türdeki veri kaynaklarını işaret ettiğinden, bu veri kaynakları sistem durumu raporunda ayırt edilemez. Yalnızca sistem durumu raporunda kullanılan benzersiz, tanımlanabilir bir etiket atamak için kullanın name .
Check behavior
Veritabanı türüne özgü olabilecek en basit sorgu, bağlantının açıldığını doğrulamak için verilen veri kaynağında yürütülür. Bu sorgunun threshold-ms tamamlanması için kabul edilebilir en uzun süreyi (milisaniye olarak) yapılandırmak için özelliğini kullanın.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}