Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La data-source section définit les détails de l’accès à la base de données. Il définit également les options de base de données.
Paramètres de la source de données
| Property | Description |
|---|---|
| data-source | Objet contenant les paramètres de connectivité de base de données |
| data-source.database-type | Base de données utilisée dans le serveur principal : mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql |
| data-source.connection-string | Chaîne de connexion pour le type de base de données sélectionné |
| data-source.options | Propriétés spécifiques à la base de données (par exemple, options pour SQL Server, Cosmos DB, etc.) |
| data-source.options.database | Nom de la base de données Azure Cosmos DB pour NoSQL (obligatoire lorsque database-type = cosmosdb_nosql) |
| data-source.options.container | Nom du conteneur Azure Cosmos DB pour NoSQL (obligatoire quand database-type = cosmosdb_nosql) |
| data-source.options.schema | Chemin d’accès au fichier de schéma GraphQL (obligatoire lorsque database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Active l’envoi de revendications JSON Web Token (JWT) en tant que contexte de session (SQL Server uniquement) |
| data-source.health | Objet configurant des vérifications d’intégrité pour la source de données |
| data-source.health.enabled | Active le point de terminaison de contrôle d’intégrité |
| data-source.health.name | Identificateur utilisé dans le rapport d’intégrité |
| data-source.health.threshold-ms | Durée maximale en millisecondes pour la requête de contrôle d’intégrité |
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 | ❌ Non | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL dans Fabric | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Point de terminaison Fabric SQL Analytics | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB pour NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB pour PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Exemple : 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.
Consommer SESSION_CONTEXT
Pour Azure SQL et SQL Server, le générateur d’API de données peut inclure des informations sur les revendications dans les fichiers 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;
Exemple : 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
Les « options » spécifiées (database, containeret schema) sont spécifiques à Azure Cosmos DB.
Environment variables
Utilisez des variables d’environnement pour empêcher les secrets de texte brut de votre fichier de configuration.
Tip
Le générateur d’API de données prend en charge les @env() fichiers function.env](../reference-functions.md#env) and [.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Le générateur d’API de données utilise l’interruption exponentielle pour réessayer les demandes de base de données après des erreurs temporaires.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Identités de service managées (MSI)
Les identités de service managé (MSI) sont prises en charge avec DefaultAzureCredential définies dans la Azure.Identity bibliothèque. En savoir plus sur les identités managées dans Microsoft Entra pour Azure SQL.
identités managées 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>;.
System-Assigned Managed Identity (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;.
Intégrité (source de données)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Le générateur d’API de données prend en charge plusieurs fichiers de configuration, chacun avec sa propre source de données. Ce bloc de configuration permet à chaque source de données d’avoir sa propre configuration d’intégrité.
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
Étant donné que plusieurs fichiers de configuration peuvent pointer vers des sources de données du même type, ces sources de données ne peuvent pas être distinguées dans le rapport d’intégrité. Permet name d’attribuer une étiquette unique et identifiable utilisée uniquement dans le rapport d’intégrité.
Check behavior
La requête la plus simple, propre au type de base de données, est exécutée sur la source de données donnée pour vérifier que la connexion peut être ouverte. Utilisez la threshold-ms propriété pour configurer la durée maximale acceptable (en millisecondes) pour que cette requête se termine.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}