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.
Tipp
Eine umfassende Anleitung zum Erstellen und Verwalten von Umgebungen in der Azure Developer CLI finden Sie unter Arbeiten mit Umgebungen in der Azure Developer CLI.
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 azdHooks.
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-valuesauf 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
.envWerte aus der Vorlage für das Anwendungscodeframework verfügbar, z. B. Node.js oder .NET. - Schreiben Sie die
.envWerte 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.
Wie kann ich eine neue azd Umgebungsvariable manuell 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
Wie kopiere oder schreibe azd ich Umgebungsvariablen als Systemumgebungsvariablen?
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 azdazd 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)
}
}