Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawienia konfiguracji określające zachowanie środowiska uruchomieniowego.
Ustawienia stronicowania
| Property | Default | Description |
|---|---|---|
| runtime.pagination.max rozmiar strony | Definiuje maksymalną liczbę rekordów na stronę | |
| runtime.pagination.default-page-size | Ustawia domyślne rekordy na odpowiedź |
Ustawienia REST
| Property | Default | Description |
|---|---|---|
| runtime.rest.path | "/api" |
Ścieżka podstawowa dla punktów końcowych REST |
| runtime.rest.enabled | true |
Umożliwia włączanie lub wyłączanie żądań REST dla wszystkich jednostek |
| runtime.rest.request-body-strict | true |
Nie zezwala na nadmiarowe pola w treści żądania, gdy jest to prawda |
Ustawienia języka GraphQL
| Property | Default | Description |
|---|---|---|
| runtime.graphql.allow-introspection | true |
Umożliwia wykonywanie zapytań względem bazowego schematu GraphQL |
| runtime.graphql.path | "/graphql" |
Ścieżka podstawowa punktu końcowego GraphQL |
| runtime.graphql.enabled | true |
Umożliwia włączanie lub wyłączanie żądań GraphQL dla wszystkich jednostek |
| runtime.graphql.depth-limit | null |
Maksymalna dozwolona głębokość zapytania GraphQL |
| runtime.graphql.multiple-mutacje.create.enabled | false |
Umożliwia tworzenie mutacji dla wszystkich jednostek |
Ustawienia hosta
| Property | Default | Description |
|---|---|---|
| runtime.host.max-response-size-mb | 158 |
Maksymalny rozmiar (MB) odpowiedzi bazy danych dozwolony w jednym wyniku |
| runtime.host.mode | "production" |
Tryb działania; "production" lub "development" |
Ustawienia mechanizmu CORS
| Property | Default | Description |
|---|---|---|
| runtime.host.cors.origins | [] |
Dozwolone źródła mechanizmu CORS |
| runtime.host.cors.allow-credentials | false |
Ustawia wartość nagłówka Access-Control-Allow-Credentials |
Ustawienia uwierzytelniania
| Property | Default | Description |
|---|---|---|
| runtime.host.authentication.provider | null |
Dostawca uwierzytelniania |
| runtime.host.authentication.jwt.audience | null |
Odbiorcy JWT |
| runtime.host.authentication.jwt.issuer | null |
Wystawca JWT |
Ustawienia pamięci podręcznej
| Property | Default | Description |
|---|---|---|
| runtime.cache.enabled | false |
Umożliwia buforowanie odpowiedzi globalnie |
| runtime.cache.ttl-seconds | 5 |
Czas wygaśnięcia (w sekundach) dla globalnej pamięci podręcznej |
Ustawienia telemetrii
| Property | Default | Description |
|---|---|---|
| runtime.telemetry.application-insights.connection-string | null |
Parametry połączenia usługi Application Insights |
| runtime.telemetry.application-insights.enabled | false |
Włącza lub wyłącza telemetrię usługi Application Insights |
| runtime.telemetry.open-telemetry.endpoint | null |
Adres URL modułu zbierającego OpenTelemetry |
| runtime.telemetry.open-telemetry.headers | {} |
Nagłówki eksportu OpenTelemetry |
| runtime.telemetry.open-telemetry.service-name | "dab" |
Nazwa usługi OpenTelemetry |
| runtime.telemetry.open-telemetry.exporter-protocol | "grpc" |
Protokół OpenTelemetry ("grpc" lub "httpprotobuf") |
| runtime.telemetry.open-telemetry.enabled | true |
Włącza lub wyłącza funkcję OpenTelemetry |
| runtime.telemetry.log-level.namespace | null |
Zastępowanie poziomu dziennika specyficznego dla przestrzeni nazw |
| runtime.health.enabled | true |
Włącza lub wyłącza globalny punkt końcowy sprawdzania kondycji |
| runtime.health.roles | null |
Dozwolone role dla kompleksowego punktu końcowego kondycji |
| runtime.health.cache-ttl-s | 5 |
Czas wygaśnięcia (w sekundach) dla wpisu pamięci podręcznej raportu kontroli kondycji |
| runtime.health.max równoległość zapytań | 4 |
Maksymalna liczba współbieżnych zapytań dotyczących sprawdzania kondycji (zakres: 1–8) |
Omówienie formatu
{
"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: "AppService"),
"jwt": {
"audience": "<string>",
"issuer": "<string>"
}
}
}
},
"cache": {
"enabled": <true>|<false> (default: `false`),
"ttl-seconds": <integer> (default: `5`)
},
"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`)
},
"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`)
}
}
Tryb (środowisko uruchomieniowe hosta)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
host |
wyliczenie (production | development) |
❌ Nie | production |
Zachowanie programistyczne
- Enabled Nitro (dawniej Banana Cake Pop) na potrzeby testowania GraphQL
- Włączony interfejs użytkownika struktury Swagger na potrzeby testowania REST
- Włączone anonimowe kontrole kondycji
- Zwiększona szczegółowość rejestrowania (debugowanie)
Format
{
"runtime": {
"host": {
"mode": "production" (default) | "development"
}
}
}
Maksymalny rozmiar odpowiedzi (środowisko uruchomieniowe hosta)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host |
max-response-size-mb |
liczba całkowita | ❌ Nie | 158 |
Ustawia maksymalny rozmiar (w megabajtach) dla dowolnego wyniku. Ponieważ duże odpowiedzi mogą przeciążać system, max-response-size-mb powoduje ograniczenie całkowitego rozmiaru (innego niż liczba wierszy), aby zapobiec przeciążeniu, co jest szczególnie w przypadku dużych kolumn, takich jak tekst lub JSON.
| Value | Result |
|---|---|
| nie ustawiono | Użyj wartości domyślnej |
null |
Użyj wartości domyślnej |
integer |
Dowolna dodatnia liczba całkowita 32-bitowa |
<= 0 |
Niewspierane |
Format
{
"runtime": {
"host": {
"max-response-size-mb": <integer; default: 158>
}
}
}
GraphQL (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
graphql |
obiekt | ❌ Nie | - |
Konfiguracja globalnego języka GraphQL.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.graphql |
enabled |
boolean | ❌ Nie | None |
runtime.graphql |
path |
ciąg | ❌ Nie | "/graphql" |
runtime.graphql |
depth-limit |
liczba całkowita | ❌ Nie | Brak (nieograniczona) |
runtime.graphql |
allow-introspection |
boolean | ❌ Nie | True |
runtime.graphql |
multiple-mutations.create.enabled |
boolean | ❌ Nie | False |
Uwagi dotyczące właściwości
- Ścieżki podrzędne nie są dozwolone dla
pathwłaściwości . - Użyj
depth-limitpolecenia , aby ograniczyć zagnieżdżone zapytania. - Ustaw
allow-introspectionwartość na , abyfalseukryć schemat GraphQL. - Służy
multiple-mutationsdo wstawiania wielu jednostek w jednej mutacji.
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> (default) | <false>
}
}
}
}
Przykład: wiele mutacji
Configuration
{
"runtime": {
"graphql": {
"multiple-mutations": {
"create": {
"enabled": true
}
}
}
},
"entities": {
"User": {
"source": "dbo.Users",
"permissions": [
{
"role": "anonymous",
"actions": ["create"] // entity permissions are required
}
]
}
}
}
Mutacja GraphQL
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 (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
rest |
obiekt | ❌ Nie | - |
Globalna konfiguracja REST.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.rest |
enabled |
boolean | ❌ Nie | None |
runtime.rest |
path |
ciąg | ❌ Nie | "/api" |
runtime.rest |
request-body-strict |
boolean | ❌ Nie | True |
Uwagi dotyczące właściwości
- Jeśli wartość globalna
enabledtofalse, pojedynczy poziomenabledjednostki nie ma znaczenia. - Właściwość
pathnie obsługuje wartości podścieżki, takich jak/api/data. -
request-body-strictwprowadzono w celu uproszczenia obiektów POCO platformy .NET.
request-body-strict |
Behavior |
|---|---|
true |
Dodatkowe pola w treści żądania powodują BadRequest wyjątek. |
false |
Dodatkowe pola w treści żądania są ignorowane. |
Format
{
"runtime": {
"rest": {
"enabled": <true> (default) | <false>,
"path": <string> (default: /api),
"request-body-strict": <true> (default) | <false>
}
}
}
Przykład: żądanie-treść-ścisłe
- Kolumny z wartością
default()są ignorowane tylko wtedyINSERT, gdy ich wartość w ładunku tonull. W związkuINSERTz tym operacje wdefault()kolumnach, gdyrequest-body-strictma wartośćtrue, nie mogą powodować jawnychnullwartości. Aby osiągnąć to zachowanie, wymaganaUPDATEjest operacja. - Kolumny z elementem
default()nie są ignorowaneUPDATEniezależnie od wartości ładunku. - Obliczone kolumny są zawsze ignorowane.
- Kolumny generowane automatycznie są zawsze ignorowane.
Przykładowa tabela
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
);
Dane żądania
{
"Id": 999,
"Name": "Alice",
"Age": null,
"IsAdmin": null,
"IsMinor": false,
"ExtraField": "ignored"
}
Wstaw zachowanie, gdy 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.
Ładunek danych odpowiedzi
{
"Id": 1, // Auto-generated by the database
"Name": "Alice",
"Age": 18, // Default applied
"IsAdmin": false, // Default applied
"IsMinor": true // Computed
}
Aktualizowanie zachowania w przypadku request-body-strict = false
UPDATE Users
SET Name = 'Alice Updated', Age = NULL
WHERE Id = 1;
-- IsMinor and ExtraField are ignored.
Ładunek danych odpowiedzi
{
"Id": 1,
"Name": "Alice Updated",
"Age": null,
"IsAdmin": false,
"IsMinor": false // Recomputed by the database (false when age is `null`)
}
CORS (środowisko uruchomieniowe hosta)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host |
cors |
obiekt | ❌ Nie | - |
Globalna konfiguracja mechanizmu CORS.
Tip
CORS oznacza "Współużytkowanie zasobów między źródłami". Jest to funkcja zabezpieczeń przeglądarki, która kontroluje, czy strony internetowe mogą wysyłać żądania do innej domeny niż ta, która je obsłużyła.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host.cors |
allow-credentials |
boolean | ❌ Nie | False |
runtime.host.cors |
origins |
tablica ciągów | ❌ Nie | None |
Note
Właściwość allow-credentials ustawia Access-Control-Allow-Credentials nagłówek CORS.
Format
{
"runtime": {
"host": {
"cors": {
"allow-credentials": <true> (default) | <false>,
"origins": ["<array-of-strings>"]
}
}
}
}
Note
Symbol wieloznaczny * jest prawidłowy jako wartość .origins
Dostawca (środowisko uruchomieniowe hosta uwierzytelniania)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
provider |
wyliczenie (AppService | EntraId | Custom | Simulator) |
❌ Nie | None |
Wybiera metodę uwierzytelniania. Każdy dostawca weryfikuje tożsamość inaczej. Aby uzyskać instrukcje krok po kroku, zobacz przewodniki z instrukcjami poniżej.
Podsumowanie dostawcy
| Provider | Przypadek użycia | Źródło tożsamości | Przewodnik z instrukcjami |
|---|---|---|---|
| (pominięto) | Dostęp tylko anonimowy | None | — |
AppService |
Aplikacje hostowane na platformie Azure (EasyAuth) |
X-MS-CLIENT-PRINCIPAL Nagłówka |
Konfigurowanie uwierzytelniania usługi App Service |
EntraID |
Microsoft Entra ID (Azure AD) | Token elementu nośnego JWT | Konfigurowanie uwierzytelniania Entra ID |
Custom |
Dostawcy tożsamości innych firm (Okta, Auth0) | Token elementu nośnego JWT | Konfigurowanie niestandardowego uwierzytelniania JWT |
Simulator |
Tylko lokalne testowanie | Symulowany | Konfigurowanie uwierzytelniania symulatora |
Note
EntraId Dostawca wcześniej nosił nazwę AzureAd. Stara nazwa nadal działa pod kątem zgodności.
Tylko anonimowy (bez dostawcy)
authentication Gdy sekcja zostanie pominięta, daB działa w trybie tylko anonimowym. Wszystkie żądania są przypisywane Anonymous do roli systemu.
{
"host": {
// authentication section omitted
}
}
AppService
Nagłówki tożsamości zaufania wprowadzone przez usługę Azure App Service EasyAuth.
{
"host": {
"authentication": {
"provider": "AppService"
}
}
}
EntraID
Weryfikuje tokeny JWT wystawione przez identyfikator Firmy Microsoft Entra.
{
"host": {
"authentication": {
"provider": "EntraId",
"jwt": {
"audience": "<application-id>",
"issuer": "https://login.microsoftonline.com/<tenant-id>/v2.0"
}
}
}
}
Custom
Weryfikuje tokeny JWT od dostawców tożsamości innych firm.
{
"host": {
"authentication": {
"provider": "Custom",
"jwt": {
"audience": "<api-audience>",
"issuer": "https://<your-idp-domain>/"
}
}
}
}
Symulator
Symuluje uwierzytelnianie na potrzeby lokalnego programowania i testowania.
{
"host": {
"authentication": {
"provider": "Simulator"
}
}
}
Important
Dostawca Simulator działa tylko wtedy, gdy runtime.host.mode ma wartość development. Nie można uruchomić narzędzia DAB, jeśli symulator jest skonfigurowany w trybie produkcyjnym.
Wybór roli
W przypadku wszystkich dostawców z wyjątkiem symulatora X-MS-API-ROLE nagłówek wybiera rolę do użycia z oświadczeń uwierzytelnionego użytkownika. W przypadku pominięcia żądanie używa Authenticated roli systemu. Aby uzyskać szczegółowe informacje na temat oceny ról, zobacz Autoryzacja i role.
JWT (środowisko uruchomieniowe hosta uwierzytelniania)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host.authentication |
jwt |
obiekt | ❌ Nie | - |
Globalna konfiguracja tokenu internetowego JSON (JWT).
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.host.authentication.jwt |
audience |
ciąg | ❌ Nie | None |
runtime.host.authentication.jwt |
issuer |
ciąg | ❌ Nie | None |
Format
{
"runtime": {
"host": {
"authentication": {
"jwt": {
"audience": "<client-id>",
"issuer": "<issuer-url>"
}
}
}
}
}
Stronicowanie (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
pagination |
obiekt | ❌ Nie | - |
Globalne limity stronicowania dla punktów końcowych REST i GraphQL.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.pagination |
max-page-size |
int | ❌ Nie | 100,000 |
runtime.pagination |
default-page-size |
int | ❌ Nie | 100 |
runtime.pagination |
next-link-relative |
boolean | ❌ Nie | false |
Obsługiwane wartości maksymalnego rozmiaru strony
| Value | Result |
|---|---|
integer |
Obsługiwana jest dowolna dodatnia liczba całkowita 32-bitowa. |
0 |
Niewspierane. |
-1 |
Wartość domyślna to maksymalna obsługiwana wartość. |
< -1 |
Niewspierane. |
Wartości obsługiwane przez domyślny rozmiar strony
| Value | Result |
|---|---|
integer |
Dowolna dodatnia liczba całkowita mniejsza niż bieżąca max-page-size. |
0 |
Niewspierane. |
-1 |
Wartość domyślna bieżącego ustawienia max-page-size. |
< -1 |
Niewspierane. |
Zachowanie względne połączenia następnego
Gdy next-link-relative wartość to true, wartości stronicowania nextLink używają względnych adresów URL zamiast bezwzględnych adresów URL.
| Value | Example |
|---|---|
false (ustawienie domyślne) |
"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
Gdy wartość jest większa niż max-page-size, wyniki są ograniczone do max-page-sizewartości .
Przykład: stronicowanie w interfejsie REST
Request
GET https://localhost:5001/api/users
Ładunek danych odpowiedzi
{
"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=="
}
Żądaj następnej strony
GET https://localhost:5001/api/users?$after=W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==
Przykład: stronicowanie w narzędziu GraphQL
Ładunek żądania (zapytanie)
query {
users {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Ładunek danych odpowiedzi
{
"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=="
}
}
}
Żądaj następnej strony
query {
users(after: "W3siRW50aXR5TmFtZSI6InVzZXJzIiwiRmllbGROYW1lI==") {
items {
Id
Name
Age
IsAdmin
IsMinor
}
hasNextPage
endCursor
}
}
Przykład: uzyskiwanie dostępu do żądań max-page-size
max-page-size Użyj wartości, ustawiając $limit wartość (REST) lub first (GraphQL) na -1.
REST
GET https://localhost:5001/api/users?$limit=-1
GraphQL
query {
users(first: -1) {
items {
...
}
}
}
Pamięć podręczna (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
cache |
obiekt | ❌ Nie | - |
Konfiguracja globalnej pamięci podręcznej.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.cache |
enabled |
boolean | ❌ Nie | False |
runtime.cache |
ttl-seconds |
liczba całkowita | ❌ Nie | 5 |
Tip
Właściwość na poziomie cache.ttl-seconds jednostki jest domyślnie ustawiona na tę wartość globalną.
Format
{
"runtime": {
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>
}
}
}
Important
Jeśli wartość globalna enabled to false, pojedynczy poziom enabled jednostki nie ma znaczenia.
Telemetria (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
telemetry |
obiekt | ❌ Nie | - |
Globalna konfiguracja telemetrii.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
log-level |
dictionary | ❌ Nie | None |
runtime.telemetry |
application-insights |
obiekt | ❌ Nie | - |
runtime.telemetry |
open-telemetry |
obiekt | ❌ Nie | - |
Konfiguruje szczegółowość rejestrowania dla przestrzeni nazw. Jest to zgodne ze standardowymi konwencjami rejestrowania platformy .NET i umożliwia szczegółową kontrolę, chociaż zakłada ona pewną znajomość wewnętrznych elementów konstruktora interfejsu API danych. Konstruktor interfejsu API danych to open source: https://aka.ms/dab
Format
{
"runtime": {
"telemetry": {
"log-level": {
"namespace": "log-level",
"namespace": "log-level"
}
}
}
}
Tip
log-level mogą być ładowane na gorąco zarówno w środowisku deweloperskim, jak i produkcyjnym. Jest to obecnie jedyna właściwość, która obsługuje przeładowywanie na gorąco w środowisku produkcyjnym.
Example
{
"runtime": {
"telemetry": {
"log-level": {
"Azure.DataApiBuilder.Core.Configurations.RuntimeConfigValidator": "debug",
"Azure.DataApiBuilder.Core": "information",
"default": "warning"
}
}
}
}
Application Insights (telemetria)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
application-insights |
obiekt | ❌ Nie | - |
Konfiguruje rejestrowanie w usłudze Application Insights.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.telemetry.application-insights |
enabled |
boolean | ❌ Nie | False |
runtime.telemetry.application-insights |
connection-string |
ciąg | ✔️ Tak | None |
Format
{
"runtime": {
"telemetry": {
"application-insights": {
"enabled": <true; default: true> | <false>
"connection-string": <string>
}
}
}
}
OpenTelemetry (telemetria)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.telemetry |
open-telemetry |
obiekt | ❌ Nie | - |
Konfiguruje rejestrowanie w celu otwarcia telemetrii.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime.telemetry.open-telemetry |
enabled |
boolean | ❌ Nie | true |
runtime.telemetry.open-telemetry |
endpoint |
ciąg | ✔️ Tak | None |
runtime.telemetry.open-telemetry |
headers |
ciąg | ❌ Nie | None |
runtime.telemetry.open-telemetry |
service-name |
ciąg | ❌ Nie | "dab" |
runtime.telemetry.open-telemetry |
exporter-protocol |
wyliczenie (grpc | httpprotobuf) |
❌ Nie | grpc |
Wiele nagłówków jest , rozdzielonych przecinkami.
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",
}
}
}
}
Dowiedz się więcej o OTEL_EXPORTER_OTLP_HEADERS.
Note
Funkcja gRPC (4317) jest szybsza i obsługuje przesyłanie strumieniowe, ale wymaga wykonania większej liczby kroków konfiguracji. Protokół HTTP/protobuf (4318) jest prostszy i łatwiejszy do debugowania, ale mniej wydajny.
Kondycja (środowisko uruchomieniowe)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
runtime |
health |
obiekt | ❌ Nie | - |
Konfiguracja globalnego punktu końcowego sprawdzania kondycji (/health).
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default | Zakres/notatki |
|---|---|---|---|---|---|
runtime.health |
enabled |
boolean | ❌ Nie | true |
|
runtime.health |
roles |
tablica ciągów | ✔️ Tak* | null |
*Wymagane w trybie produkcyjnym |
runtime.health |
cache-ttl-seconds |
liczba całkowita | ❌ Nie | 5 |
Min: 0 |
runtime.health |
max-query-parallelism |
liczba całkowita | ❌ Nie | 4 |
Min: 1, Maks. 8 (zaciśnięty) |
Zachowanie w środowisku deweloperskim a produkcyjnym
| Condition | Zachowanie programistyczne | Zachowanie produkcyjne |
|---|---|---|
health.enabled = fałsz |
403 stan |
403 stan |
health.enabled = prawda |
Zależy od roli | Zależy od roli |
roles pominięty lub null |
Wyświetlona kondycja |
403 stan |
bieżąca rola nie jest w roles |
403 stan |
403 stan |
bieżąca rola w roles |
Wyświetlona kondycja | Wyświetlona kondycja |
roles Zawiera anonymous |
Wyświetlona kondycja | Wyświetlona kondycja |
Format
{
"health": {
"enabled": <true> (default) | <false>,
"roles": [ <string> ], // required in production
"cache-ttl-seconds": <integer; default: 5>,
"max-query-parallelism": <integer; default: 4>
}
}
Note
Jeśli wartość globalna enabled to false, pojedynczy poziom enabled jednostki nie ma znaczenia.
Example
{
"health": {
"enabled": true,
"roles": ["admin", "support"],
"cache-ttl-seconds": 10,
"max-query-parallelism": 6
}
}