Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çalışma zamanı davranışını belirleyen yapılandırma ayarları.
Sayfalandırma ayarları
| Property | Default | Description |
|---|---|---|
| sayfa boyutu runtime.pagination.max | Sayfa başına en fazla kaydı tanımlar | |
| runtime.pagination.default-page-size | Yanıt başına varsayılan kayıtları ayarlar |
REST ayarları
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
REST uç noktaları için temel yol |
| runtime.rest.enabled | true |
Tüm varlıklar için REST isteklerinin etkinleştirilmesine veya devre dışı bırakılmasına izin verir |
| runtime.rest.request-body-strict | true |
Doğru olduğunda istek gövdesindeki fazlalık alanlara izin verme |
GraphQL ayarları
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Temel alınan GraphQL şemasının sorgulanmasına izin verir |
| runtime.graphql.path | "/graphql" |
GraphQL uç noktası için temel yol |
| runtime.graphql.enabled | true |
Tüm varlıklar için GraphQL isteklerini etkinleştirmeye veya devre dışı bırakmaya izin verir |
| runtime.graphql.depth-limit | null |
GraphQL sorgusunun izin verilen en fazla derinliği |
| runtime.graphql.multiple-mutations.create.enabled | false |
Tüm varlıklar için birden çok mutasyon oluşturmasına izin verir |
Konak ayarları
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Tek bir sonuçta izin verilen en büyük veritabanı yanıtı boyutu (MB) |
| runtime.host.mode | "production" |
Çalıştırma modu; "production" veya "development" |
CORS ayarları
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
İzin verilen CORS kaynakları |
| runtime.host.cors.allow-credentials | false |
Access-Control-Allow-Credentials üst bilgisi için değeri ayarlar |
Kimlik doğrulama ayarları
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | Unauthenticated |
Kimlik doğrulama sağlayıcısı |
| runtime.host.authentication.jwt.audience | null |
JWT hedef kitlesi |
| runtime.host.authentication.jwt.issuer | null |
JWT veren |
Önbellek ayarları
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Yanıtların genel olarak önbelleğe alınmasını sağlar |
| runtime.cache.ttl-seconds | 5 |
Genel önbellek için yaşam süresi (saniye) |
| runtime.cache.level-2.enabled | false |
Dağıtılmış düzey 2 önbelleğini genel olarak etkinleştirir |
| runtime.cache.level-2.provider | "redis" |
Düzey 2 önbelleği için dağıtılmış önbellek sağlayıcısı |
| runtime.cache.level-2.connection-string | null |
Düzey 2 önbellek sağlayıcısı için bağlantı dizesi |
| runtime.cache.level-2.partition | null |
Dağıtılmış önbellek alanını yalıtma için isteğe bağlı bölüm adı |
Sıkıştırma ayarları
| Property | Default | Description |
|---|---|---|
| runtime.compression.level | optimal |
HTTP yanıt sıkıştırma düzeyi (optimal, fastestveya none) |
Telemetri ayarları
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Application Insights bağlantı dizesi |
| runtime.telemetry.application-insights.enabled | true |
Application Insights telemetrisini etkinleştirir veya devre dışı bırakır |
| runtime.telemetry.open-telemetry.endpoint | null |
OpenTelemetry toplayıcı URL'si |
| runtime.telemetry.open-telemetry.headers | {} |
OpenTelemetry dışarı aktarma üst bilgileri |
| runtime.telemetry.open-telemetry.service-name | "dab" |
OpenTelemetry hizmet adı |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
OpenTelemetry protokolü ("grpc" veya "httpprotobuf") |
| runtime.telemetry.open-telemetry.enabled | true |
OpenTelemetry'yi etkinleştirir veya devre dışı bırakır |
| runtime.telemetry.open-telemetry.enabled | true |
OpenTelemetry'yi etkinleştirir veya devre dışı bırakır |
| runtime.telemetry.azure-log-analytics.enabled | false |
Azure Log Analytics'i etkinleştirir veya devre dışı bırakır |
| runtime.telemetry.azure-log-analytics.dab-identifier | "DabLogs" |
Azure Log Analytics'te DAB tanımlayıcısı |
| runtime.telemetry.azure-log-analytics.flush-interval-seconds | 5 |
Günlük toplu gönderimleri arasındaki aralık (saniye) |
| runtime.telemetry.azure-log-analytics.auth.custom-table-name | null |
Azure Log Analytics için özel tablo adı |
| runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id | null |
Veri toplama kuralı sabit kimliği |
| runtime.telemetry.azure-log-analytics.auth.dce-endpoint | null |
Veri toplama uç noktası URL'si |
| runtime.telemetry.file.enabled | false |
Dosya havuzu günlüğünü etkinleştirir veya devre dışı bırakır |
| runtime.telemetry.file.path | "/logs/dab-log.txt" |
Telemetri günlükleri için dosya yolu |
| runtime.telemetry.file.rolling-interval | "Day" |
Günlük dosyaları için sıralı aralık |
| runtime.telemetry.file.retained-file-count-limit | 1 |
En fazla korunan günlük dosyası sayısı |
| runtime.telemetry.file.file-size-limit-bytes | 1048576 |
Sarmalamadan önce bayt cinsinden en büyük dosya boyutu |
| runtime.telemetry.log-level.namespace | null |
Ad alanına özgü günlük düzeyi geçersiz kılma |
| runtime.health.enabled | true |
Genel olarak sistem durumu denetimi uç noktasını etkinleştirir veya devre dışı bırakır |
| runtime.health.roles | null |
Kapsamlı sistem durumu uç noktası için izin verilen roller |
| runtime.health.cache-ttl-seconds | 5 |
Sistem durumu denetimi raporu önbellek girdisi için yaşam süresi (saniye) |
| runtime.health.max-query-parallelism | 4 |
En fazla eşzamanlı sistem durumu denetimi sorgusu (aralık: 1-8) |
MCP ayarları
| Property | Default | Description |
|---|---|---|
| runtime.mcp.enabled | true |
MCP uç noktasını genel olarak etkinleştirir veya devre dışı bırakır |
| runtime.mcp.path | "/mcp" |
MCP uç noktası için temel yol |
| runtime.mcp.description | null |
Başlatma sırasında MCP istemcilerine gönderilen sunucu açıklaması |
| runtime.mcp.dml-tools | true |
Tüm DML araçlarını veya araç başına denetim için bir nesneyi etkinleştirir veya devre dışı bırakır |
| runtime.mcp.dml-tools.describe-entities | true |
describe_entities aracını etkinleştirir |
| runtime.mcp.dml-tools.create-record | true |
create_record aracını etkinleştirir |
| runtime.mcp.dml-tools.read-records | true |
read_records aracını etkinleştirir |
| runtime.mcp.dml-tools.update-record | true |
update_record aracını etkinleştirir |
| runtime.mcp.dml-tools.delete-record | true |
delete_record aracını etkinleştirir |
| runtime.mcp.dml-tools.execute-entity | true |
execute_entity aracını etkinleştirir |
| runtime.mcp.dml-tools.aggregate-records | true |
aggregate_records aracını (sorgu zaman aşımı ile boole veya nesne) etkinleştirir |
Biçime genel bakış
{
"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`)
}
}
}
}
}
Mod (Konak çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
host |
sabit listesi (production | development) |
❌ Hayır | production |
Geliştirme davranışı
- GraphQL testi için Nitro (eski adıyla Banana Cake Pop) etkinleştirildi
- REST testi için etkinleştirilmiş Swagger kullanıcı arabirimi
- Anonim sistem durumu denetimleri etkinleştirildi
- Artan günlük ayrıntı düzeyi (Hata Ayıklama)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
En büyük yanıt boyutu (Konak çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
integer | ❌ Hayır | 158 |
Herhangi bir sonuç için en büyük boyutu (megabayt cinsinden) ayarlar. Büyük yanıtlar sistemi zorlayabildiği için, max-response-size-mb özellikle metin veya JSON gibi büyük sütunlarda aşırı yüklemeyi önlemek için toplam boyutu (satır sayısı farklı) kaplar.
| Value | Result |
|---|---|
| ayarlanmadı | Varsayılanı kullan |
null |
Varsayılanı kullan |
integer |
Herhangi bir pozitif 32 bit tamsayı |
<= 0 |
Desteklenmiyor |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
object | ❌ Hayır | - |
Genel GraphQL yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Hayır | None |
runtime.graphql |
path |
string | ❌ Hayır | "/graphql" |
runtime.graphql |
depth-limit |
integer | ❌ Hayır | Hiçbiri (sınırsız) |
runtime.graphql |
allow-introspection |
boolean | ❌ Hayır | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Hayır | False |
Özellik notları
- Özellik için alt yollara
pathizin verilmez. - İç içe sorguları kısıtlamak için kullanın
depth-limit. -
allow-introspectionGraphQL şemasını gizlemek için olarak ayarlayınfalse. - Tek bir mutasyona birden fazla varlık eklemek için kullanın
multiple-mutations.
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)
}
}
}
}
}
Örnek: birden çok mutasyon
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
GraphQL mutasyonu
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 (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
rest |
object | ❌ Hayır | - |
Genel REST yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Hayır | None |
runtime.rest |
path |
string | ❌ Hayır | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Hayır | True |
Özellik notları
- Genel
enabledisefalse, tek tek varlık düzeyienabledönemli değildir. -
pathözelliği gibi/api/dataalt yol değerlerini desteklemez. -
request-body-strict.NET POCO nesnelerini basitleştirmeye yardımcı olmak için tanıtıldı.
request-body-strict |
Behavior |
|---|---|
true |
İstek gövdesindeki ek alanlar özel duruma BadRequest neden olur. |
false |
İstek gövdesindeki ek alanlar yoksayılır. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Örnek: request-body-strict
- Değeri olan
default()sütunlar yalnızca yükündeki değerleri olduğunda yoksayılırINSERTnull. Sonuç olarak,INSERTolduğundadefault()request-body-strictsütunlara yapılantrueişlemler açıknulldeğerlere neden olamaz. Bu davranışı gerçekleştirmek için birUPDATEişlem gereklidir. - yük değeri ne olursa olsun sütun içeren
default()sütunlar göz ardı edilirUPDATE. - Hesaplanan sütunlar her zaman yoksayılır.
- Otomatik oluşturulan sütunlar her zaman yoksayılır.
Örnek tablo
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
);
İstek veri yükü
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Ekleme davranışı 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.
Yanıt yükü
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Güncelleştirme davranışı request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Yanıt yükü
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (konak çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
object | ❌ Hayır | - |
Genel CORS yapılandırması.
Tip
CORS, "Çıkış Noktaları Arası Kaynak Paylaşımı" anlamına gelir. Bu, web sayfalarının kendilerine hizmet verenden farklı bir etki alanına istek gönderip gönderemeyeceğini denetleyebilen bir tarayıcı güvenlik özelliğidir.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Hayır | False |
runtime.host.cors |
origins |
dize dizisi | ❌ Hayır | None |
Note
allow-credentials özelliği CORS üst bilgisini ayarlarAccess-Control-Allow-Credentials.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> | <false> (default),
"origins": ["<array-of-strings>"]
}
}
}
}
Note
Joker karakter * için originsbir değer olarak geçerlidir.
Sağlayıcı (Kimlik doğrulaması ana bilgisayar çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
sabit listesi (Unauthenticated | StaticWebApps | AppService | EntraId | Custom | Simulator) |
❌ Hayır | Unauthenticated |
Kimlik doğrulama yöntemini seçer. Her sağlayıcı kimliği farklı şekilde doğrular. Adım adım kurulum için aşağıdaki tabloda yer alan nasıl yapılır kılavuzlarına bakın.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Sağlayıcı özeti
| Provider | Kullanım örneği | Kimlik kaynağı | Nasıl yapılır kılavuzu |
|---|---|---|---|
Unauthenticated |
DAB, güvenilir bir ön ucun arkasında durur (varsayılan) | Hiçbiri— tüm istekler farklı çalışır anonymous |
Kimliği Doğrulanmamış sağlayıcıyı yapılandırma |
AppService |
Azure tarafından barındırılan uygulamalar (EasyAuth) |
X-MS-CLIENT-PRINCIPAL Üstbilgi |
App Service kimlik doğrulamayı yapılandırma |
EntraID |
Microsoft Entra ID (Azure AD) | JWT taşıyıcı belirteci | Entra ID kimlik doğrulamasını yapılandırın |
Custom |
Üçüncü taraf IdP'leri (Okta, Auth0) | JWT taşıyıcı belirteci | Özel JWT kimlik doğrulamayı yapılandırma |
Simulator |
Yalnızca yerel test | Simüle Edilmiş | Simülatör kimlik doğrulamayı yapılandırma |
Note
Sağlayıcı EntraId daha önce olarak adlandırılmıştı AzureAd. Eski ad uyumluluk için çalışmaya devam ediyor.
Kimliği doğrulanmamış (varsayılan)
Ayarlandığında Unauthenticated (veya sağlayıcı belirtilmediğinde), DAB herhangi bir JWT'i incelemez veya doğrulamaz. Tüm istekler rol olarak anonymous çalışır. Azure API Management veya uygulama ağ geçidi gibi bir ön uç hizmeti, istekler DAB'ye ulaşmadan önce kimlik doğrulaması veya erişim ilkesini işlemeye devam edebilir, ancak DAB yalnızca olarak anonymousyetkilendirmeye devam eder.
Important
Etkin olduğunda Unauthenticatedauthenticated ve varlık izinlerinde tanımlanan özel roller hiçbir zaman etkinleştirilmez. Yapılandırmanız bu rolleri içeriyorsa, DAB başlangıçta bir uyarı gösterir.
{
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
AppService
Azure App Service EasyAuth tarafından eklenen kimlik üst bilgilerine güvenir.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Microsoft Entra Id tarafından verilen JWT belirteçlerini doğrular.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Özelleştirilmiş
Üçüncü taraf kimlik sağlayıcılarından JWT belirteçlerini doğrular.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Simülatör
Yerel geliştirme ve test için kimlik doğrulamasını simüle eder.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
Sağlayıcı Simulator yalnızca olduğunda runtime.host.modedevelopmentçalışır. Simülatör üretim modunda yapılandırılırsa DAB başlatılamaz.
Rol seçimi
Simulator dışındaki tüm sağlayıcılar için üst bilgi, X-MS-API-ROLE kimliği doğrulanmış kullanıcının taleplerinden hangi rolün kullanılacağını seçer. Belirtilmezse, istek sistem rolünü kullanır Authenticated . Rol değerlendirmesi hakkında ayrıntılı bilgi için bkz . Yetkilendirmeye genel bakış.
JWT (Kimlik doğrulaması ana bilgisayar çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
object | ❌ Hayır | - |
Genel JSON Web Belirteci (JWT) yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
string | ✔️ Evet* | None |
runtime.host.authentication.jwt |
issuer |
string | ✔️ Evet* | None |
* Nesne mevcut olduğunda audience hem hem de issuerjwt gereklidir.
jwt Sağlayıcı EntraID, AzureADveya Customolduğunda nesnenin kendisi gereklidir.
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Sayfalandırma (Çalışma Zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
object | ❌ Hayır | - |
REST ve GraphQL uç noktaları için genel sayfalandırma sınırları.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Hayır | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Hayır | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Hayır | false |
Desteklenen en büyük sayfa boyutu değerleri
| Value | Result |
|---|---|
integer |
Herhangi bir pozitif 32 bit tamsayı desteklenir. |
0 |
Desteklenmiyor. |
-1 |
Varsayılan olarak desteklenen en yüksek değerdir. |
< -1 |
Desteklenmiyor. |
Varsayılan sayfa boyutu desteklenen değerler
| Value | Result |
|---|---|
integer |
Geçerli max-page-sizeküçük pozitif tamsayılar. |
0 |
Desteklenmiyor. |
-1 |
Varsayılan olarak geçerli max-page-size ayarını kullanır. |
< -1 |
Desteklenmiyor. |
Sonraki bağlantı-göreli davranış
olduğunda next-link-relativetrue, sayfalandırma nextLink değerleri mutlak URL'ler yerine göreli URL'ler kullanır.
| Value | Example |
|---|---|
false (varsayılan) |
"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
Değer değerinden max-page-sizebüyük olduğunda sonuçlar konumunda max-page-sizeeşlenir.
Örnek: REST'te sayfalama
Request
GET https://localhost:5001/api/users
Yanıt yükü
{
"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=="
}
Sonraki Sayfayı İste
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Örnek: GraphQL'de sayfalama
İstek yükü (Sorgu)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Yanıt yükü
{
"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=="
}
}
}
Sonraki Sayfayı İste
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Örnek: İsteklerde Erişim max-page-size
max-page-size değerini (REST) veya $limit (GraphQL) firstolarak ayarlayarak -1 kullanın.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Sıkıştırma (çalışma zamanı)
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
compression |
object | ❌ Hayır | - |
HTTP yanıt sıkıştırma yapılandırması. Etkinleştirildiğinde DAB, yük boyutlarını azaltmak ve aktarım hızlarını artırmak için yanıt gövdelerini sıkıştırır.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.compression |
level |
string | ❌ Hayır | "optimal" |
için desteklenen değerler level
| Value | Description | Sıkıştırma tasarrufları | Performans etkisi |
|---|---|---|---|
optimal |
Bakiye oranı ve hızı (varsayılan) | Gzip: 90.5% / Brotli: 92.2% | Orta DÜZEYDE CPU kullanımı, hafif gecikme süresi artışı |
fastest |
Oran üzerindeki hızı önceliklendirir | Gzip: 89.8% / Brotli: 91.1% | Düşük CPU kullanımı, en düşük gecikme süresi |
none |
Sıkıştırma yok | 0% (temel: 12.673 bayt) | None |
İstemci HTTP üst bilgileri
Sıkıştırma, istemcinin Accept-Encoding üst bilgisi tarafından çağrılır. Desteklenen algoritmalar Gzip ve Brotli'lerdir. ayarı, level hem istemci hem de sunucu birden çok algoritmayı desteklediğinde sıkıştırma stratejisini yapılandırıyor.
Desteklenen üst bilgiler
| HTTP Üst Bilgisi | Kullanılan Algoritma |
|---|---|
Accept-Encoding: gzip |
Gzip |
Accept-Encoding: br |
Brotli |
Format
{
"runtime": {
"compression": {
"level": <"optimal"> (default) | <"fastest"> | <"none">
}
}
}
Example
{
"runtime": {
"compression": {
"level": "optimal"
}
}
}
Önbellek (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
cache |
object | ❌ Hayır | - |
Genel Önbellek yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Hayır | False |
runtime.cache |
ttl-seconds |
integer | ❌ Hayır | 5 |
runtime.cache |
level-2 |
object | ❌ Hayır | - |
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.cache.level-2 |
enabled |
boolean | ❌ Hayır | False |
runtime.cache.level-2 |
provider |
string | ❌ Hayır | redis |
runtime.cache.level-2 |
connection-string |
string | ❌ Hayır | None |
runtime.cache.level-2 |
partition |
string | ❌ Hayır | None |
Tip
Varlık düzeyi cache.ttl-seconds özelliği varsayılan olarak bu genel değeri kullanır.
Tip
Uçtan uca kurulum, önbellek düzeyi davranışı ve Redis örnekleri için bkz. Düzey 2 önbelleği uygulama.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level-2": {
"enabled": <boolean>,
"provider": "redis",
"connection-string": <string>,
"partition": <string>
}
}
}
}
Important
Genel enabled ise false, tek tek varlık düzeyi enabled önemli değildir.
olduğunda level-2.enabledtrueDAB, yerel bellek içi önbelleğe ek olarak yapılandırılmış dağıtılmış önbellek sağlayıcısını kullanır. Önbellek düzeyiyle L1L2 yapılandırılmış bir varlık, veritabanına gitmeden önce yerel önbelleği, ardından dağıtılmış önbelleği denetler.
Telemetri (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
object | ❌ Hayır | - |
Genel telemetri yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Hayır | None |
runtime.telemetry |
application-insights |
object | ❌ Hayır | - |
runtime.telemetry |
open-telemetry |
object | ❌ Hayır | - |
runtime.telemetry |
azure-log-analytics |
object | ❌ Hayır | - |
runtime.telemetry |
file |
object | ❌ Hayır | - |
Ad alanı başına günlük ayrıntı düzeyini yapılandırıyor. Bu yapılandırma standart .NET günlüğe kaydetme kurallarına uyar ve Ayrıntılı denetime izin verir, ancak Veri API'si oluşturucu iç işlevleri hakkında biraz bilgi sahibi olduğunu varsayar. Veri API'si oluşturucusu açık kaynaktır: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level hem geliştirme hem de üretimde çalışırken yeniden yüklenebilir. Şu anda üretimde çalışırken yeniden yüklemeyi destekleyen tek özelliktir.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (telemetri)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
object | ❌ Hayır | - |
Application Insights'ta günlüğe kaydetmeyi yapılandırılır.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Hayır | true |
runtime.telemetry.application-insights |
connection-string |
string | ✔️ Evet | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (telemetri)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
object | ❌ Hayır | - |
Telemetriyi Aç için günlüğe kaydetmeyi yapılandırıyor.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Hayır | true |
runtime.telemetry.open-telemetry |
endpoint |
string | ✔️ Evet | None |
runtime.telemetry.open-telemetry |
headers |
string | ❌ Hayır | None |
runtime.telemetry.open-telemetry |
service-name |
string | ❌ Hayır | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
sabit listesi (grpc | httpprotobuf) |
❌ Hayır | grpc |
Birden çok üst bilgi , (virgül) birbirinden ayrılır.
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",
}
}
}
}
OTEL_EXPORTER_OTLP_HEADERS hakkında daha fazla bilgi edinin.
Note
gRPC (4317) daha hızlıdır ve akışı destekler ancak daha fazla kurulum adımı gerektirir. HTTP/protobuf (4318), hata ayıklaması daha basit ve daha kolay ancak daha az verimlidir.
Azure Log Analytics (telemetri)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
azure-log-analytics |
object | ❌ Hayır | - |
Veri toplama uç noktası aracılığıyla Azure Log Analytics'e günlük kaydı yapılandırılır. Etkinleştirildiğinde DAB, telemetri verilerini yapılandırılabilir bir aralıkta toplu olarak gönderir.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.azure-log-analytics |
enabled |
boolean | ❌ Hayır | false |
runtime.telemetry.azure-log-analytics |
dab-identifier |
string | ❌ Hayır | "DabLogs" |
runtime.telemetry.azure-log-analytics |
flush-interval-seconds |
integer | ❌ Hayır | 5 |
runtime.telemetry.azure-log-analytics |
auth |
object | ✔️ Evet* | - |
*
auth olduğunda gereklidir enabledtrue.
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.azure-log-analytics.auth |
custom-table-name |
string | ✔️ Evet* | null |
runtime.telemetry.azure-log-analytics.auth |
dcr-immutable-id |
string | ✔️ Evet* | null |
runtime.telemetry.azure-log-analytics.auth |
dce-endpoint |
string | ✔️ Evet* | null |
* olduğunda enabledtruegereklidir.
-
dab-identifier—Veri API'si oluşturucusundan gelen günlükleri ayırt etmeye yardımcı olmak için Log Analytics'e geçirilen bir etiket. -
flush-interval-seconds—telemetri verilerinin toplu gönderilmesi arasındaki zaman aralığı (saniye cinsinden). -
custom-table-name—Verilerin depolandığı Azure Log Analytics'teki özel tablonun adı. -
dcr-immutable-id—verilerin nasıl toplandığını tanımlayan veri toplama kuralının sabit kimliği. -
dce-endpoint—telemetri verilerini göndermek için kullanılan veri toplama uç noktası URL'si.
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"
}
}
}
}
}
Dosya (telemetri)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
file |
object | ❌ Hayır | - |
Telemetri günlüklerinin yerel bir dosyaya yazıldığında yapılandırılır. Etkinleştirildiğinde, DAB yapılandırılmış günlük çıkışını yapılandırılabilir sıralı aralıklar ve boyut sınırlarıyla belirtilen dosya yoluna yazar.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.telemetry.file |
enabled |
boolean | ❌ Hayır | false |
runtime.telemetry.file |
path |
string | ✔️ Evet* | "/logs/dab-log.txt" |
runtime.telemetry.file |
rolling-interval |
enum | ❌ Hayır | "Day" |
runtime.telemetry.file |
retained-file-count-limit |
integer | ❌ Hayır | 1 |
runtime.telemetry.file |
file-size-limit-bytes |
integer | ❌ Hayır | 1048576 |
*
path olduğunda gereklidir enabledtrue.
Sıralı aralık değerleri
| Value | Description |
|---|---|
Minute |
Dakikada bir yeni günlük dosyası |
Hour |
Saatte bir yeni günlük dosyası |
Day |
Her gün yeni günlük dosyası (varsayılan) |
Month |
Her ay yeni günlük dosyası |
Year |
Her yıl yeni günlük dosyası |
Infinite |
Hiçbir zaman yeni bir dosyaya geçiş |
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 (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
mcp |
object | ❌ Hayır | - |
Veritabanı varlıklarını yapay zeka aracıları için MCP araçları olarak kullanıma sunan SQL Model Bağlam Protokolü (MCP) Sunucusunu yapılandırıyor.
Note
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
İç içe özellikler
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.mcp |
enabled |
boolean | ❌ Hayır | true |
runtime.mcp |
path |
string | ❌ Hayır | "/mcp" |
runtime.mcp |
description |
string | ❌ Hayır | null |
runtime.mcp |
dml-tools |
boole veya nesne | ❌ Hayır | true |
özelliği, dml-tools tüm araçları etkinleştirmek veya devre dışı bırakmak için bir boole değeri veya tek tek araçları denetlemek için bir nesne kabul eder:
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime.mcp.dml-tools |
describe-entities |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
create-record |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
read-records |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
update-record |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
delete-record |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
execute-entity |
boolean | ❌ Hayır | true |
runtime.mcp.dml-tools |
aggregate-records |
boole veya nesne | ❌ Hayır | true |
Araç aggregate-records , boole değerini veya daha fazla ayara sahip bir nesneyi kabul eder:
| Parent | Property | Type | Required | Default | Menzil |
|---|---|---|---|---|---|
runtime.mcp.dml-tools.aggregate-records |
enabled |
boolean | ❌ Hayır | true |
|
runtime.mcp.dml-tools.aggregate-records |
query-timeout |
integer | ❌ Hayır | 30 |
1–600 saniye |
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
}
}
}
}
}
Tüm DML araçlarını aynı anda etkinleştirmek veya devre dışı bırakmak için veya "dml-tools"olarak true ayarlayınfalse.
Bir aracı çalışma zamanı düzeyinde devre dışı bırakırsanız, araç HIÇBIR zaman MCP tools/list yanıtında görünmez ve varlık düzeyi izinlerinden bağımsız olarak çağrılamıyor. Tek tek DML araçları hakkında daha fazla bilgi için bkz. Veri işleme dili (DML) araçları.
CLI'yi kullanma
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
Sistem durumu (çalışma zamanı)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
runtime |
health |
object | ❌ Hayır | - |
Genel sistem durumu denetimi uç noktası (/health) yapılandırması.
İç içe özellikler
| Parent | Property | Type | Required | Default | Aralık/Notlar |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Hayır | true |
|
runtime.health |
roles |
dize dizisi | ✔️ Evet* | null |
*Üretim modunda gereklidir |
runtime.health |
cache-ttl-seconds |
integer | ❌ Hayır | 5 |
Min: 0 |
runtime.health |
max-query-parallelism |
integer | ❌ Hayır | 4 |
Min: One, Max: Eight (kelepçeli) |
Geliştirme ve üretim davranışı
| Condition | Geliştirme Davranışı | Üretim Davranışı |
|---|---|---|
health.enabled = yanlış |
403 durum |
403 durum |
health.enabled = doğru |
Role bağlıdır | Role bağlıdır |
roles atlanmış veya null |
Sistem durumu görüntüleniyor |
403 durum |
geçerli rol içinde değil roles |
403 durum |
403 durum |
içindeki geçerli rol roles |
Sistem durumu görüntüleniyor | Sistem durumu görüntüleniyor |
roles Içerir anonymous |
Sistem durumu görüntüleniyor | Sistem durumu görüntüleniyor |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Genel enabled ise false, tek tek varlık düzeyi enabled önemli değildir.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}