Problembehandlung für die Azure Developer CLI
Dieser Artikel enthält Lösungen für häufige Probleme, die auftreten können, wenn Sie Azure Developer CLI (azd) verwenden.
Hilfe und Feedback
Wenn Sie in diesem Artikel nicht finden können, wonach Sie suchen oder Feedback geben möchten, können Sie Fragen zu Azure Developer CLI-Diskussionen posten.
Sie können Fehler auch melden, indem Sie GitHub-Probleme im GitHub-Repository der Azure Developer CLI öffnen.
Verwenden des Schalters --debug
Wenn beim Arbeiten mit azd
dem Befehl ein unerwartetes Problem auftritt, führen Sie den Befehl erneut aus --debug
, um zusätzliche Debugging- und Diagnoseausgabe zu aktivieren.
azd up --debug
Sie können die Debugausgabe auch an eine lokale Textdatei senden, um die Benutzerfreundlichkeit zu verbessern. Mit diesem Ansatz können die Debuginformationen von anderen Überwachungssystemen aufgenommen werden und können auch bei der Einreichung eines Problems auf GitHub hilfreich sein.
Wichtig
Stellen Sie sicher, dass vertrauliche Informationen beim Übermitteln von Debugprotokollen auf GitHub oder beim Speichern in anderen Diagnose-Systemen redigiert werden.
azd deploy --debug > "<your-file-path>.txt"
Das .azure
Verzeichnis
Azure Developer CLI geht davon aus, dass alle Verzeichnisse, die .azure
im Verzeichnis gespeichert sind, Azure Developer CLI-Umgebungen sind. Führen Sie keine Azure Developer CLI-Befehle aus dem Startverzeichnis eines Benutzers aus, auf dem die Azure CLI installiert ist.
Nicht bei Azure angemeldet oder Token abgelaufen in Visual Studio
Nachdem Sie in Visual Studio ausgeführt azd init -t <template-name>
haben, erhalten Sie die folgende Fehlermeldung: "Für den Zugriff auf Remote: dieses Repository müssen Sie die OAuth-App lizenzierung Visual Studio
erneut autorisieren."
Lösung
Führen Sie die Ausführung aus azd auth login
, um das Zugriffstoken zu aktualisieren.
Aktualisierte Azure-Kontoberechtigungen werden nicht aktualisiert in azd
Speichert standardmäßig azd
Ihre Azure-Anmeldeinformationen und -berechtigungen zwischen. Wenn Ihrem Azure-Konto neue Rollen und Berechtigungen zugewiesen oder zusätzlichen Abonnements hinzugefügt werden, werden diese Änderungen möglicherweise nicht sofort angezeigt.azd
Um dieses Problem zu azd
beheben, melden Sie sich ab, und melden Sie sich dann mit den folgenden Befehlen wieder an:
azd auth logout
azd auth login
Folgen Sie den Anweisungen des azd auth login
Befehls, um den Anmeldevorgang abzuschließen und Ihre zwischengespeicherten Anmeldeinformationen zu aktualisieren.
Cloud Shell-Einschränkungen für azd
Es gibt einige Einschränkungen für die Ausführung azd
in Cloud Shell:
Docker-Unterstützung in Cloud Shell
Cloud Shell unterstützt nicht das Ausführen von Docker build
oder run
Befehlen, da der Docker-Daemon nicht ausgeführt wird. Weitere Informationen finden Sie unter "Problembehandlung bei Cloud Shell".
Cloud Shell-Timeout
Cloud Shell kann sich während einer langen Bereitstellung oder anderer lang ausgeführter Aufgaben zeitüberschreitungen. Stellen Sie sicher, dass die Sitzung nicht im Leerlauf ist. Siehe Cloud Shell-Nutzungsgrenzwerte.
Cloud Shell-Schnittstelle
Cloud Shell ist in erster Linie eine Befehlszeilenschnittstelle und verfügt über weniger Features als eine integrierte Entwicklungsumgebung wie Visual Studio Code.
Eine Verbindung mit dem Docker-Daemon in Cloud Shell kann nicht hergestellt werden.
Cloud Shell verwendet einen Container, um Ihre Shellumgebung zu hosten, sodass Aufgaben, die das Ausführen des Docker-Daemons erfordern, nicht zulässig sind.
Installieren einer anderen Version von azd in Cloud Shell
In einigen Fällen kann es erforderlich sein, eine andere Version azd
als die version zu installieren, die bereits in Cloud Shell verwendet wird. Gehen Sie dazu in Bash wie folgt vor:
- Ausführen
mkdir -p ~/bin
, um sicherzustellen, dass der~/bin
Ordner vorhanden ist - Führen Sie die Ausführung
mkdir -p ~/azd
aus, um sicherzustellen, dass ein lokaler~/azd
Ordner vorhanden ist. - Run
curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version>
(<version>
wärestable
standardmäßig, aber eine bestimmte veröffentlichte Version1.0.0
kann auch angegeben werden).
Nach der Installation hat die symbolisch verknüpfte ~/bin
Version azd
Vorrang vor der symbolisch verknüpften Versionazd
./usr/local/bin
So rückgängig machen Sie die Version der azd
bereits installierten Cloud Shell in Bash verwenden:
- Ausführen von
rm ~/bin/azd
- Ausführen von
rm -rf ~/azd
Lösung
Verwenden Sie einen anderen Host, um Aufgaben auszuführen, die den Docker-Daemon erfordern. Eine Möglichkeit besteht darin, Docker-Computer zu verwenden, wie in der Dokumentation zur Problembehandlung in Cloud Shell beschrieben.
Azure Bicep CLI-Anforderung
azd up
und azd provision
erfordern die neueste Version von Azure Bicep CLI. Möglicherweise wird die folgende Fehlermeldung angezeigt: "Fehler: Fehler beim Kompilieren der Bicep-Vorlage: Fehler beim Ausführen des Az PowerShell-Modul-Bicep-Builds: Exit code: 1, stdout: , stderr: WARNING: Eine neue Bicep-Version ist verfügbar: v0.4.1272."
Lösung
Zuvor war Bicep eine Preqrequisite für die Installation und Verwendung azd
. azd
installiert Bicep jetzt automatisch im lokalen azd
Bereich (nicht global) und dieses Problem sollte jetzt behoben werden. Wenn Sie jedoch eine andere Version verwenden möchten, können Sie die Umgebungsvariable festlegen: AZD_BICEP_TOOL_PATH
Zeigen Sie auf den Speicherort der benötigten Version.
azd up
oder azd provision
schlägt fehl
Dinge können manchmal verwischte oder azd up
azd provision
. Häufige Fehler sind z.B. folgende:
- "Bestimmte Ressourcen in einer Azure-Region können nicht bereitgestellt werden, da die Region nicht mehr in der Kapazität ist."
- "Relevanter Ressourcenanbieter ist in dieser Region nicht vorhanden."
Die Schritte zur Problembehandlung können je nach Ursache unterschiedlich sein.
Lösung
Öffnen Sie das Azure-Portal.
Suchen Sie Ihre Ressourcengruppe, die rg-your-environment-name<> ist.
Wählen Sie "Bereitstellungen" aus, um weitere Informationen zu erhalten.
Stellen Sie sicher, dass Sie einen Umgebungsnamen angegeben haben, der dem Namen Ihrer Umgebung entspricht.
Wechseln Sie zu
https://github.com/<your repo>/actions
, und verweisen Sie dann auf die Protokolldatei in der Pipeline, um weitere Informationen zu erhalten.
Weitere Ressourcen finden Sie unter Problembehandlung allgemeiner Azure-Bereitstellungsfehler – Azure Resource Manager.
azd init
erfordert sudo
.
azd
Erstellen Sie vorher azd version = azure-dev-cli_0.2.0-beta.1
einen .azd
Ordner mit drw-r--r--
Zugriff.
Dies führt zu einem Problem, da die Verwendung dieser oder einer früheren Version auf einem Linux-Setup (WSL, ssh-remote, devcontainer usw.) bereits einen .azd
Ordner mit schreibgeschütztem Modus bereitstellt.
Lösung
Löschen Sie den bereits bereitgestellten
.azd
Ordner manuell:rm -r ~/.azd
azd
Führen Sie diese Schritteazd init
aus, um den Ordner erneut mit den richtigen Zugriffsebenen zu erstellen.
azd monitor
für Entwicklungscontainer
azd monitor
wird derzeit nicht unterstützt, wenn Sie einen Entwicklungscontainer als Entwicklungsumgebung verwenden.
Authentifizierung in Codespaces-Umgebungen nicht möglich
Wenn Authentifizierungsprobleme in Codespaces auftreten, stellen Sie sicher, dass die Vorlage Dockerfile die sudo apt-get update && sudo apt-get install xdg-utils
Befehle enthält. Der xdg-utils
Befehl öffnet eine Browserregisterkarte, über die Sie sich anmelden können.
Statische Web-Apps trotz Erfolgsmeldung nicht bereitgestellt werden
Ein bekanntes Problem ist beim Bereitstellen in Azure Static Web-Apps vorhanden, in dem die Standardausgabe azd up
möglicherweise den Erfolg der Aktion anzeigt, aber die Änderungen wurden nicht tatsächlich bereitgestellt. Sie können dieses Problem diagnostizieren, indem Sie den azd up
Befehl mit aktivierter --debug
Kennzeichnung ausführen. In den Ausgabeprotokollen wird möglicherweise die folgende Meldung angezeigt:
Preparing deployment. Please wait...
An unknown exception has occurred
Dieses Problem tritt wahrscheinlich auf, wenn azd
sie von einer GitHub-Aktion ausgeführt wird. Als Problemumgehung kopieren staticwebapp.config.json
Sie nach dem Erstellen Ihrer Website in den Buildordner. Sie können diesen Schritt automatisieren, indem Sie einen Prepackage- oder Predeploy-Befehlshaken verwenden, mit dem Sie benutzerdefinierte Skripts an verschiedenen Stellen in den azd-Befehlsworkflows ausführen können.
Das Produktteam arbeitet daran, dieses Problem zu beheben.
Fehler "GitHub-Aktionen" – "Verfügt nicht über geheime Schlüssel zum Abrufen der Berechtigung für den Schlüsseltresor"
Die Gemeinsame Nutzung desselben Umgebungs- oder Ressourcengruppennamens beim lokalen Bereitstellen von Ressourcen und in GitHub-Aktionen kann den Fehler Does not have secrets get permission on key vault..
vom Key Vault-Dienst erzeugen. Key Vault unterstützt keine inkrementellen Berechtigungsupdates über Bicep, was bedeutet, dass der GitHub-Aktionen-Workflow die Zugriffsrichtlinienberechtigungen des lokalen Benutzers überschreibt.
Die empfohlene Lösung für dieses Problem besteht darin, separate Umgebungsnamen für lokale Entwicklungs- und GitHub-Aktionen-Workflows zu verwenden. Weitere Informationen zur Verwendung mehrerer Umgebungen mit dem azd env
Befehl auf der Faq-Seite.
Textbasierte Browserunterstützung
Textbasierte Browser werden derzeit nicht von azd monitor
.
azd pipeline config
Verwenden von AzDo für Java-Vorlagen unter Windows
Möglicherweise tritt bei der Ausführung azd pipeline config
mit AzDo für Java-Vorlagen unter Windows ein Fehler auf. Sie haben beispielsweise Folgendes:
Führen Sie folgendes unter Windows aus:
azd init --template Azure-Samples/todo-java-mongo azd pipeline config
Der folgende Fehler wurde empfangen:
Lösung
Dies ist ein bekanntes Problem. Führen Sie während der Behebung dieses Problems den folgenden Befehl aus:
git update-index --chmod=+x src/api/mvnw && git commit -m "Fix executable bit permissions" && git push
failed packaging service 'api': failed invoking action 'package', failed to run NPM script build, signal: segmentation fault
Fehler nach dem Upgrade azd
auf Apple Silicon (M1/M2)
In einigen Situationen kann das Upgrade von der x86_64-Version azd
auf eine ARM64-Binärdatei zu Fehlern für Vorlagen führen, die mit der x86_64 Version von azd
. Dies liegt daran, dass die Vorlage eine Version verwendet, deren v8-compile-cache
Bytecode unter x86_64 in einen ARM64-Prozess geladen werden kann.
Aktualisieren Sie das Paket im betroffenen Projekt, um dieses v8-compile-cache
Problem zu beheben:
- Ändern des Verzeichnisses in den Dienst, der fehlgeschlagen ist (
src/api
im Fall vonfailed packaging service 'api'
) - Ausführen von
npm upgrade v8-compile-cache
- Ändern Sie das Verzeichnis in das Stammverzeichnis des Repositorys, und führen Sie den
azd
Befehl (z. B. oderazd up
) erneut aus.azd package
azd pipeline config
Fehler aufgrund der Richtlinie für bedingten Zugriff
Wenn Sie ausgeführt werden azd pipeline config
, erhalten Sie möglicherweise eine Fehlermeldung wie die folgenden:
ERROR: failed to create or update service principal: failed retrieving application list, failed executing request: http call(https://login.microsoftonline.com/common/oauth2/v2.0/token)(POST) error: reply status code was 400:
{"error":"invalid_grant","error_description":"AADSTS50005: User tried to log in to a device from a platform (Unknown) that's currently not supported through Conditional Access policy. Supported device platforms are: iOS, Android, Mac, and Windows flavors.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: 2022-12-16 21:10:37Z","error_codes":[50005],"timestamp":"2022-12-16 21:10:37Z","trace_id":"0000aaaa-11bb-cccc-dd22-eeeeee333333","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}
Dieser Fehler bezieht sich auf die Microsoft Entra-Mandantenaktivierung von Richtlinien für bedingten Zugriff. Die spezifische Richtlinie erfordert, dass Sie bei einer unterstützten Geräteplattform angemeldet sind.
Möglicherweise erhalten Sie diesen Fehler auch aufgrund der Anmeldung mithilfe des Gerätecodemechanismus, wodurch verhindert wird, dass Microsoft Entra-ID Ihre Geräteplattform ordnungsgemäß erkennt.
Lösung
Zum Konfigurieren des Workflows müssen Sie GitHub die Berechtigung erteilen, Azure in Ihrem Namen bereitzustellen. Autorisieren Sie GitHub, indem Sie einen Azure-Dienstprinzipal erstellen, der in einem GitHub-Geheimnis mit dem Namen gespeichert ist AZURE_CREDENTIALS
. Wählen Sie Ihren Codespace-Host für Schritte aus:
Stellen Sie sicher, dass Sie auf einem gerät ausgeführt werden, das gemäß der Fehlermeldung als unterstützt aufgeführt ist.
Führen Sie den Erneuten Ausführen
azd auth login
mit der angefügten Kennzeichnung--use-device-code=false
aus:azd auth login --use-device-code=false
Nach der Anmeldung wird möglicherweise eine Fehlermeldung mit der Meldung
localhost refused to connect
angezeigt. Wenn ja:- Kopieren Sie die URL.
- Führen Sie
curl '<pasted url>'
(URL in Anführungszeichen) in einem neuen Codespaces-Terminal aus.
Im ursprünglichen Terminal sollte die Anmeldung nun erfolgreich sein.
Führen Sie nach der Anmeldung erneut aus
azd pipeline config
.