Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A futtatókörnyezet viselkedését meghatározó konfigurációs beállítások.
Lapozási beállítások
| Property | Default | Description |
|---|---|---|
| runtime.pagination.max oldalméret | A maximális rekordokat határozza meg oldalanként | |
| runtime.pagination.default-page-size | Alapértelmezett rekordok beállítása válaszonként |
REST-beállítások
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
REST-végpontok alapútvonala |
| runtime.rest.enabled | true |
Lehetővé teszi a REST-kérelmek engedélyezését vagy letiltását az összes entitás esetében |
| runtime.rest.request-body-strict | true |
Nem engedélyezi a felesleges mezőket a kérelemtörzsben, ha igaz |
GraphQL-beállítások
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Lehetővé teszi a mögöttes GraphQL-séma lekérdezését |
| runtime.graphql.path | "/graphql" |
A GraphQL-végpont alap elérési útja |
| runtime.graphql.enabled | true |
Lehetővé teszi a GraphQL-kérelmek engedélyezését vagy letiltását az összes entitás esetében |
| runtime.graphql.depth-limit | null |
GraphQL-lekérdezés megengedett legnagyobb mélysége |
| runtime.graphql.multiple-mutations.create.enabled | false |
Több-létrehozási mutációk engedélyezése az összes entitáshoz |
Gazdagép beállításai
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Egyetlen eredményben engedélyezett adatbázis-válasz maximális mérete (MB) |
| runtime.host.mode | "production" |
Futó mód; "production" vagy "development" |
CORS-beállítások
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Engedélyezett CORS-források |
| runtime.host.cors.allow-credentials | false |
Az Access-Control-Allow-Credentials fejléc értékének beállítása |
Hitelesítési beállítások
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | Unauthenticated |
Hitelesítésszolgáltató |
| runtime.host.authentication.jwt.audience | null |
JWT-célközönség |
| runtime.host.authentication.jwt.issuer | null |
JWT-kiállító |
Gyorsítótár beállításai
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
A válaszok globális gyorsítótárazásának engedélyezése |
| runtime.cache.ttl-seconds | 5 |
Élettartam (másodperc) a globális gyorsítótárhoz |
| runtime.cache.level-2.enabled | false |
Globálisan engedélyezi az elosztott 2. szintű gyorsítótárat |
| runtime.cache.level-2.provider | "redis" |
Elosztott gyorsítótár-szolgáltató a 2. szintű gyorsítótárhoz |
| runtime.cache.level-2.connection-string | null |
Kapcsolati sztring a 2. szintű gyorsítótár-szolgáltatóhoz |
| runtime.cache.level-2.partition | null |
Nem kötelező partíciónév az elosztott gyorsítótárterület elkülönítéséhez |
Tömörítési beállítások
| Property | Default | Description |
|---|---|---|
| runtime.compression.level | optimal |
HTTP-választömörítési szint (optimalvagy fastestnone) |
Telemetriai beállítások
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Application Insights kapcsolati sztring |
| runtime.telemetry.application-insights.enabled | true |
Az Application Insights telemetriai adatainak engedélyezése vagy letiltása |
| runtime.telemetry.open-telemetry.endpoint | null |
OpenTelemetry collector URL-címe |
| runtime.telemetry.open-telemetry.headers | {} |
OpenTelemetry exportálási fejlécek |
| runtime.telemetry.open-telemetry.service-name | "dab" |
OpenTelemetry szolgáltatás neve |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
OpenTelemetry protocol ("grpc" vagy "httpprotobuf") |
| runtime.telemetry.open-telemetry.enabled | true |
OpenTelemetria engedélyezése vagy letiltása |
| runtime.telemetry.open-telemetry.enabled | true |
OpenTelemetria engedélyezése vagy letiltása |
| runtime.telemetry.azure-log-analytics.enabled | false |
Az Azure Log Analytics engedélyezése vagy letiltása |
| runtime.telemetry.azure-log-analytics.dab-identifier | "DabLogs" |
DAB-azonosító az Azure Log Analyticsben |
| runtime.telemetry.azure-log-analytics.flush-interval-seconds | 5 |
Intervallum a naplók kötegelt leküldései között (másodperc) |
| runtime.telemetry.azure-log-analytics.auth.custom-table-name | null |
Az Azure Log Analytics egyéni táblaneve |
| runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id | null |
Az adatgyűjtési szabály nem módosítható azonosítója |
| runtime.telemetry.azure-log-analytics.auth.dce-endpoint | null |
Adatgyűjtési végpont URL-címe |
| runtime.telemetry.file.enabled | false |
Fájlelfoglaló naplózásának engedélyezése vagy letiltása |
| runtime.telemetry.file.path | "/logs/dab-log.txt" |
Telemetriai naplók fájlútvonala |
| runtime.telemetry.file.rolling-interval | "Day" |
Naplófájlok gördülő időköze |
| runtime.telemetry.file.retained-file-count-limit | 1 |
Megtartott naplófájlok maximális száma |
| runtime.telemetry.file.file-size-limit-bytes | 1048576 |
Maximális fájlméret bájtban a működés előtt |
| runtime.telemetry.log-level.namespace | null |
Névtérspecifikus naplószint felülbírálása |
| runtime.health.enabled | true |
Az állapot-ellenőrzési végpont engedélyezése vagy letiltása globálisan |
| runtime.health.roles | null |
Az átfogó állapotvégpont engedélyezett szerepkörei |
| runtime.health.cache-ttl-seconds | 5 |
Élettartam (másodperc) az állapot-ellenőrzési jelentés gyorsítótár-bejegyzéséhez |
| runtime.health.max-query-parallelism | 4 |
Egyidejű állapotellenőrzési lekérdezések maximális száma (tartomány: 1–8) |
MCP-beállítások
| Property | Default | Description |
|---|---|---|
| runtime.mcp.enabled | true |
Az MCP-végpont globális engedélyezése vagy letiltása |
| runtime.mcp.path | "/mcp" |
Az MCP-végpont alap elérési útja |
| runtime.mcp.description | null |
Az MCP-ügyfeleknek küldött kiszolgáló leírása az inicializálás során |
| runtime.mcp.dml-tools | true |
Engedélyezi vagy letiltja az összes DML-eszközt, vagy egy objektumot az eszközenkénti vezérlőhöz |
| runtime.mcp.dml-tools.describe-entities | true |
Engedélyezi a describe_entities eszközt |
| runtime.mcp.dml-tools.create-record | true |
Engedélyezi a create_record eszközt |
| runtime.mcp.dml-tools.read-records | true |
Engedélyezi a read_records eszközt |
| runtime.mcp.dml-tools.update-record | true |
Engedélyezi a update_record eszközt |
| runtime.mcp.dml-tools.delete-record | true |
Engedélyezi a delete_record eszközt |
| runtime.mcp.dml-tools.execute-entity | true |
Engedélyezi a execute_entity eszközt |
| runtime.mcp.dml-tools.aggregate-records | true |
Engedélyezi a aggregate_records eszközt (logikai vagy objektum lekérdezési időtúllépéssel) |
Formátum áttekintése
{
"runtime": {
"pagination": {
"max-page-size": <integer|null> (default: `100000`),
"default-page-size": <integer|null> (default: `100`)
},
"rest": {
"path": <string> (default: "/api"),
"enabled": <true>|<false>,
"request-body-strict": <true>|<false> (default: `true`)
},
"graphql": {
"path": <string> (default: "/graphql"),
"enabled": <true>|<false>,
"allow-introspection": <true>|<false>,
"depth-limit": <integer|null> (default: `null`),
"multiple-mutations": {
"create": {
"enabled": <true>|<false> (default: `false`)
}
}
},
"host": {
"mode": <"production"> (default) | <"development">,
"max-response-size-mb": <integer|null> (default: `158`),
"cors": {
"origins": [ "<string>" ],
"allow-credentials": <true>|<false> (default: `false`)
},
"authentication": {
"provider": <string> (default: "Unauthenticated"),
"jwt": {
"audience": "<string>",
"issuer": "<string>"
}
}
}
},
"compression": {
"level": <"optimal"> (default) | <"fastest"> | <"none">
},
"cache": {
"enabled": <true>|<false> (default: `false`),
"ttl-seconds": <integer> (default: `5`),
"level-2": {
"enabled": <true>|<false> (default: `false`),
"provider": <"redis">,
"connection-string": <string>,
"partition": <string>
}
},
"telemetry": {
"application-insights": {
"connection-string": "<string>",
"enabled": <true>|<false> (default: `true`)
},
"open-telemetry": {
"endpoint": "<string>",
"headers": "<string>",
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc"> (default) | <"httpprotobuf">,
"enabled": <true>|<false> (default: `true`)
},
"azure-log-analytics": {
"enabled": <true>|<false> (default: `false`),
"dab-identifier": <string> (default: "DabLogs"),
"flush-interval-seconds": <integer> (default: `5`),
"auth": {
"custom-table-name": <string>,
"dcr-immutable-id": <string>,
"dce-endpoint": <string>
}
},
"file": {
"enabled": <true>|<false> (default: `false`),
"path": <string> (default: "/logs/dab-log.txt"),
"rolling-interval": <string> (default: "Day"),
"retained-file-count-limit": <integer> (default: `1`),
"file-size-limit-bytes": <integer> (default: `1048576`)
},
"log-level": {
// namespace keys
"<namespace>": <"trace"|"debug"|"information"|"warning"|"error"|"critical"|"none"|null>
}
},
"health": {
"enabled": <true>|<false> (default: `true`),
"roles": [ "<string>" ],
"cache-ttl-seconds": <integer> (default: `5`),
"max-query-parallelism": <integer> (default: `4`)
},
"mcp": {
"enabled": <true>|<false> (default: `true`),
"path": <string> (default: `"/mcp"`),
"description": <string>,
"dml-tools": <true>|<false> | {
"describe-entities": <true>|<false> (default: `true`),
"create-record": <true>|<false> (default: `true`),
"read-records": <true>|<false> (default: `true`),
"update-record": <true>|<false> (default: `true`),
"delete-record": <true>|<false> (default: `true`),
"execute-entity": <true>|<false> (default: `true`),
"aggregate-records": <true>|<false> | {
"enabled": <true>|<false> (default: `true`),
"query-timeout": <integer> (default: `30`)
}
}
}
}
}
Mód (Gazdagép futtatókörnyezete)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
host |
enum (production | development) |
❌ Nem | production |
Fejlesztési viselkedés
- Engedélyezve van a Nitro (korábbi nevén Banana Cake Pop) a GraphQL-teszteléshez
- Engedélyezett Swagger felhasználói felület REST-teszteléshez
- Engedélyezett névtelen állapotellenőrzések
- Fokozott naplózási részletesség (Hibakeresés)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Válasz maximális mérete (gazdagép-futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
egész szám | ❌ Nem | 158 |
Az adott eredmény maximális méretét (megabájtban) állítja be. Mivel a nagy válaszok túlterhelhetik a rendszert, max-response-size-mb a túlterhelés elkerülése érdekében a teljes méretet (a sorok számától eltérően) korlátozza, ami különösen a nagy oszlopoknál, például a szövegnél vagy a JSON-nál történik.
| Value | Result |
|---|---|
| nincs beállítva | Az alapértelmezett beállítás használata |
null |
Az alapértelmezett beállítás használata |
integer |
Bármely pozitív 32 bites egész szám |
<= 0 |
Nem támogatott |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
objektum | ❌ Nem | - |
Globális GraphQL-konfiguráció.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Nem | None |
runtime.graphql |
path |
karakterlánc | ❌ Nem | "/graphql" |
runtime.graphql |
depth-limit |
egész szám | ❌ Nem | Nincs (korlátlan) |
runtime.graphql |
allow-introspection |
boolean | ❌ Nem | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Nem | False |
Tulajdonságjegyzetek
- A tulajdonsághoz nem engedélyezett a
pathmellékút. - Beágyazott lekérdezések korlátozására használható
depth-limit. - Állítsa be
allow-introspectionúgy, hogyfalseelrejtse a GraphQL-sémát. - Több
multiple-mutationsentitás beszúrása egyetlen mutációba.
Format
{
"runtime": {
"graphql": {
"enabled": <true> (default) | <false>
"depth-limit": <integer|null> (default: `null`),
"path": <string> (default: /graphql),
"allow-introspection": <true> (default) | <false>,
"multiple-mutations": {
"create": {
"enabled": <true> | <false> (default)
}
}
}
}
}
Példa: több mutáció
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
GraphQL-mutáció
mutation {
createUsers(input: [
{ name: "Alice", age: 30, isAdmin: true },
{ name: "Bob", age: 25, isAdmin: false },
{ name: "Charlie", age: 35, isAdmin: true }
]) {
id
name
age
isAdmin
}
}
REST (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
rest |
objektum | ❌ Nem | - |
Globális REST-konfiguráció.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Nem | None |
runtime.rest |
path |
karakterlánc | ❌ Nem | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Nem | True |
Tulajdonságjegyzetek
- Ha globális
enabled, akkorfalseaz egyes entitásszintekenablednem számítanak. - A
pathtulajdonság nem támogatja az olyan segédértékeket, mint a/api/data. -
request-body-stricta .NET POCO-objektumok egyszerűsítése érdekében került bevezetésre.
request-body-strict |
Behavior |
|---|---|
true |
A kérelem törzsében lévő további mezők kivételt okoznak BadRequest . |
false |
A kérelem törzsében lévő további mezők figyelmen kívül lesznek hagyva. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Példa: request-body-strict
- Az értékekkel rendelkező
default()oszlopok csak akkor lesznek figyelmen kívül hagyvaINSERT, ha a hasznos adat értéke .nullEnnek következtébenINSERTaz oszlopokbandefault()végzett műveletek , harequest-body-strictvannaktrue, nem eredményezhetnek explicitnullértékeket. Ennek a viselkedésnek a végrehajtásához műveletreUPDATEvan szükség. - A hasznos adatértéktől függetlenül a rendszer nem hagyja figyelmen kívül
default()az egyUPDATEoszlopot tartalmazó oszlopokat. - A számított oszlopok mindig figyelmen kívül lesznek hagyva.
- Az automatikusan létrehozott oszlopok mindig figyelmen kívül lesznek hagyva.
Mintatábla
CREATE TABLE Users (
Id INT PRIMARY KEY IDENTITY, -- auto-generated column
Name NVARCHAR(50) NOT NULL,
Age INT DEFAULT 18, -- column with default
IsAdmin BIT DEFAULT 0, -- column with default
IsMinor AS IIF(Age <= 18, 1, 0) -- computed column
);
Hasznos adatok kérése
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Viselkedés beszúrása request-body-strict = false
INSERT INTO Users (Name) VALUES ('Alice');
-- Default values for Age (18) and IsAdmin (0) are applied by the database.
-- IsMinor is ignored because it’s a computed column.
-- ExtraField is ignored.
-- The database generates the Id value.
Választerhelés
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Frissítési viselkedés, ha request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Választerhelés
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (gazdagép-futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
objektum | ❌ Nem | - |
Globális CORS-konfiguráció.
Tip
A CORS a "Forrásközi erőforrás-megosztás" rövidítése. Ez egy böngészőbiztonsági funkció, amely azt szabályozza, hogy a weblapok kérhetnek-e kéréseket egy másik tartományhoz, mint amelyik kiszolgálta őket.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Nem | False |
runtime.host.cors |
origins |
karakterlánc-tömb | ❌ Nem | None |
Note
A allow-credentials tulajdonság beállítja a Access-Control-Allow-Credentials CORS-fejlécet.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> | <false> (default),
"origins": ["<array-of-strings>"]
}
}
}
}
Note
A helyettesítő karakter * a következő értékként originsérvényes: .
Szolgáltató (Hitelesítési gazdagép futtatókörnyezete)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
enum (UnauthenticatedSimulator | Custom | | | EntraId | StaticWebAppsAppService) |
❌ Nem | Unauthenticated |
Kiválasztja a hitelesítési módszert. Minden szolgáltató eltérően ellenőrzi az identitást. A lépésenkénti beállításhoz tekintse meg az alábbi táblázatban található útmutatókat.
Note
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Szolgáltató összefoglalása
| Provider | Felhasználási eset | Identitásforrás | Útmutató |
|---|---|---|---|
Unauthenticated |
A DAB egy megbízható előtér mögött helyezkedik el (alapértelmezett) | Nincs – az összes kérés a következőként fut: anonymous |
A hitelesítés nélküli szolgáltató konfigurálása |
AppService |
Azure-ban üzemeltetett alkalmazások (EasyAuth) |
X-MS-CLIENT-PRINCIPAL Fejléc |
App Service-hitelesítés konfigurálása |
EntraID |
Microsoft Entra ID (Azure AD) | JWT-tulajdonosi jogkivonat | Entra ID hitelesítés konfigurálása |
Custom |
Külső azonosítók (Okta, Hitelesítés0) | JWT-tulajdonosi jogkivonat | Egyéni JWT-hitelesítés konfigurálása |
Simulator |
Csak helyi tesztelés | Szimulált | Szimulátor-hitelesítés konfigurálása |
Note
A EntraId szolgáltató neve korábban el lett nevezve AzureAd. A régi név továbbra is kompatibilis.
Hitelesítés nélküli (alapértelmezett)
Ha Unauthenticated be van állítva (vagy nincs megadva szolgáltató), a DAB nem ellenőrzi vagy ellenőrzi a JWT-t. Minden kérés szerepkörként anonymous fut. Az olyan előtérbeli szolgáltatások, mint az Azure API Management vagy az application gateway, továbbra is képesek kezelni a hitelesítési vagy hozzáférési szabályzatot, mielőtt a kérések elérnék a DAB-t, de a DAB továbbra is csak a következőképpen engedélyezi a hitelesítést anonymous.
Important
Ha Unauthenticated aktív, authenticated és az entitásengedélyekben definiált egyéni szerepkörök soha nem aktiválódnak. Ha a konfiguráció tartalmazza ezeket a szerepköröket, a DAB figyelmeztetést ad ki indításkor.
{
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
AppService
Megbízik az Azure App Service EasyAuth által injektált identitásfejlécekben.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Ellenőrzi a Microsoft Entra ID által kibocsátott JWT-jogkivonatokat.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Személyre szabott
Ellenőrzi a külső identitásszolgáltatók JWT-jogkivonatait.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Szimulátor
A hitelesítést szimulálja a helyi fejlesztéshez és teszteléshez.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
A Simulator szolgáltató csak akkor működik, ha runtime.host.mode van development. A DAB nem indul el, ha a szimulátor éles módban van konfigurálva.
Szerepkör kiválasztása
A Szimulátor kivételével minden szolgáltató esetében a X-MS-API-ROLE fejléc a hitelesített felhasználó jogcímei közül választja ki a használni kívánt szerepkört. Ha nincs megadva, a kérés a rendszerszerepkört Authenticated használja. A szerepkör-értékeléssel kapcsolatos részletekért tekintse meg az engedélyezés áttekintését.
JWT (Hitelesítési gazdagép futtatókörnyezete)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
objektum | ❌ Nem | - |
Globális JSON-webjogkivonat (JWT) konfigurációja.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
karakterlánc | ✔️ Igen* | None |
runtime.host.authentication.jwt |
issuer |
karakterlánc | ✔️ Igen* | None |
* Mindkettőre audienceissuer szükség van, ha az jwt objektum jelen van. Az jwt objektumra akkor van szükség, ha a szolgáltató EntraIDaz , AzureADvagy Custom.
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Lapozás (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
objektum | ❌ Nem | - |
A REST- és GraphQL-végpontok globális lapszámozási korlátai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Nem | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Nem | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Nem | false |
Maximális oldalmérettel támogatott értékek
| Value | Result |
|---|---|
integer |
Minden pozitív 32 bites egész szám támogatott. |
0 |
Nem támogatott. |
-1 |
Alapértelmezés szerint a maximálisan támogatott érték. |
< -1 |
Nem támogatott. |
Alapértelmezett oldalméretű támogatott értékek
| Value | Result |
|---|---|
integer |
Az aktuális max-page-sizekisebb pozitív egész szám. |
0 |
Nem támogatott. |
-1 |
Az aktuális max-page-size beállítás alapértelmezett értéke. |
< -1 |
Nem támogatott. |
Következő kapcsolat relatív viselkedése
Ha next-link-relative igen, akkor a truelapozási nextLink értékek relatív URL-címeket használnak az abszolút URL-címek helyett.
| Value | Example |
|---|---|
false (alapértelmezett) |
"nextLink": "https://localhost:5001/api/users?$after=..." |
true |
"nextLink": "/api/users?$after=..." |
Format
{
"runtime": {
"pagination": {
"max-page-size": <integer; default: 100000>,
"default-page-size": <integer; default: 100>,
"next-link-relative": <boolean; default: false>
}
}
}
Note
Ha az érték nagyobb, mint max-page-size, az eredmények a következő időpontban max-page-sizelesznek leképezve: .
Példa: Lapozás REST-ben
Request
GET https://localhost:5001/api/users
Választerhelés
{
"value": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"nextLink": "https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
Következő lap kérése
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Példa: Lapozás a GraphQL-ben
Hasznos adatok kérése (lekérdezés)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Választerhelés
{
"data": {
"users": {
"items": [
{
"Id": 1,
"Name": "Alice",
"Age": 30,
"IsAdmin": true,
"IsMinor": false
},
{
"Id": 2,
"Name": "Bob",
"Age": 17,
"IsAdmin": false,
"IsMinor": true
}
],
"hasNextPage": true,
"endCursor": "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI=="
}
}
}
Következő lap kérése
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Példa: Hozzáférés kérésekben max-page-size
Használja az értéket a max-page-size (REST) vagy $limit a (GraphQL) beállításával first-1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Tömörítés (futtatókörnyezet)
Note
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
compression |
objektum | ❌ Nem | - |
HTTP-választömörítés konfigurálása. Ha engedélyezve van, a DAB tömöríti a választörzseket a hasznos adatok méretének csökkentése és az átviteli sebesség javítása érdekében.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.compression |
level |
karakterlánc | ❌ Nem | "optimal" |
Támogatott értékek a következőhöz: level
| Value | Description | Tömörítési megtakarítás | A teljesítményre gyakorolt hatás |
|---|---|---|---|
optimal |
Egyenlegek aránya és sebessége (alapértelmezett) | Gzip: 90,5% / Brotli: 92,2% | Mérsékelt processzorhasználat, enyhe késés-növekedés |
fastest |
A sebesség arányának rangsorolása | Gzip: 89,8% / Brotli: 91,1% | Alacsony processzorhasználat, minimális késés |
none |
Nincs tömörítés | 0% (alapkonfiguráció: 12 673 bájt) | None |
Ügyfél HTTP-fejlécei
A tömörítést az ügyfél fejléce Accept-Encoding hívja meg. A támogatott algoritmusok a Gzip és a Brotli. A level beállítás akkor konfigurálja a tömörítési stratégiát, ha az ügyfél és a kiszolgáló is több algoritmust támogat.
Támogatott fejlécek
| HTTP-fejléc | Használt algoritmus |
|---|---|
Accept-Encoding: gzip |
Gzip |
Accept-Encoding: br |
Brotli |
Format
{
"runtime": {
"compression": {
"level": <"optimal"> (default) | <"fastest"> | <"none">
}
}
}
Example
{
"runtime": {
"compression": {
"level": "optimal"
}
}
}
Gyorsítótár (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
cache |
objektum | ❌ Nem | - |
Globális gyorsítótár konfigurálása.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Nem | False |
runtime.cache |
ttl-seconds |
egész szám | ❌ Nem | 5 |
runtime.cache |
level-2 |
objektum | ❌ Nem | - |
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.cache.level-2 |
enabled |
boolean | ❌ Nem | False |
runtime.cache.level-2 |
provider |
karakterlánc | ❌ Nem | redis |
runtime.cache.level-2 |
connection-string |
karakterlánc | ❌ Nem | None |
runtime.cache.level-2 |
partition |
karakterlánc | ❌ Nem | None |
Tip
Az entitásszintű cache.ttl-seconds tulajdonság alapértelmezés szerint erre a globális értékre van bekapcsolva.
Tip
A végpontok közötti beállításról, a gyorsítótárszintű viselkedésről és a Redis-példákról lásd a 2. szintű gyorsítótár implementálását.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level-2": {
"enabled": <boolean>,
"provider": "redis",
"connection-string": <string>,
"partition": <string>
}
}
}
}
Important
Ha globális enabled , akkor falseaz egyes entitásszintek enabled nem számítanak.
Ha level-2.enabled igen, a trueDAB a helyi memóriabeli gyorsítótár mellett a konfigurált elosztott gyorsítótár-szolgáltatót is használja. A gyorsítótárszinttel L1L2 konfigurált entitás először a helyi gyorsítótárat, majd az elosztott gyorsítótárat ellenőrzi az adatbázisba való ugrás előtt.
Telemetria (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
objektum | ❌ Nem | - |
Globális telemetriai konfiguráció.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Nem | None |
runtime.telemetry |
application-insights |
objektum | ❌ Nem | - |
runtime.telemetry |
open-telemetry |
objektum | ❌ Nem | - |
runtime.telemetry |
azure-log-analytics |
objektum | ❌ Nem | - |
runtime.telemetry |
file |
objektum | ❌ Nem | - |
A naplózás részletességét konfigurálja névtérenként. Ez a konfiguráció a szabványos .NET-naplózási konvenciók szerint működik, és lehetővé teszi a részletes vezérlést, bár feltételezi, hogy a Data API Builder belső beállításainak ismerete némiképp ismerős. A Data API Builder nyílt forráskódú: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level a fejlesztésben és az éles környezetben is gyakran újra betölthető. Jelenleg ez az egyetlen tulajdonság, amely támogatja a gyakori elérésű újratöltést az éles környezetben.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (telemetria)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
objektum | ❌ Nem | - |
Az Application Insightsba való naplózást konfigurálja.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Nem | true |
runtime.telemetry.application-insights |
connection-string |
karakterlánc | ✔️ Igen | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetria (telemetria)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
objektum | ❌ Nem | - |
A naplózást a Telemetria megnyitása gombra konfigurálja.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Nem | true |
runtime.telemetry.open-telemetry |
endpoint |
karakterlánc | ✔️ Igen | None |
runtime.telemetry.open-telemetry |
headers |
karakterlánc | ❌ Nem | None |
runtime.telemetry.open-telemetry |
service-name |
karakterlánc | ❌ Nem | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
enum (grpc | httpprotobuf) |
❌ Nem | grpc |
Több fejléc ( , vessző) van elválasztva.
Format
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": <true> (default) | <false>,
"endpoint": <string>,
"headers": <string>,
"service-name": <string> (default: "dab"),
"exporter-protocol": <"grpc" (default) | "httpprotobuf">
}
}
}
}
Example
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
// a gRPC endpoint example
"endpoint": "http://localhost:4317",
// an HTTP/protobuf endpoint example
"endpoint": "http://localhost:4318/v1/metrics",
"headers": "api-key=key,other-config-value=value",
"service-name": "dab",
}
}
}
}
További információ a OTEL_EXPORTER_OTLP_HEADERS.
Note
A gRPC (4317) gyorsabb és támogatja a streamelést, de több beállítási lépést igényel. A HTTP/protobuf (4318) egyszerűbb és egyszerűbb hibakeresés, de kevésbé hatékony.
Azure Log Analytics (telemetria)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
azure-log-analytics |
objektum | ❌ Nem | - |
Az Azure Log Analyticsbe való naplózást egy adatgyűjtési végponton keresztül konfigurálja. Ha engedélyezve van, a DAB konfigurálható időközönként küld telemetriai adatokat kötegekben.
Note
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry.azure-log-analytics |
enabled |
boolean | ❌ Nem | false |
runtime.telemetry.azure-log-analytics |
dab-identifier |
karakterlánc | ❌ Nem | "DabLogs" |
runtime.telemetry.azure-log-analytics |
flush-interval-seconds |
egész szám | ❌ Nem | 5 |
runtime.telemetry.azure-log-analytics |
auth |
objektum | ✔️ Igen* | - |
*
auth szükség van, ha enabled van true.
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry.azure-log-analytics.auth |
custom-table-name |
karakterlánc | ✔️ Igen* | null |
runtime.telemetry.azure-log-analytics.auth |
dcr-immutable-id |
karakterlánc | ✔️ Igen* | null |
runtime.telemetry.azure-log-analytics.auth |
dce-endpoint |
karakterlánc | ✔️ Igen* | null |
* Kötelező, ha enabled van true.
-
dab-identifier– a Log Analyticsnek átadott címke, amely segít megkülönböztetni a Data API Buildertől származó naplókat. -
flush-interval-seconds— a telemetriai adatok kötegeinek küldése közötti időintervallum (másodpercben). -
custom-table-name– annak az egyéni táblának a neve az Azure Log Analyticsben, ahol az adatok tárolása történik. -
dcr-immutable-id— az adatgyűjtési szabály nem módosítható azonosítója, amely meghatározza az adatok gyűjtésének módját. -
dce-endpoint– a telemetriai adatok küldéséhez használt adatgyűjtési végpont URL-címe.
Format
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": <true> | <false> (default),
"dab-identifier": <string> (default: "DabLogs"),
"flush-interval-seconds": <integer> (default: 5),
"auth": {
"custom-table-name": "<string>",
"dcr-immutable-id": "<string>",
"dce-endpoint": "<string>"
}
}
}
}
}
Example
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "MyDabInstance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabTelemetry_CL",
"dcr-immutable-id": "dcr-abc123def456",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Fájl (telemetria)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
file |
objektum | ❌ Nem | - |
Telemetriai naplók helyi fájlba írását konfigurálja. Ha engedélyezve van, a DAB strukturált naplókimenetet ír a megadott fájlútvonalra konfigurálható gördülési időközökkel és méretkorlátokkal.
Note
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.telemetry.file |
enabled |
boolean | ❌ Nem | false |
runtime.telemetry.file |
path |
karakterlánc | ✔️ Igen* | "/logs/dab-log.txt" |
runtime.telemetry.file |
rolling-interval |
felsorolás | ❌ Nem | "Day" |
runtime.telemetry.file |
retained-file-count-limit |
egész szám | ❌ Nem | 1 |
runtime.telemetry.file |
file-size-limit-bytes |
egész szám | ❌ Nem | 1048576 |
*
path szükség van, ha enabled van true.
Gördülő intervallumértékek
| Value | Description |
|---|---|
Minute |
Új naplófájl percenként |
Hour |
Új naplófájl óránként |
Day |
Új naplófájl minden nap (alapértelmezett) |
Month |
Új naplófájl havonta |
Year |
Új naplófájl minden évben |
Infinite |
Soha ne gördítsen új fájlba |
Format
{
"runtime": {
"telemetry": {
"file": {
"enabled": <true> | <false> (default),
"path": <string> (default: "/logs/dab-log.txt"),
"rolling-interval": <"Day"> (default) | <"Minute"> | <"Hour"> | <"Month"> | <"Year"> | <"Infinite">,
"retained-file-count-limit": <integer> (default: 1),
"file-size-limit-bytes": <integer> (default: 1048576)
}
}
}
}
Example
{
"runtime": {
"telemetry": {
"file": {
"enabled": true,
"path": "/var/log/dab/dab-telemetry.txt",
"rolling-interval": "Hour",
"retained-file-count-limit": 24,
"file-size-limit-bytes": 5242880
}
}
}
}
MCP (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
mcp |
objektum | ❌ Nem | - |
Konfigurálja az SQL Model Context Protocol (MCP) kiszolgálót, amely az adatbázis-entitásokat MCP-eszközként teszi elérhetővé az AI-ügynökök számára.
Note
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.mcp |
enabled |
boolean | ❌ Nem | true |
runtime.mcp |
path |
karakterlánc | ❌ Nem | "/mcp" |
runtime.mcp |
description |
karakterlánc | ❌ Nem | null |
runtime.mcp |
dml-tools |
logikai vagy objektum | ❌ Nem | true |
A dml-tools tulajdonság egy logikai értéket fogad el az összes eszköz vagy objektum engedélyezéséhez vagy letiltásához az egyes eszközök vezérléséhez:
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime.mcp.dml-tools |
describe-entities |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
create-record |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
read-records |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
update-record |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
delete-record |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
execute-entity |
boolean | ❌ Nem | true |
runtime.mcp.dml-tools |
aggregate-records |
logikai vagy objektum | ❌ Nem | true |
Az aggregate-records eszköz egy logikai vagy egy további beállításokkal rendelkező objektumot fogad el:
| Parent | Property | Típus | Required | Default | Tartomány |
|---|---|---|---|---|---|
runtime.mcp.dml-tools.aggregate-records |
enabled |
boolean | ❌ Nem | true |
|
runtime.mcp.dml-tools.aggregate-records |
query-timeout |
egész szám | ❌ Nem | 30 |
1–600 másodperc |
Format
{
"runtime": {
"mcp": {
"enabled": <true> (default) | <false>,
"path": <string> (default: "/mcp"),
"description": <string>,
"dml-tools": {
"describe-entities": <true> | <false>,
"create-record": <true> | <false>,
"read-records": <true> | <false>,
"update-record": <true> | <false>,
"delete-record": <true> | <false>,
"execute-entity": <true> | <false>,
"aggregate-records": {
"enabled": <true> | <false>,
"query-timeout": <integer; default: 30>
}
}
}
}
}
Example
{
"runtime": {
"mcp": {
"enabled": true,
"dml-tools": {
"describe-entities": true,
"create-record": true,
"read-records": true,
"update-record": true,
"delete-record": true,
"execute-entity": true,
"aggregate-records": {
"enabled": true,
"query-timeout": 30
}
}
}
}
}
Ha az összes DML-eszközt egyszerre szeretné engedélyezni vagy letiltani, állítsa be vagy "dml-tools"tiltsa true lefalse.
Ha futásidőben letilt egy eszközt, az eszköz soha nem jelenik meg az MCP-válaszban tools/list , és entitásszintű engedélyektől függetlenül nem hívható meg. Az egyes DML-eszközökkel kapcsolatos további információkért lásd: Adatmanipulációs nyelv (DML) eszközök.
A parancssori felület használata
dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities true
dab configure --runtime.mcp.dml-tools.create-record true
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.update-record true
dab configure --runtime.mcp.dml-tools.delete-record true
dab configure --runtime.mcp.dml-tools.execute-entity true
dab configure --runtime.mcp.dml-tools.aggregate-records.enabled true
Állapot (futtatókörnyezet)
| Parent | Property | Típus | Required | Default |
|---|---|---|---|---|
runtime |
health |
objektum | ❌ Nem | - |
Globális állapotellenőrzési végpont (/health) konfigurációja.
Beágyazott tulajdonságok
| Parent | Property | Típus | Required | Default | Tartomány/jegyzetek |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Nem | true |
|
runtime.health |
roles |
karakterlánc-tömb | ✔️ Igen* | null |
*Éles módban szükséges |
runtime.health |
cache-ttl-seconds |
egész szám | ❌ Nem | 5 |
Min: 0 |
runtime.health |
max-query-parallelism |
egész szám | ❌ Nem | 4 |
Min: Egy, Max: Nyolc (rögzített) |
A fejlesztés és az éles környezet viselkedése
| Condition | Fejlesztési viselkedés | Éles viselkedés |
|---|---|---|
health.enabled = hamis |
403 állapot |
403 állapot |
health.enabled = igaz |
Szerepkörtől függ | Szerepkörtől függ |
roles ki van hagyva vagy null |
Állapot jelenik meg |
403 állapot |
jelenlegi szerepkör nincs a következőben: roles |
403 állapot |
403 állapot |
aktuális szerepkör a következőben: roles |
Állapot jelenik meg | Állapot jelenik meg |
roles Tartalmazza anonymous |
Állapot jelenik meg | Állapot jelenik meg |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Ha globális enabled , akkor falseaz egyes entitásszintek enabled nem számítanak.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}