Megosztás a következőn keresztül:


Data source

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.

"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>
    }
  }
}