Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel vindt u antwoorden op veelgestelde vragen over het werken met omgevingsvariabelen en de Azure Developer CLI (azd).
Aanbeveling
Zie Werken met omgevingen in Azure Developer CLI voor een uitgebreide handleiding over het maken en beheren van omgevingen in Azure Developer CLI.
Wat zijn de verschillen tussen azd omgevingsvariabelen en systeemomgevingsvariabelen?
azd omgevingsvariabelen worden opgeslagen in het .env bestand in de .azure/<environment name> map van uw project en staan los van de omgevingsvariabelen van uw systeem/besturingssysteem.
azd omgevingsvariabelen configureren sjablooninrichtings- en implementatietaken en zijn toegankelijk met behulp van opdrachten zoals azd env of azd env get-values.
Omgevingsvariabelen van het systeem zijn niet rechtstreeks toegankelijk via azd opdrachten en moeten worden beheerd met aangepaste shell- of PowerShell-scripts, meestal met azdhooks.
Kunnen azd opdrachten rechtstreeks omgevingsvariabelen voor het systeem lezen en schrijven?
Nee, azd opdrachten kunnen omgevingsvariabelen van het systeem niet lezen of schrijven. Opdrachten zoals azd env set of azd env get-values werken op waarden die zijn opgeslagen in het sjabloonbestand .env voor een specifieke azd omgeving.
azd omgevingen worden beheerd met behulp van submappen in de .azure/<environment name> map van uw projectsjabloon, waardoor uw sjabloon meerdere omgevingen kan hebben. Omgevingssubmappen bevatten configuratiebestanden zoals .env die de omgeving beschrijven.
Gebruik aangepaste shell- of PowerShell-scripts met azdhooks om omgevingsvariabelen op systeemniveau te lezen of te schrijven.
Wat is de relatie tussen uitvoervariabelen die zijn ingesteld in het main.bicep bestand en azd de omgevingsvariabelen?
Uitvoervariabelen die in het main.bicep bestand zijn ingesteld, worden automatisch opgeslagen in het .env bestand van uw azd sjabloon. Bekijk de volgende uitvoervariabelen in een main.bicep sjablooninfrastructuurbestand:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Na een geslaagde azd up bewerking of azd provisionazd schrijft u deze twee variabelen naar het .env bestand in de .azure/<environment name> map van uw project:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
U kunt deze variabelen vervolgens openen vanuit het .env bestand met behulp van azd env get-values.
Welke omgevingsvariabelen zijn standaard ingesteld in het .env bestand?
De volgende omgevingsvariabelen zijn standaard ingesteld in het .env bestand:
| Naam | Beschrijving | Voorbeeldwaarden | Indien beschikbaar |
|---|---|---|---|
AZURE_ENV_NAME |
De naam van de omgeving die wordt gebruikt. | todo-app-dev |
Wanneer een omgeving wordt gemaakt (bijvoorbeeld nadat u azd init of azd env new hebt uitgevoerd). |
AZURE_LOCATION |
De locatie van de omgeving die in gebruik is. | eastus2 |
Vlak voordat een omgeving voor het eerst wordt ingericht. |
AZURE_PRINCIPAL_ID |
De actieve gebruiker/service-principal. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Automatisch bepaald tijdens het inrichten (kortstondig). |
AZURE_SUBSCRIPTION_ID |
Het doelabonnement. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Vlak voordat een omgeving voor het eerst wordt ingericht. |
SERVICE_<service>_IMAGE_NAME |
De volledige naam van de containerinstallatiekopieën die zijn gepubliceerd naar Azure Container Registry voor container-app-services. | todoapp/web-dev:azdev-deploy-1664988805 |
Na een geslaagde publicatie van een containerapp afbeelding |
Wat is de aanbevolen methode om omgevingsvariabelen op te halen azd uit het .env bestand? Waarom zou ik dit moeten doen?
Haal omgevingsvariabelen op azd met behulp van de azd env get-values opdracht.
azd env get-values
Veelvoorkomende redenen voor toegang tot azd omgevingsvariabelen zijn onder andere:
- Voer extra configuratie uit in hookscripts.
- Stel de
.envwaarden van de sjabloon beschikbaar in het toepassingscodeframework, zoals Node.js of .NET. - Schrijf de
.envwaarden naar systeemomgevingsvariabelen.
Aanbeveling
Wees voorzichtig bij het instellen van omgevingsvariabelen van het systeem, omdat deze conflicten kunnen veroorzaken met andere sjablonen die dezelfde namen van omgevingsvariabelen delen.
Hoe stel ik handmatig een nieuwe azd omgevingsvariabele in?
Stel aanvullende azd omgevingsvariabelen in met behulp van de azd env set opdracht, waarbij u de sleutel en waarde voor uw variabele opgeeft.
Veelvoorkomende redenen voor het instellen azd van omgevingsvariabelen zijn onder andere:
- Toegang tot Azure-resourcegegevens die zijn gemaakt tijdens de inrichting die nodig is tijdens de implementatie.
- Standaardwaarden voor omgevingsvariabelen overschrijven of wijzigen
azd. - Geef aanvullende aangepaste configuratiewaarden op voor gebruik bij het inrichten, implementeren of aangepaste scripts.
azd env set MY_KEY MyValue
Hoe kan ik omgevingsvariabelen kopiëren of schrijven azd als systeemomgevingsvariabelen?
In sommige scenario's kunt u omgevingsvariabelen kopiëren azd naar een ander omgevingsbestand of naar uw systeemomgeving voor gebruik door taalframeworks. U kunt bijvoorbeeld eindpunt-URL's van ingerichte Azure-services gebruiken om verbinding te maken met deze services in uw app-code. Gebruik aangepaste scripts om omgevingsvariabelen op te halen azd en deze vervolgens in te stellen als systeemomgevingsvariabelen. Het is gebruikelijk om deze scripts uit te voeren als hooks tijdens de azd levenscyclus, zoals te zien is in het volgende voorbeeld:
Opmerking
Wees voorzichtig bij het kopiëren van azd omgevingsvariabelen naar uw lokale systeem of andere besturingsomgevingen. Systeemomgevingsvariabelen met overeenkomende namen kunnen worden opgehaald en azd conflicten veroorzaken tussen verschillende azd sjablonen of verschillende azd omgevingen.
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
Met het shell-script waarnaar wordt verwezen voor Linux worden de azd omgevingsvariabelen opgehaald en geëxporteerd als omgevingsvariabelen van het systeem:
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
Met het PowerShell-script waarnaar wordt verwezen voor Windows worden de azd omgevingsvariabelen opgehaald en geëxporteerd als omgevingsvariabelen van het systeem:
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)
}
}