Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Data API Builder (DAB) kan du hålla hemligheter (till exempel databasanslutningssträngar) borta dab-config.json genom att ersätta värden vid inläsningstid. Den första mekanismen @env() som stöds är funktionen som löser miljövariabler från värdprocessmiljön eller en lokal .env fil.
Se även: the @akv() function.
Vad @env() gör
Placera en referens till en miljövariabel varhelst ett strängvärde förväntas:
{
"data-source": {
"connection-string": "@env('SQL_CONN_STRING')"
}
}
Vid konfigurationens inläsningstid söker DAB igenom strängvärdena efter @env('VAR_NAME') mönstret och ersätter token med värdet för miljövariabeln VAR_NAME.
Källor för värden
| Källa | Description |
|---|---|
| OS/processmiljö | Standardmiljövariabler som finns när DAB-processen startar. |
.env fil |
En klartextfil med NAME=VALUE rader i konfigurationskatalogen (för lokal utvecklings bekvämlighet). |
Anmärkning
Filen .env åsidosätter befintliga process-/systemmiljövariabler när båda definierar samma namn.
Om du anger en lokal .env-fil för utveckling används dess poster för att uppfylla @env( "var-name"-sökningar utan att göra något anrop till den lokala miljön.
Exempelfil .env :
SQL_CONN_STRING=Server=localhost;Database=AppDb;User Id=app;Password=local-dev;
DB_TYPE=mssql
JOB_API_KEY=dev-job-key
Riktlinjer:
- Håll
.envnäradab-config.json(eller där din startprocess förväntar sig det). - Lägg till
.envi.gitignore. - Tomma rader och rader som börjar med
#(om det stöds, verifiera) ignoreras vanligtvis. Bekräfta innan du dokumenterar kommentarsstöd. - På Linux/macOS är namnen skiftlägeskänsliga. På Windows är de i praktiken skiftlägesokänsliga.
Använda @env() i konfigurationen
Grundläggande ersättning
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@env('SQL_CONN_STRING')"
}
}
Kombinerat med @akv()
{
"data-source": {
"database-type": "@env('DB_TYPE')",
"connection-string": "@akv('prod-sql-connection')"
}
}
Parametrar för lagrad procedur
{
"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" ] }
]
}
}
}
Miljövariabler ersätts med strängar. Efterföljande parsning (till exempel till int eller bool) hanteras av den förbrukande konfigurationen eller körningslogiken.
Felsökning
| Scenario | Outcome |
|---|---|
| Variabel hittades | Substitutionen lyckas. |
| Variabel saknas | Konfigurationsladdningen misslyckas sannolikt. |
| Variabeln hittades inte | Ersatt med en tom sträng. |
Flera @env() i olika egenskaper |
Alla lösta oberoende. |
| Används där ett numeriskt eller ett booleskt värde förväntas | Värde som ersätts som sträng; parsning kan lyckas. |
Ogiltigt mönster (till exempel @env(DB_VAR) citattecken saknas) |
Behandlas som en literalsträng. |
Fullständigt exempel
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!;
Viktigt!
Lämna inte in .env filer som innehåller känsliga uppgifter. |
Snabbreferens
| Objekt | Sammanfattning |
|---|---|
| Syntax | @env('variable-name') |
| Simuleringsfil |
.env med name=value linjer |
Blanda med @env() |
Stöds. |
Review
Använd @env() för att hålla hemligheter och miljöspecifika värden borta från konfigurationsfiler. Koppla ihop den med disciplinerad hemlig hantering, till exempel CI/CD-variabellager eller containerdefinitioner, för en säker och flexibel distribution. För användning av företagsvalv kombinerar du det med @akv() funktionen för att centralisera information.