Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden häufig gestellte Fragen zum Arbeiten mit Umgebungsvariablen und der Azure Developer CLI (azd
) beantwortet.
Was sind die Unterschiede zwischen azd
Umgebungsvariablen und Systemumgebungsvariablen?
azd
Umgebungsvariablen werden in der .env
Datei im .azure/<environment name>
Verzeichnis Ihres Projekts gespeichert und sind von den System-/Betriebssystemumgebungsvariablen getrennt. azd
Umgebungsvariablen konfigurieren die Bereitstellungs- und Bereitstellungsaufgaben von Vorlagen und können mithilfe von Befehlen wie azd env
oder azd env get-values
.
Systemumgebungsvariablen können nicht direkt über azd
Befehle zugegriffen werden und sollten mit benutzerdefinierten Shell- oder PowerShell-Skripts verwaltet werden, im Allgemeinen mit azd
Hooks.
Können azd
Befehle Systemumgebungsvariablen direkt lesen und schreiben?
Nein, azd
Befehle können Systemumgebungsvariablen nicht lesen oder schreiben. Befehle wie azd env set
z. B. oder azd env get-values
Arbeiten mit Werten, die in der Vorlagendatei .env
für eine bestimmte azd
Umgebung gespeichert sind. azd
Umgebungen werden mithilfe von Unterordnern im .azure/<environment name>
Verzeichnis Ihrer Projektvorlage verwaltet, wodurch Ihre Vorlage mehrere Umgebungen aufweisen kann. Unterordner der Umgebung enthalten Konfigurationsdateien, z .env
. B. die Umgebung beschreiben.
Verwenden Sie benutzerdefinierte Shell- oder PowerShell-Skripts mit azd
Hooks zum Lesen oder Schreiben von Umgebungsvariablen auf Systemebene.
Was ist die Beziehung zwischen Ausgabevariablen, die in den main.bicep
Datei- und azd
Umgebungsvariablen festgelegt sind?
Ausgabevariablen, die in der main.bicep
Datei festgelegt sind, werden automatisch in der .env
Datei Ihrer azd
Vorlage gespeichert. Berücksichtigen Sie die folgenden Ausgabevariablen in einer main.bicep
Vorlageninfrastrukturdatei:
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
Nach einem erfolgreichen azd up
oder azd provision
, azd
schreibt diese beiden Variablen in die .env
Datei im .azure/<environment name>
Verzeichnis Ihres Projekts:
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
Anschließend können Sie mithilfe der .env
Datei azd env get-values
auf diese Variablen zugreifen.
Welche Umgebungsvariablen werden standardmäßig in der .env
Datei festgelegt?
Die folgenden Umgebungsvariablen werden standardmäßig in der .env
Datei festgelegt:
Name | BESCHREIBUNG | Beispielwerte | Wenn verfügbar |
---|---|---|---|
AZURE_ENV_NAME |
Der Name der verwendeten Umgebung. | todo-app-dev |
Wenn eine Umgebung erstellt wird (z. B. nach dem Ausführen von azd init oder azd env neu). |
AZURE_LOCATION |
Der Standort der verwendeten Umgebung. | eastus2 |
Direkt vor der erstmaligen Bereitstellung einer Umgebung. |
AZURE_PRINCIPAL_ID |
Der ausgeführte Benutzer-/Dienstprinzipal. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Wird während der Bereitstellung automatisch bestimmt (kurzlebig). |
AZURE_SUBSCRIPTION_ID |
Das zielorientierte Abonnement. | 925cff12-ffff-4e9f-9580-8c06239dcaa4 |
Direkt vor der erstmaligen Bereitstellung einer Umgebung. |
SERVICE_<service>_IMAGE_NAME |
Der vollständige Name des Containerimages, das in azure Container Registry für Container-App-Dienste veröffentlicht wurde. | todoapp/web-dev:azdev-deploy-1664988805 |
Nach erfolgreicher Veröffentlichung eines containerapp Bilds |
Was ist der empfohlene Ansatz zum Abrufen azd
von Umgebungsvariablen aus der .env
Datei? Warum muss ich dies tun?
Rufen Sie Umgebungsvariablen mithilfe des azd env get-values
Befehls abazd
.
azd env get-values
Häufige Gründe für den Zugriff auf azd
Umgebungsvariablen sind:
- Führen Sie zusätzliche Konfiguration in Hook-Skripts aus.
- Machen Sie die
.env
Werte aus der Vorlage für das Anwendungscodeframework verfügbar, z. B. Node.js oder .NET. - Schreiben Sie die
.env
Werte in Systemumgebungsvariablen.
Tipp
Seien Sie vorsichtig, wenn Sie Systemumgebungsvariablen festlegen, da sie Konflikte mit anderen Vorlagen verursachen können, die dieselben Namen von Umgebungsvariablen verwenden.
Gewusst wie manuell eine neue azd
Umgebungsvariable festlegen?
Legen Sie zusätzliche azd
Umgebungsvariablen mithilfe des azd env set
Befehls fest, und stellen Sie den Schlüssel und Wert für Die Variable bereit.
Häufige Gründe zum Festlegen azd
von Umgebungsvariablen sind:
- Zugreifen auf Azure-Ressourceninformationen, die während der Bereitstellung erstellt wurden, die während der Bereitstellung erforderlich sind.
- Überschreiben oder Ändern von Variablenwerten der Standardumgebung
azd
. - Stellen Sie zusätzliche benutzerdefinierte Konfigurationswerte für die Verwendung in Bereitstellungs-, Bereitstellungs- oder benutzerdefinierten Skripts bereit.
azd env set MY_KEY MyValue
Gewusst wie Umgebungsvariablen als Systemumgebungsvariablen kopieren oder schreibenazd
?
In einigen Szenarien können Sie Umgebungsvariablen in eine andere Umgebungsdatei oder in Ihre Systemumgebung kopieren azd
, um sie von Sprachframeworks verwenden zu können. Sie können z. B. Endpunkt-URLs von bereitgestellten Azure-Diensten verwenden, um eine Verbindung mit diesen Diensten in Ihrem App-Code herzustellen. Verwenden Sie benutzerdefinierte Skripts, um Umgebungsvariablen abzurufen azd
und diese dann als Systemumgebungsvariablen festzulegen. Es ist üblich, diese Skripts während des azd
Lebenszyklus als Hooks auszuführen, wie im folgenden Beispiel gezeigt:
Hinweis
Achten Sie beim Kopieren azd
von Umgebungsvariablen auf Ihr lokales System oder andere Betriebssystemumgebungen. Systemumgebungsvariablen mit übereinstimmenden Namen können von azd
verschiedenen Vorlagen oder unterschiedlichen azd
azd
Umgebungen erfasst werden und Konflikte verursachen.
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
Das referenzierte Shellskript für Linux ruft die azd
Umgebungsvariablen ab und exportiert sie als Systemumgebungsvariablen:
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
Das referenzierte PowerShell-Skript für Windows ruft die azd
Umgebungsvariablen ab und exportiert sie als Systemumgebungsvariablen:
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)
}
}