Problemen met Azure Developer CLI oplossen
Dit artikel bevat oplossingen voor veelvoorkomende problemen die zich kunnen voordoen wanneer u Azure Developer CLI (azd) gebruikt.
Hulp vragen en feedback geven
Als u niet kunt vinden wat u zoekt in dit artikel of als u feedback wilt geven, kunt u vragen posten in Azure Developer CLI-discussies.
U kunt ook fouten melden door GitHub-problemen te openen in de GitHub-opslagplaats van Azure Developer CLI.
--debug
De schakeloptie gebruiken
Als er een onverwacht probleem optreedt tijdens het werken azd
, voert u de opdracht opnieuw uit met de --debug
schakeloptie om extra foutopsporing en diagnostische uitvoer in te schakelen.
azd up --debug
U kunt de foutopsporingsuitvoer ook naar een lokaal tekstbestand verzenden om de bruikbaarheid te verbeteren. Met deze methode kunnen de foutopsporingsgegevens worden opgenomen door andere bewakingssystemen en kunnen ze ook nuttig zijn bij het indienen van een probleem op GitHub.
Belangrijk
Zorg ervoor dat u gevoelige informatie redact bij het verzenden van foutopsporingslogboeken op GitHub of deze opslaat in andere diagnostische systemen.
azd deploy --debug > "<your-file-path>.txt"
De .azure
map
Azure Developer CLI gaat ervan uit dat mappen die zijn opgeslagen in de .azure
map Azure Developer CLI-omgevingen zijn. Voer azure Developer CLI-opdrachten niet uit vanuit de basismap van een gebruiker waarop de Azure CLI is geïnstalleerd.
Niet aangemeld bij Azure of token verlopen in Visual Studio
Nadat u in Visual Studio hebt uitgevoerd azd init -t <template-name>
, krijgt u de volgende fout: 'Voor toegang tot externe toegang: deze opslagplaats moet u de OAuth-toepassing Visual Studio
opnieuw autoriseren'.
Oplossing
Voer deze opdracht uit azd auth login
om het toegangstoken te vernieuwen.
Bijgewerkte Azure-accountmachtigingen worden niet vernieuwd in azd
azd
Standaard worden uw Azure-referenties en -machtigingen in de cache opgeslagen. Als er nieuwe rollen en machtigingen aan uw Azure-account zijn toegewezen of aan extra abonnementen worden toegevoegd, worden deze wijzigingen mogelijk niet onmiddellijk doorgevoerd in azd
. Als u dit probleem wilt oplossen, meldt u zich af en meldt u zich vervolgens weer aan azd
met behulp van de volgende opdrachten:
azd auth logout
azd auth login
Volg de aanwijzingen van de opdracht om het aanmeldingsproces te voltooien en uw referenties in de azd auth login
cache bij te werken.
Cloud Shell-beperkingen voor azd
Er zijn enkele beperkingen voor het uitvoeren azd
in Cloud Shell:
Docker-ondersteuning in Cloud Shell
Cloud Shell biedt geen ondersteuning voor het uitvoeren van docker build
of run
opdrachten omdat de docker-daemon niet wordt uitgevoerd. Zie Problemen met Cloud Shell oplossen voor meer informatie.
Time-out voor Cloud Shell
Cloud Shell kan een time-out optreden tijdens een lange implementatie of andere langlopende taken. Zorg ervoor dat de sessie niet inactief wordt. Zie Cloud Shell-gebruikslimieten.
Cloud Shell-interface
Cloud Shell is voornamelijk een opdrachtregelinterface en heeft minder functies dan een geïntegreerde ontwikkelomgeving zoals Visual Studio Code.
Kan geen verbinding maken met de Docker-daemon in Cloud Shell
Cloud Shell gebruikt een container om uw shell-omgeving te hosten, zodat taken waarvoor de Docker-daemon moet worden uitgevoerd, niet zijn toegestaan.
Verschillende versie van azd installeren in Cloud Shell
In sommige gevallen kan het nodig zijn om een andere versie azd
te installeren dan de versie die al in Cloud Shell wordt gebruikt. Ga als volgt te werk om dit in bash te doen:
- Uitvoeren
mkdir -p ~/bin
om ervoor te zorgen dat de~/bin
map aanwezig is - Uitvoeren
mkdir -p ~/azd
om ervoor te zorgen dat er een lokale~/azd
map aanwezig is - Uitvoeren
curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version>
(<version>
isstable
standaard, maar een specifieke uitgebrachte versie kan1.0.0
ook worden opgegeven).
Zodra de versie van azd
symbolisch is gekoppeld ~/bin
, heeft de versie van symbolisch gekoppeld voorrang op de versie van azd
symbolisch gekoppeld in /usr/local/bin
.
Ga als volgt te werk om terug te keren naar het gebruik van de versie die azd
al is geïnstalleerd in Cloud Shell in bash:
rm ~/bin/azd
uitvoerenrm -rf ~/azd
uitvoeren
Oplossing
Gebruik een andere host om taken uit te voeren waarvoor de Docker-daemon is vereist. Een optie is om docker-machine te gebruiken, zoals beschreven in de documentatie voor het oplossen van problemen met Cloud Shell.
Azure Bicep CLI-vereiste
azd up
en azd provision
vereist de nieuwste versie van Azure Bicep CLI. Mogelijk krijgt u het volgende foutbericht: 'Fout: kan bicep-sjabloon niet compileren: De bicep-build van de Az PowerShell-module is mislukt: afsluitcode: 1, stdout: , stderr: WAARSCHUWING: er is een nieuwe Bicep-release beschikbaar: v0.4.1272.'
Oplossing
Voorheen was Bicep een preqrequisite voor het installeren en gebruiken van azd
. azd
installeert bicep nu automatisch binnen het lokale azd
bereik (niet wereldwijd) en dit probleem moet nu worden opgelost. Als u echter een andere versie wilt gebruiken, kunt u de omgevingsvariabele instellen: AZD_BICEP_TOOL_PATH
om te verwijzen naar de locatie van de versie die u nodig hebt.
azd up
of azd provision
mislukt
Dingen kunnen soms onhandig zijn met azd up
of azd provision
. Veelvoorkomende fouten zijn:
- 'Kan bepaalde resources niet inrichten in een Azure-regio omdat de regio geen capaciteit heeft.'
- 'Relevante resourceprovider is niet aanwezig in die regio.'
De stappen voor probleemoplossing kunnen verschillen, afhankelijk van de hoofdoorzaak.
Oplossing
Ga naar de Azure-portal.
Zoek de resourcegroep, die rg-your-environment-name<> is.
Selecteer Implementaties voor meer informatie.
Controleer of u een omgevingsnaam hebt opgegeven die hetzelfde is als uw omgevingsnaam.
Ga naar
https://github.com/<your repo>/actions
en raadpleeg het logboekbestand in de pijplijnuitvoering voor meer informatie.
Zie Veelvoorkomende Azure-implementatiefouten oplossen - Azure Resource Manager voor andere resources.
azd init
Vereist sudo
Voordat azd version = azure-dev-cli_0.2.0-beta.1
u azd
een .azd
map met drw-r--r--
toegang zou maken.
Dit veroorzaakt een probleem, omdat het gebruik van deze of een eerdere versie op een Linux-installatie (WSL, ssh-remote, devcontainer, enzovoort) al een .azd
map met de modus Alleen-lezen biedt.
Oplossing
Verwijder de reeds opgegeven
.azd
map handmatig:rm -r ~/.azd
Voer
azd init
dezeazd
opdracht uit om de map opnieuw te maken met de juiste toegangsniveaus.
azd monitor
voor ontwikkelingscontainer
azd monitor
wordt momenteel niet ondersteund als u een ontwikkelcontainer als uw ontwikkelomgeving gebruikt.
Kan niet verifiëren in Codespaces-omgevingen
Als u verificatieproblemen ondervindt in Codespaces, controleert u of de dockerfile van de sjabloon de sudo apt-get update && sudo apt-get install xdg-utils
opdrachten bevat. Met de xdg-utils
opdracht wordt een browsertabblad geopend waarmee u zich kunt aanmelden.
Static Web Apps kan niet worden geïmplementeerd ondanks het succesbericht
Er is een bekend probleem bij het implementeren in Azure Static Web Apps waarin de standaarduitvoer azd up
kan aangeven dat de actie is geslaagd, maar de wijzigingen zijn niet daadwerkelijk geïmplementeerd. U kunt dit probleem vaststellen door de azd up
opdracht uit te voeren waarvoor de --debug
vlag is ingeschakeld. In de uitvoerlogboeken ziet u mogelijk het volgende bericht:
Preparing deployment. Please wait...
An unknown exception has occurred
U ondervindt dit probleem waarschijnlijk wanneer azd
deze wordt uitgevoerd vanuit een GitHub-actie. Als tijdelijke oplossing kopieert u na het bouwen van uw site staticwebapp.config.json
naar de buildmap. U kunt deze stap automatiseren met behulp van een prepackage- of predeploy-opdrachthook, waarmee u aangepaste scripts kunt uitvoeren op verschillende punten in de azd-opdrachtwerkstromen.
Het productteam probeert dit probleem op te lossen.
GitHub Actions-fout: 'Heeft geen machtigingen voor het ophalen van geheimen voor sleutelkluis'
Het delen van dezelfde omgevings- of resourcegroepnaam bij het lokaal inrichten van resources en in GitHub Actions kan de fout Does not have secrets get permission on key vault..
van de Key Vault-service veroorzaken. Key Vault biedt geen ondersteuning voor incrementele machtigingen via Bicep. Dit betekent dat de GitHub Actions-werkstroom de machtigingen voor toegangsbeleid van de lokale gebruiker overschrijft.
De aanbevolen oplossing voor dit probleem is het gebruik van afzonderlijke omgevingsnamen voor lokale ontwikkeling en GitHub Actions-werkstromen. Lees meer over het gebruik van meerdere omgevingen met de azd env
opdracht op de pagina Veelgestelde vragen.
Ondersteuning voor browser op basis van tekst
Op tekst gebaseerde browsers worden momenteel niet ondersteund door azd monitor
.
azd pipeline config
AzDo voor Java-sjablonen gebruiken in Windows
Er kan een fout optreden bij het uitvoeren azd pipeline config
met AzDo voor Java-sjablonen in Windows. U hebt bijvoorbeeld:
Voer het volgende uit in Windows:
azd init --template Azure-Samples/todo-java-mongo azd pipeline config
De volgende fout is ontvangen:
Oplossing
Dit is een bekend probleem. Probeer de volgende opdracht terwijl we dit probleem oplossen:
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
mislukt na de upgrade azd
op Apple Silicon (M1/M2)
In sommige situaties kan het upgraden van de x86_64 versie van azd
een ARM64 binair bestand leiden tot fouten voor sjablonen die zijn gebouwd met de x86_64 versie van azd
. Dit komt doordat de sjabloon gebruikmaakt van v8-compile-cache
een versie waarvan kan worden geprobeerd bytecode te laden die is gebouwd onder x86_64 in een ARM64-proces.
Als u dit probleem wilt oplossen, voert u een upgrade uit van het v8-compile-cache
pakket in het betrokken project:
- Map wijzigen in de service die is mislukt (
src/api
in het geval vanfailed packaging service 'api'
) npm upgrade v8-compile-cache
uitvoeren- Wijzig de map in de hoofdmap van de opslagplaats en voer de
azd
opdracht (bijvoorbeeldazd package
ofazd up
) opnieuw uit
azd pipeline config
mislukt vanwege beleid voor voorwaardelijke toegang
Wanneer u wordt uitgevoerd azd pipeline config
, wordt er mogelijk een foutbericht weergegeven dat er als volgt uitziet:
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"}
Deze fout is gerelateerd aan het inschakelen van uw Microsoft Entra-tenantbeleid voor voorwaardelijke toegang. Voor het specifieke beleid moet u zijn aangemeld bij een ondersteund apparaatplatform.
Mogelijk ontvangt u deze fout ook omdat u bent aangemeld met behulp van het mechanisme voor apparaatcode, waardoor Microsoft Entra ID uw apparaatplatform niet correct detecteert.
Oplossing
Als u de werkstroom wilt configureren, moet u GitHub toestemming geven om namens u te implementeren in Azure. Autoriseer GitHub door een Azure-service-principal te maken die is opgeslagen in een GitHub-geheim met de naam AZURE_CREDENTIALS
. Selecteer uw Codespace-host voor stappen:
Zorg ervoor dat u werkt op een apparaat dat wordt vermeld als ondersteund, volgens het foutbericht.
Voer opnieuw uit
azd auth login
met de vlag--use-device-code=false
toegevoegd:azd auth login --use-device-code=false
Mogelijk krijgt u een foutbericht met een bericht
localhost refused to connect
nadat u zich hebt aangemeld. Als dat het geval is:- Kopieer de URL.
- Voer
curl '<pasted url>'
(URL tussen aanhalingstekens) uit in een nieuwe Codespaces-terminal.
In de oorspronkelijke terminal moet de aanmelding nu slagen.
Nadat u zich hebt aangemeld, voert u het opnieuw uit
azd pipeline config
.