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 a titkok (például adatbázis-kapcsolati sztringek) kiszorítását a dab-config.json-ból azáltal, hogy értékeket helyettesítünk betöltéskor. Az első támogatott mechanizmus a függvény, amely feloldja a @env() környezeti változókat a gazdafolyamat-környezetből vagy egy helyi .env fájlból.
Lásd még: the @akv() function.
Mit @env() csinál?
Helyezzen egy környezeti változóra mutató hivatkozást arra a helyre, ahol sztringérték várható:
{
"data-source": {
"connection-string": "@env('SQL_CONN_STRING')"
}
}
Konfiguráció betöltésekor a DAB sztringértékek esetében megkeresi a @env('VAR_NAME') mintát, és lecseréli a jelet a környezeti változó VAR_NAME értékével.
Értékek forrásai
| Forrás | Description |
|---|---|
| Operációs rendszer/ folyamatkörnyezet | A DAB-folyamat indításakor jelen lévő standard környezeti változók. |
.env fájl |
Egyszerű szöveges fájl sorokkal NAME=VALUE a konfigurációs könyvtárban (a helyi fejlesztés megkönnyítése érdekében). |
Megjegyzés:
A .env fájl felülírja a meglévő folyamat-/rendszerkörnyezeti változókat, ha mindkettő ugyanazt a nevet határozza meg.
Ha egy helyi .env fájlt ad meg a fejlesztéshez, a bejegyzéseit a "var-name" lekérdezések kielégítésére használják, anélkül, hogy hívást kezdeményeznének a helyi környezetre.
Példafájl .env :
SQL_CONN_STRING=Server=localhost;Database=AppDb;User Id=app;Password=local-dev;
DB_TYPE=mssql
JOB_API_KEY=dev-job-key
Iránymutatások:
- Tartsa
.envközvetlenül adab-config.jsonmellett (vagy ott, ahol az indítási folyamat elvárja). - Adj hozzá
.enva.gitignore-hez. - A
#-vel kezdődő üres sorokat és sorokat, ha támogatott, általában figyelmen kívül hagyandók; erősítse meg a megjegyzések támogatását, mielőtt dokumentálja. - Linux/macOS rendszereken a nevek érzékenyek a kis- és nagybetűkre. Windows rendszeren nem érzékenyek a kisbetűk és nagybetűk közötti különbségre.
A @env() használata a konfigurációban
Alapszintű helyettesítés
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@env('SQL_CONN_STRING')"
}
}
Kombinálva a @akv()
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@akv('prod-sql-connection')"
}
}
Tárolt eljárás paraméterei
{
"entities": {
"RunJob": {
"source": {
"object": "dbo.RunJob",
"type": "stored-procedure",
"parameters": {
"intParam": "@env('SP_PARAM1_INT')",
"boolParam": "@env('SP_PARAM2_BOOL')"
}
},
"permissions": [
{ "role": "anonymous", "actions": [ "execute" ] }
]
}
}
}
A környezeti értékek sztringekként lesznek helyettesítve. A következő elemzéseket (például int vagy bool) a konfiguráció vagy a futtatókörnyezeti logika kezeli.
Hibaelhárítás
| Scenario | Outcome |
|---|---|
| A változó megtalálható | A helyettesítés sikeres. |
| Változó hiányzik | A konfiguráció betöltése valószínűleg sikertelen lesz. |
| A változó nem található | Üres karakterláncként helyettesítve. |
Több @env() különböző tulajdonságban |
Minden egymástól függetlenül feloldva. |
| Olyan helyeken használatos, ahol numerikus vagy logikai típus várt | Sztringként helyettesített érték; elemzés sikeres lehet. |
Érvénytelen minta (például @env(DB_VAR) hiányzó idézőjelek) |
Literális karakterláncként kezelve. |
Teljes példa
dab-config.json:
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@env('SQL_CONN_STRING')"
},
"runtime": {
"rest": { "enabled": true }
},
"entities": {
"Books": {
"source": "dbo.Books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
.env:
DB_TYPE=mssql
SQL_CONN_STRING=Server=localhost;Database=BooksDb;User Id=app;Password=StrongPassword!;
Fontos
Ne véglegesítse az .env fájlokat, amelyek titkokat tartalmaznak. |
Gyorsreferencia
| Termék | Összefoglalás |
|---|---|
| Szemantika | @env('variable-name') |
| Szimulációs fájl |
.envvonalakkal name=value |
Keverés a @env() |
Supported. |
Felülvizsgálat
A titkos kulcsok és a környezetspecifikus értékek konfigurációs fájlokból való távoltartására használható @env(). Párosítsa egy fegyelmezett titkos kódkezeléssel, például CI/CD-változótárolókkal vagy tárolódefiníciókkal a biztonságos és rugalmas üzembe helyezés érdekében. Vállalati tárolók használatához kombinálja a @akv() funkcióval a titkok központosítását.