Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Datový API builder (DAB) umožňuje uchovávat tajemství, jako jsou připojovací řetězce k databázi, mimo konfigurační soubor běhového prostředí tím, že je při načítání nahrazuje. Původně to bylo provedeno pomocí @env() funkce pro proměnné prostředí. Počínaje verzí 1.6 přidává DAB podporu služby Azure Key Vault prostřednictvím funkce @akv().
Co @akv() dělá
Na tajný klíč uložený ve službě Azure Key Vault můžete odkazovat přímo v konfiguračním kódu JSON:
{
"data-source": {
"connection-string": "@akv('my-connection-secret')"
}
}
Při načítání konfigurace DAB vyřeší zástupný symbol a nahradí jej hodnotou z tajného klíče, podobně jako funguje @env('VAR_NAME'). Pokud se tajný klíč nedá načíst, načtení konfigurace se nezdaří. Chyby zahrnují chybějící tajné kódy nebo chyby autorizace.
Struktura konfigurace
Přidejte část azure-key-vault na kořenovou úroveň vaší konfigurace:
{
"azure-key-vault": {
"endpoint": "https://my-vault-name.vault.azure.net/",
"retry-policy": {
"mode": "exponential",
"max-count": 5,
"delay-seconds": 2,
"max-delay-seconds": 30,
"network-timeout-seconds": 45
}
}
}
Vlastnosti
| Vlastnictví | Povinné | Typ | Description |
|---|---|---|---|
endpoint |
Ano , pokud používáte Key Vault | řetězec | Úplná adresa URL koncového bodu služby Key Vault |
retry-policy |
Ne | objekt | Přepíše chování opakování při volání služby Key Vault. |
Objekt zásad opakování
| Obor | Výchozí | Poznámky |
|---|---|---|
mode |
exponential |
Povolené hodnoty: fixed nebo exponential |
max-count |
3 | Musí být větší než 0. |
delay-seconds |
1 | Musí být větší než 0. |
max-delay-seconds |
60 | Musí být větší než 0, horní hranice pro exponenciální zálohování |
network-timeout-seconds |
60 | Musí být větší než 0. |
Režimy politiky opakování
| Mode | Chování |
|---|---|
fixed |
Čeká konstantu delay-seconds mezi pokusy, dokud max-count |
exponential |
Zdvojnásobí zpoždění do dosažení max-delay-seconds nebo max-count |
Místní vývoj: Soubory .akv
K vývoji bez služby Azure Key Vault použijte .akv soubor k simulaci tajných kódů. Formát je name=value na každý řádek:
my-connection-secret=Server=.;Database=AppDb;User Id=app;Password=local-dev;
api-key=dev-api-key-123
Poznámka:
Pokud zadáte místní .akv soubor pro vývoj, použijí se jeho položky k uspokojení @akv(vyhledávání "secret-name", aniž by bylo nutné volat síť do služby Azure Key Vault.
Pokyny:
- Udržujte
.akvmimo správu zdrojového kódu - Názvy tajných kódů se musí shodovat s názvy použitými v
@akv('name')
Přidání nastavení služby Azure Key Vault pomocí rozhraní příkazového řádku
Nastavení služby Key Vault můžete nakonfigurovat pomocí rozhraní příkazového řádku:
dab configure \
--azure-key-vault.endpoint "https://my-vault.vault.azure.net/" \
--azure-key-vault.retry-policy.mode exponential \
--azure-key-vault.retry-policy.max-count 5 \
--azure-key-vault.retry-policy.delay-seconds 2 \
--azure-key-vault.retry-policy.max-delay-seconds 30 \
--azure-key-vault.retry-policy.network-timeout-seconds 45 \
--config dab-config.json
Validace:
- Pole zásad opakování bez koncového bodu způsobují chybu ověření
- Volitelné parametry opakování musí být kladné celé číslo.
Použití @akv() v konfiguraci
Základní náhrada
{
"data-source": {
"database-type": "mssql",
"connection-string": "@akv('primary-sql-connection')"
}
}
Smíšené s @env()
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@akv('sql-connection')"
},
"runtime": {
"rest": { "enabled": true }
}
}
Poznámka:
Při spuštění dochází k @env() náhradám před @akv() náhradami.
Parametry uložené procedury
{
"entities": {
"RunJob": {
"source": {
"object": "dbo.RunJob",
"type": "stored-procedure",
"parameters": {
"apiKey": "@akv('job-runner-apikey')"
}
},
"permissions": [
{ "role": "anonymous", "actions": [ "execute" ] }
]
}
}
}
Řešení problémů
| Příznaky | Postup |
|---|---|
| Tajný kód nebyl nalezen. | Ověřte název, existenci v trezoru a oprávnění pro identity |
| Neplatná hodnota opakování | Použijte kladné celé číslo nebo odstraňte pro použití výchozích hodnot. |
| Selhání aktualizace konfigurace | Zkontrolujte protokoly kvůli chybám ověřování |
@akv() nenahrazuje se |
Potvrďte koncový bod, název tajemství a že je povoleno rozlišení tajemství |
| 401/403 ze služby Key Vault | Kontrola přiřazení identit a oprávnění |
Úplná ukázková konfigurace
{
"data-source": {
"database-type": "mssql",
"connection-string": "@akv('primary-sql-connection')"
},
"azure-key-vault": {
"endpoint": "https://my-vault.vault.azure.net/",
"retry-policy": {
"mode": "exponential",
"max-count": 5,
"delay-seconds": 2,
"max-delay-seconds": 30,
"network-timeout-seconds": 45
}
},
"runtime": {
"rest": { "enabled": true }
},
"entities": {
"Books": {
"source": "dbo.Books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Příklad .akv souboru:
primary-sql-connection=Server=localhost;Database=BooksDb;User Id=app;Password=password;
Důležité
Neposílejte .akv soubory obsahující citlivé informace. |
Stručná referenční dokumentace
| Položka | Shrnutí |
|---|---|
| Syntaxe | @akv('secret-name') |
| Vyžaduje se koncový bod. | Ano |
| Soubor simulace |
.akvs čárami name=value |
Míchání s @env() |
Supported. |
Review
Slouží @akv() k vyřešení tajemství ze služby Azure Key Vault. Nakonfigurujte zásady opakování pro spolehlivost a pomocí .akv souborů simulujte tajné kódy při vývoji. Díky tomu jsou citlivé hodnoty mimo konfigurační soubory a zároveň podporují konzistentní vývojové a produkční pracovní postupy.