Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A data-source szakasz az adatbázis-hozzáférés részleteit határozza meg. Az adatbázis-beállításokat is meghatározza.
Adatforrás beállításai
| Property | Description |
|---|---|
| data-source | Adatbázis-kapcsolati beállításokat tartalmazó objektum |
| data-source.database-type | A háttérrendszerben használt adatbázis: mssql, postgresql, mysql, cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | A kijelölt adatbázistípus kapcsolati sztringje |
| data-source.options | Adatbázis-specifikus tulajdonságok (például az SQL Server, a Cosmos DB stb. beállításai) |
| data-source.options.database | Az Azure Cosmos DB for NoSQL-adatbázis neve (amikor database-type = cosmosdb_nosqlszükséges) |
| data-source.options.container | Az Azure Cosmos DB for NoSQL-tároló neve (amikor database-type = cosmosdb_nosqlszükséges) |
| data-source.options.schema | A GraphQL-sémafájl elérési útja (amikor database-type = cosmosdb_nosqlszükséges) |
| data-source.options.set-session-context | JSON-webjogkivonat (JWT) jogcímek küldésének engedélyezése munkamenet-környezetként (csak SQL Server esetén) |
| data-source.health | Az adatforrás állapot-ellenőrzését konfiguráló objektum |
| data-source.health.enabled | Az állapot-ellenőrzési végpont engedélyezése |
| data-source.health.name | Az állapotjelentésben használt azonosító |
| data-source.health.threshold-ms | Állapot-ellenőrzési lekérdezés maximális időtartama ezredmásodpercben |
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 | Típus | Required | Default |
|---|---|---|---|---|
$root |
database-source |
objektum | ✔️ Yes | - |
Nested properties
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
felsorolás | ✔️ Yes | None |
data-source |
connection-string |
karakterlánc | ✔️ Yes | None |
data-source |
options |
objektum | ❌ Nem | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL a Fabricben | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Fabric SQL Analytics-végpont | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB for NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB for PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Példa: 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.
Fogyasztása SESSION_CONTEXT
Az Azure SQL és az SQL Server esetében a Data API Builder jogcímadatokat is tartalmazhat az SQL-ben SESSION_CONTEXT.
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;
Példa: 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
A megadott (databasecontainerés schema) "beállítások" az Azure Cosmos DB-hez tartoznak.
Environment variables
Környezeti változók használatával az egyszerű szöveges titkos kódokat a konfigurációs fájlból távol tarthatja.
Tip
A Data API Builder támogatja a @env() function.env](../reference-functions.md#env) and [' fájlokat.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
A Data API Builder exponenciális backoff használatával újrapróbálkozza az adatbázis-kérelmeket átmeneti hibák után.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Felügyeltszolgáltatás-identitások (MSI)
A felügyeltszolgáltatás-identitások (MSI) támogatottak a DefaultAzureCredential kódtárban definiálva Azure.Identity . További információ a felügyelt identitásokról az Azure SQL-hez készült Microsoft Entra-ban.
User-Assigned felügyelt identitások (UAMI)
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 felügyelt identitás (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;.
Állapot (adatforrás)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
data-source |
health |
objektum | No | – |
A Data API Builder több konfigurációs fájlt is támogat, amelyek mindegyike saját adatforrással rendelkezik. Ez a konfigurációs blokk lehetővé teszi, hogy minden adatforrás saját állapotkonfigurációval rendelkezzen.
Nested properties
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
karakterlánc | No | database-type |
data-source.health |
threshold-ms |
egész szám | No | 1000 |
Check name
Mivel több konfigurációs fájl is azonos típusú adatforrásokra mutathat, ezek az adatforrások nem különböztethetők meg az állapotjelentésben. A csak az állapotjelentésben használt egyedi, azonosítható címke hozzárendeléséhez használható name .
Check behavior
A rendszer az adatbázis típusának megfelelő legegyszerűbb lekérdezést hajtja végre az adott adatforráson annak ellenőrzéséhez, hogy a kapcsolat megnyitható-e.
threshold-ms A tulajdonság használatával konfigurálhatja a lekérdezés maximális elfogadható időtartamát (ezredmásodpercben).
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}