Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la sección se data-source definen los detalles del acceso a la base de datos. También define las opciones de la base de datos.
Configuración del origen de datos
| Property | Description |
|---|---|
| data-source | Objeto que contiene la configuración de conectividad de la base de datos |
| data-source.database-type | Base de datos usada en el back-end: mssql, postgresql, mysql, , cosmosdb_nosql, cosmosdb_postgresql |
| data-source.connection-string | Cadena de conexión para el tipo de base de datos seleccionado |
| data-source.options | Propiedades específicas de la base de datos (por ejemplo, opciones para SQL Server, Cosmos DB, etc.) |
| data-source.options.database | Nombre de la base de datos de Azure Cosmos DB para NoSQL (se requiere cuando database-type = cosmosdb_nosql) |
| data-source.options.container | Nombre del contenedor de Azure Cosmos DB para NoSQL (necesario cuando database-type = cosmosdb_nosql) |
| data-source.options.schema | Ruta de acceso al archivo de esquema graphQL (obligatorio cuando database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Habilita el envío de notificaciones de JSON Web Token (JWT) como contexto de sesión (solo SQL Server) |
| data-source.health | Objeto que configura comprobaciones de estado para el origen de datos |
| data-source.health.enabled | Habilita el punto de conexión de comprobación de estado |
| data-source.health.name | Identificador usado en el informe de estado |
| data-source.health.threshold-ms | Duración máxima en milisegundos para la consulta de comprobación de estado |
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 | ❌ No | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL en Fabric | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Punto de conexión de SQL Analytics de Fabric | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB para NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB para PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Ejemplo: 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.
Consumir SESSION_CONTEXT
Para Azure SQL y SQL Server, el generador de API de datos puede incluir información de notificaciones en 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;
Ejemplo: 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
Las "opciones" especificadas (database, containery schema) son específicas de Azure Cosmos DB.
Environment variables
Use variables de entorno para mantener los secretos de texto sin formato del archivo de configuración.
Tip
Data API Builder admite los @env() archivos function.env](../reference-functions.md#env) and [.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Data API Builder usa retroceso exponencial para reintentar las solicitudes de base de datos después de errores transitorios.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Identidades de servicio administradas (MSI)
Las identidades de servicio administradas (MSI) se admiten con DefaultAzureCredential definidas en Azure.Identity la biblioteca. Obtenga más información sobre las identidades administradas en Microsoft Entra para Azure SQL.
User-Assigned identidades administradas (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>;.
identidad administrada de 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;.
Estado (origen de datos)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Data API Builder admite varios archivos de configuración, cada uno con su propio origen de datos. Este bloque de configuración permite que cada origen de datos tenga su propia configuración de estado.
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
Dado que varios archivos de configuración pueden apuntar a orígenes de datos del mismo tipo, esos orígenes de datos no se pueden distinguir en el informe de estado. Use name para asignar una etiqueta única y identificable que solo se usa en el informe de mantenimiento.
Check behavior
La consulta más sencilla posible,específica del tipo de base de datos, se ejecuta en el origen de datos especificado para validar que se puede abrir la conexión. Use la threshold-ms propiedad para configurar la duración máxima aceptable (en milisegundos) para que se complete esa consulta.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}