Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Oddíl data-source definuje podrobnosti o přístupu k databázi. Definuje také možnosti databáze.
Nastavení zdroje dat
| Property | Description |
|---|---|
| data-source | Objekt obsahující nastavení připojení k databázi |
| data-source.database-type | Databáze použitá v back-endu: mssql, postgresqlmysql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Připojovací řetězec pro vybraný typ databáze |
| data-source.options | Vlastnosti specifické pro databázi (například možnosti PRO SQL Server, Cosmos DB atd.) |
| data-source.options.database | Název databáze Azure Cosmos DB for NoSQL (vyžaduje se, když database-type = cosmosdb_nosql) |
| data-source.options.container | Název kontejneru Azure Cosmos DB for NoSQL (vyžaduje se, když database-type = cosmosdb_nosql) |
| data-source.options.schema | Cesta k souboru schématu GraphQL (vyžaduje se v případě database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Umožňuje odesílání deklarací identity webového tokenu JSON (JWT) jako kontextu relace (pouze SQL Server). |
| data-source.health | Objekt konfigurující kontroly stavu pro zdroj dat |
| data-source.health.enabled | Povolí koncový bod kontroly stavu. |
| data-source.health.name | Identifikátor použitý v sestavě stavu |
| data-source.health.threshold-ms | Maximální doba trvání dotazu kontroly stavu v milisekundách |
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 | Typ | Required | Default |
|---|---|---|---|---|
$root |
database-source |
objekt | ✔️ Yes | - |
Nested properties
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
výčet | ✔️ Yes | None |
data-source |
connection-string |
řetězec | ✔️ Yes | None |
data-source |
options |
objekt | ❌ Ne | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL v prostředcích infrastruktury | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Koncový bod Fabric SQL Analytics | - |
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říklad: Azure SQL a 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.
Pohlcující SESSION_CONTEXT
Pro Azure SQL a SQL Server může Tvůrce rozhraní DATA API zahrnout informace o deklaracích v SQL 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říklad: 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
Zadané možnosti (database, containera schema) jsou specifické pro službu Azure Cosmos DB.
Environment variables
Pomocí proměnných prostředí udržujte tajné kódy ve formátu prostého textu mimo konfigurační soubor.
Tip
Tvůrce rozhraní Data API podporuje soubory @env() function.env](../reference-functions.md#env) and [.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Tvůrce rozhraní Data API používá exponenciální zpochybnění žádostí o databázi po přechodných chybách.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Identity spravované služby (MSI)
Identity spravované služby (MSI) jsou podporovány s definovanými DefaultAzureCredential v Azure.Identity knihovně. Přečtěte si další informace o spravovaných identitách v Microsoft Entra pro Azure SQL.
User-Assigned spravované identity (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>;.
spravovaná identita System-Assigned (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;.
Stav (zdroj dat)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
health |
objekt | No | – |
Tvůrce rozhraní Data API podporuje více konfiguračních souborů, z nichž každý má vlastní zdroj dat. Tento blok konfigurace umožňuje každému zdroji dat mít vlastní konfiguraci stavu.
Nested properties
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
řetězec | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Check name
Vzhledem k tomu, že několik konfiguračních souborů může odkazovat na zdroje dat stejného typu, nelze tyto zdroje dat rozlišit v sestavě o stavu. Slouží name k přiřazení jedinečného identifikovatelného popisku použitého pouze ve zprávě o stavu.
Check behavior
Nejjednodušší možný dotaz – specifický pro typ databáze – se provádí na daném zdroji dat, aby bylo možné ověřit, že je možné připojení otevřít.
threshold-ms Pomocí vlastnosti nakonfigurujte maximální přijatelnou dobu trvání (v milisekundách) pro dokončení dotazu.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}