Delen via


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 Studioopnieuw 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:

  1. Uitvoeren mkdir -p ~/bin om ervoor te zorgen dat de ~/bin map aanwezig is
  2. Uitvoeren mkdir -p ~/azd om ervoor te zorgen dat er een lokale ~/azd map aanwezig is
  3. Uitvoeren curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> (<version> is stable standaard, maar een specifieke uitgebrachte versie kan 1.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:

  1. rm ~/bin/azd uitvoeren
  2. rm -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

  1. Ga naar de Azure-portal.

  2. Zoek de resourcegroep, die rg-your-environment-name<> is.

  3. Selecteer Implementaties voor meer informatie.

  4. Controleer of u een omgevingsnaam hebt opgegeven die hetzelfde is als uw omgevingsnaam.

  5. Ga naar https://github.com/<your repo>/actionsen 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.1u 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

  1. Verwijder de reeds opgegeven .azd map handmatig:

    rm -r ~/.azd
    
  2. Voer azd init deze azd 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:

  1. Voer het volgende uit in Windows:

    azd init --template Azure-Samples/todo-java-mongo
    azd pipeline config
    
  2. De volgende fout is ontvangen:

    Screenshot showing the error received when running azd pipeline config with AzDo for Java on Windows.

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:

  1. Map wijzigen in de service die is mislukt (src/api in het geval van failed packaging service 'api')
  2. npm upgrade v8-compile-cache uitvoeren
  3. Wijzig de map in de hoofdmap van de opslagplaats en voer de azd opdracht (bijvoorbeeld azd package of azd 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:

  1. Zorg ervoor dat u werkt op een apparaat dat wordt vermeld als ondersteund, volgens het foutbericht.

  2. Voer opnieuw uit azd auth login met de vlag --use-device-code=false toegevoegd:

    azd auth login --use-device-code=false
    
  3. Mogelijk krijgt u een foutbericht met een bericht localhost refused to connect nadat u zich hebt aangemeld. Als dat het geval is:

    1. Kopieer de URL.
    2. Voer curl '<pasted url>' (URL tussen aanhalingstekens) uit in een nieuwe Codespaces-terminal.

    In de oorspronkelijke terminal moet de aanmelding nu slagen.

  4. Nadat u zich hebt aangemeld, voert u het opnieuw uit azd pipeline config.