Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sekcja data-source definiuje szczegóły dostępu do bazy danych. Definiuje również opcje bazy danych.
Ustawienia źródła danych
| Property | Description |
|---|---|
| data-source | Obiekt zawierający ustawienia łączności z bazą danych |
| data-source.database-type | Baza danych używana w zapleczu: mssql, , mysqlpostgresql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Parametry połączenia dla wybranego typu bazy danych |
| data-source.options | Właściwości specyficzne dla bazy danych (na przykład opcje dla programu SQL Server, usługi Cosmos DB itp.) |
| data-source.options.database | Nazwa bazy danych Azure Cosmos DB for NoSQL (wymagana, gdy database-type = cosmosdb_nosql) |
| data-source.options.container | Nazwa kontenera usługi Azure Cosmos DB for NoSQL (wymagana, gdy database-type = cosmosdb_nosql) |
| data-source.options.schema | Ścieżka do pliku schematu GraphQL (wymagane, gdy database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Umożliwia wysyłanie oświadczeń tokenu internetowego JSON (JWT) jako kontekstu sesji (tylko program SQL Server) |
| data-source.health | Obiekt konfigurując kontrole kondycji źródła danych |
| data-source.health.enabled | Włącza punkt końcowy sprawdzania kondycji |
| data-source.health.name | Identyfikator używany w raporcie kondycji |
| data-source.health.threshold-ms | Maksymalny czas trwania w milisekundach dla zapytania sprawdzania kondycji |
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 |
obiekt | ✔️ Yes | - |
Nested properties
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
wyliczenie | ✔️ Yes | None |
data-source |
connection-string |
ciąg | ✔️ Yes | None |
data-source |
options |
obiekt | ❌ Nie | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL w sieci szkieletowej | - |
mssql |
Azure SQL Database | - |
mssql |
Zarządzane wystąpienie Azure SQL | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Punkt końcowy usługi SQL Analytics w sieci szkieletowej | - |
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>
}
}
}
Przykład: Azure SQL i 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.
Spożywanie SESSION_CONTEXT
W przypadku usług Azure SQL i SQL Server konstruktor interfejsu API danych może zawierać informacje o oświadczeniach w usługach SESSION_CONTEXTSQL .
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;
Przykład: 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
Określone opcje (database, containeri schema) są specyficzne dla usługi Azure Cosmos DB.
Environment variables
Użyj zmiennych środowiskowych, aby zachować wpisy tajne zwykłego tekstu z pliku konfiguracji.
Tip
Konstruktor interfejsu API danych obsługuje oba pliki function.env](../reference-functions.md#env) and [.@env()
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Konstruktor interfejsu API danych używa wycofywania wykładniczego w celu ponawiania żądań bazy danych po błędach przejściowych.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Tożsamości usługi zarządzanej (MSI)
Tożsamości usługi zarządzanej (MSI) są obsługiwane przez funkcję zdefiniowaną DefaultAzureCredential w Azure.Identity bibliotece. Dowiedz się więcej o tożsamościach zarządzanych w usłudze Microsoft Entra for Azure SQL.
tożsamości zarządzane User-Assigned (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>;.
tożsamość zarządzana 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;.
Kondycja (źródło danych)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
health |
obiekt | No | – |
Konstruktor interfejsu API danych obsługuje wiele plików konfiguracji, z których każdy ma własne źródło danych. Ten blok konfiguracji umożliwia każdemu źródle danych posiadanie własnej konfiguracji kondycji.
Nested properties
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
ciąg | No | database-type |
data-source.health |
threshold-ms |
liczba całkowita | No | 1000 |
Check name
Ponieważ wiele plików konfiguracji może wskazywać źródła danych tego samego typu, te źródła danych nie mogą być rozróżniane w raporcie kondycji. Służy name do przypisywania unikatowej, możliwej do zidentyfikowania etykiety używanej tylko w raporcie kondycji.
Check behavior
Najprostsze możliwe zapytanie — specyficzne dla typu bazy danych — jest wykonywane względem danego źródła danych w celu sprawdzenia, czy połączenie można otworzyć.
threshold-ms Użyj właściwości , aby skonfigurować maksymalny dopuszczalny czas trwania (w milisekundach) dla tego zapytania do ukończenia.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}