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 Data API Builder (DAB) lehetővé teszi, hogy olyan titkokat, mint például az adatbázis-kapcsolati sztringeket, kihagyja a futtatókörnyezet konfigurációs fájljából azáltal, hogy betöltéskor helyettesíti őket. Eredetileg ez a @env() környezeti változók függvényével történt. Az 1.6-os verziótól kezdve a DAB a függvényen keresztül támogatja az Azure Key Vaultot @akv() .
Mit csinál @akv()?
Az Azure Key Vaultban tárolt titkos kódra közvetlenül a konfigurációs JSON-ban hivatkozhat:
{
"data-source": {
"connection-string": "@akv('my-connection-secret')"
}
}
Konfiguráció betöltésekor a DAB feloldja a helyőrzőt, és lecseréli a titkos adat értékére, hasonlóan ahhoz, ahogyan a @env('VAR_NAME') működik. Ha a titkos kód nem kérhető le, a konfiguráció betöltése meghiúsul. A hibák közé tartoznak a hiányzó titkos kódok vagy az engedélyezési hibák.
Konfigurációs struktúra
Adja hozzá a azure-key-vault szakaszt a konfiguráció gyökérszintjén:
{
"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
}
}
}
Tulajdonságok
| Ingatlan | Kötelező | Típus | Description |
|---|---|---|---|
endpoint |
Igen , ha a Key Vaultot használja | karakterlánc | A Key Vault teljes végpontJÁNAK URL-címe |
retry-policy |
Nem | objektum | Felülbírálja az újrapróbálkozási viselkedést a Key Vault hívása során |
Szabályzatobjektum újrapróbálkozása
| szakterület | Alapértelmezett | Jegyzetek |
|---|---|---|
mode |
exponential |
Engedélyezett értékek: fixed vagy exponential |
max-count |
3 | 0-nál nagyobbnak kell lennie |
delay-seconds |
1 | 0-nál nagyobbnak kell lennie |
max-delay-seconds |
60 | 0-nál nagyobbnak kell lennie, az exponenciális visszalépés felső határa |
network-timeout-seconds |
60 | 0-nál nagyobbnak kell lennie |
Újrapróbálkozási szabályzat módok
| Üzemmód | Magatartás |
|---|---|
fixed |
Vár egy állandó időtartamot delay-seconds a próbálkozások között, amíg max-count |
exponential |
Megduplázza a késleltetést, amíg el nem éri max-delay-seconds vagy max-count |
Helyi fejlesztés: .akv fájlok
Az Azure Key Vault nélküli fejlesztéshez használjon egy .akv fájlt a titkos kódok szimulálásához. A formátum soronként van:name=value
my-connection-secret=Server=.;Database=AppDb;User Id=app;Password=local-dev;
api-key=dev-api-key-123
Megjegyzés:
Ha helyi .akv fájlt ad meg a fejlesztéshez, annak bejegyzései a titkos név kereséseinek kielégítésére @akv(szolgálnak anélkül, hogy hálózati hívást kezdeményezne az Azure Key Vaultba.
Iránymutatások:
- Ne legyen
.akva verziókezelésben - A titkos neveknek meg kell egyezniük a
@akv('name')-ben használt nevekkel.
Azure Key Vault-beállítások hozzáadása parancssori felülettel
A Key Vault beállításait a parancssori felülettel konfigurálhatja:
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
Érvényesítés:
- "Újrapróbálkozási szabályzat mezők végpont nélkül érvényesítési hibát okoznak"
- A választható újrapróbálkozások paramétereinek pozitív egész számoknak kell lenniük
A @akv() használata a konfigurációban
Alapszintű helyettesítés
{
"data-source": {
"database-type": "mssql",
"connection-string": "@akv('primary-sql-connection')"
}
}
Keverve a @env()
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@akv('sql-connection')"
},
"runtime": {
"rest": { "enabled": true }
}
}
Megjegyzés:
Indításkor a @env() helyettesítések a @akv() helyettesítések előtt történnek.
Tárolt eljárás paraméterei
{
"entities": {
"RunJob": {
"source": {
"object": "dbo.RunJob",
"type": "stored-procedure",
"parameters": {
"apiKey": "@akv('job-runner-apikey')"
}
},
"permissions": [
{ "role": "anonymous", "actions": [ "execute" ] }
]
}
}
}
Hibaelhárítás
| Tünet | Steps |
|---|---|
| A titkos kód nem található | Ellenőrizze a nevet, a tárolóban való létezést és az azonosító engedélyeket |
| Érvénytelen újrapróbálkozési érték | Pozitív egész szám használata vagy eltávolítás az alapértelmezett értékek használatához |
| A konfiguráció frissítése sikertelen | Ellenőrzési hibák naplóinak ellenőrzése |
@akv() nincs lecserélve |
Ellenőrizze, hogy a végpont, a titkosítási adatok neve, és a titkosítás feloldása engedélyezve van. |
| 401/403 hibakód a Key Vaultból | Identitás-hozzárendelés és engedélyek ellenőrzése |
Teljes példakonfiguráció
{
"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élda .akv fájl:
primary-sql-connection=Server=localhost;Database=BooksDb;User Id=app;Password=password;
Fontos
Ne véglegesítse a titkokat tartalmazó .akv fájlokat. |
Gyorsreferencia
| Termék | Összefoglalás |
|---|---|
| Szemantika | @akv('secret-name') |
| Végpont szükséges | Igen |
| Szimulációs fájl |
.akvvonalakkal name=value |
Keverés a @env() |
Supported. |
Felülvizsgálat
Az Azure Key Vault titkos kulcsának feloldására használható @akv() . Konfiguráljon újrapróbálkozési szabályzatokat a megbízhatóság érdekében, és használjon .akv fájlokat a fejlesztés titkos kulcsainak szimulálására. Ez a konfigurációs fájlokból távol tartja a bizalmas értékeket, miközben támogatja a konzisztens fejlesztési és éles munkafolyamatokat.