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.
Ez a cikk választ ad a környezeti változók és az Azure Developer CLI (azd) használatával kapcsolatos gyakori kérdésekre.
Jótanács
A környezetek Azure Developer CLI-ben való létrehozásával és kezelésével kapcsolatos átfogó útmutatóért lásd: Környezetek használata az Azure Developer CLI-ben.
Milyen különbségek vannak a környezeti változók és a rendszer környezeti változói között azd ?
azd A környezeti változók a .env projekt könyvtárában található fájlban .azure/<environment name> vannak tárolva, és elkülönülnek a rendszer/operációs rendszer környezeti változóitól.
azdA környezeti változók sablonkiépítési és üzembehelyezési feladatokat konfigurálnak, és olyan parancsokkal érhetők el, mint a azd env .azd env get-values
A rendszerkörnyezeti változók nem érhetők el azd közvetlenül parancsokkal, és egyéni rendszerhéj- vagy PowerShell-szkriptekkel kell kezelni, általában horogokkalazd.
A azd parancsok közvetlenül olvashatják és írhatják a rendszerkörnyezet változóit?
Nem, a azd parancsok nem tudják olvasni vagy írni a rendszerkörnyezet változóit. Parancsok, például azd env set egy adott azd környezet sablonfájljában .env tárolt értékeken, vagy azd env get-values azon működnek.
azd A környezetek kezelése a projektsablon címtárában lévő .azure/<environment name> almappákkal történik, így a sablon több környezettel is rendelkezhet. A környezeti almappák olyan konfigurációs fájlokat tárolnak, mint a .env környezet leírása.
A rendszerszintű környezeti változók azd olvasásához vagy írásához használjon egyéni rendszerhéj- vagy PowerShell-szkripteket horgokkal.
Mi a kapcsolat a fájlban és azd a main.bicep környezeti változókban beállított kimeneti változók között?
A fájlban main.bicep beállított kimeneti változók automatikusan a .env sablon fájljában lesznek azd tárolva. Vegye figyelembe a következő kimeneti változókat egy main.bicep sabloninfrastruktúrafájlban:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Sikeres azd upazd provisionvagy a azd projekt könyvtárában lévő fájlba .env írja be ezt a .azure/<environment name> két változót:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Ezután a fájlból elérheti ezeket a változókat a .env következővel azd env get-values: .
Alapértelmezés szerint mely környezeti változók vannak beállítva a .env fájlban?
Alapértelmezés szerint a következő környezeti változók vannak beállítva a .env fájlban:
| Név | Leírás | Példaértékek | Ha elérhető |
|---|---|---|---|
AZURE_ENV_NAME |
A használatban lévő környezet neve. | todo-app-dev |
Környezet létrehozásakor (például azd init vagy azd env new futtatása után). |
AZURE_LOCATION |
A használatban lévő környezet helye. | eastus2 |
Közvetlenül a környezet első üzembe helyezése előtt. |
AZURE_PRINCIPAL_ID |
A futó felhasználó/szolgáltatásnév. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Automatikusan meghatározva a kiépítés során (rövid élettartam). |
AZURE_SUBSCRIPTION_ID |
A célzott előfizetés. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Közvetlenül a környezet első üzembe helyezése előtt. |
SERVICE_<service>_IMAGE_NAME |
A tárolóalkalmazás-szolgáltatásokhoz az Azure Container Registryben közzétett tárolórendszerkép teljes neve. | todoapp/web-dev:azdev-deploy-1664988805 |
Kép sikeres közzététele containerapp után |
Mi az ajánlott módszer a környezeti változók fájlból való lekéréséhez azd.env ? Miért kellene ezt csinálnom?
A parancs használatával lekérheti azd a azd env get-values környezeti változókat.
azd env get-values
A környezeti változók elérésének azd gyakori okai a következők:
- További konfiguráció végrehajtása a horogszkriptekben.
- Tegye elérhetővé a
.envsablon értékeit az alkalmazáskód-keretrendszerben, például Node.js vagy .NET. - Írja be az értékeket a
.envrendszerkörnyezet változóiba.
Jótanács
A rendszer környezeti változóinak beállításakor körültekintően járjon el, mivel ütközéseket okozhatnak az azonos környezeti változóneveket használó más sablonokkal.
Hogyan állíthatok be manuálisan egy új azd környezeti változót?
Állítson be további azd környezeti változókat a azd env set parancs használatával, és adja meg a változó kulcsát és értékét.
A környezeti változók beállításának azd gyakori okai a következők:
- Az üzembe helyezés során szükséges Azure-erőforrásadatok elérése a kiépítés során.
- A környezeti változó alapértelmezett
azdértékeinek felülbírálása vagy módosítása. - Adjon meg további egyéni konfigurációs értékeket a kiépítéshez, üzembe helyezéshez vagy egyéni szkriptekhez.
azd env set MY_KEY MyValue
Hogyan másolhatok vagy írhatok azd környezeti változókat rendszerkörnyezeti változókként?
Bizonyos esetekben előfordulhat, hogy a környezeti változókat egy másik környezeti fájlba vagy a rendszerkörnyezetbe szeretné másolni azd a nyelvi keretrendszerek használata céljából. Előfordulhat például, hogy a kiépített Azure-szolgáltatások végponti URL-címeit szeretné használni a szolgáltatásokhoz való csatlakozáshoz az alkalmazáskódban. Egyéni szkriptek használatával lekérheti azd a környezeti változókat, majd rendszerkörnyezeti változókként állíthatja be őket. Gyakori, hogy ezeket a szkripteket az életciklus során azd horogként futtatjuk, ahogy az alábbi példában látható:
Megjegyzés:
Körültekintően másolja a azd környezeti változókat a helyi rendszerbe vagy más operációs környezetbe. Az egyező névvel rendelkező rendszerkörnyezeti változók különböző azd sablonok vagy különböző azd környezetek közötti azd ütközéseket okozhatnak.
postprovision:
windows:
shell: pwsh
run: ./scripts/map-env-vars.ps1
interactive: false
continueOnError: false
posix:
shell: sh
run: ./scripts/map-env-vars.sh
interactive: false
continueOnError: false
A linuxos hivatkozott rendszerhéjszkript lekéri a azd környezeti változókat, és rendszerkörnyezeti változókként exportálja őket:
echo "Loading azd .env file from current environment..."
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
A Windows hivatkozott PowerShell-szkriptje lekéri a azd környezeti változókat, és rendszerkörnyezeti változókként exportálja őket:
Write-Host "Loading azd .env file from current environment"
foreach ($line in (& azd env get-values)) {
if ($line -match "([^=]+)=(.*)") {
$key = $matches[1]
$value = $matches[2] -replace '^"|"$'
[Environment]::SetEnvironmentVariable($key, $value)
}
}