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 met azd, voert u de opdracht opnieuw uit met de --debug schakeloptie om meer debugging 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 aanpak kunnen andere bewakingssystemen de foutopsporing opnemen en kunnen ze ook nuttig zijn bij het indienen van een probleem op GitHub.

Belangrijk

Zorg ervoor dat u gevoelige informatie verwijdert of anonimiseert bij het verzenden van debuglogs op GitHub of wanneer u ze 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 machtigingen voor Azure-accounts worden niet bijgewerkt 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 meer 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 krijgen tijdens een lange uitrol of andere langdurige 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. Voer curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> uit (<version> is stable standaard, maar een specifieke uitgebrachte versie kan ook 1.0.0 opgegeven worden).

Zodra de versie van azd symbolisch gekoppeld is in ~/bin, krijgt deze voorrang boven de versie die symbolisch gekoppeld is in azd van /usr/local/bin.

Ga als volgt te werk om terug te keren naar de versie van azd die al op Cloud Shell is geïnstalleerd voor gebruik in bash:

  1. Voer rm ~/bin/azd uit
  2. Voer rm -rf ~/azd uit

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 vereiste 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 misgaan 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 resource-aanbieder is niet aanwezig in die regio.'

De stappen voor probleemoplossing kunnen verschillen, afhankelijk van de hoofdoorzaak.

Oplossing

  1. Ga naar 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 het tabblad Acties van de betrokken GitHub-opslagplaats en onderzoek 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, zou azd een .azd map met drw-r--r-- toegang aanmaken.

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 voor azd uit om de map opnieuw te maken met de juiste toegangsniveaus.

azd monitor voor ontwikkelcontainer

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 sjabloon Dockerfile 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 bestaat 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 Key Vault"

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

    Schermopname van de fout die is ontvangen bij het uitvoeren van azd pipeline-configuratie met AzDo voor Java in 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 het upgraden 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. Verander de map naar de service die is mislukt (src/api in het geval van failed packaging service 'api')
  2. Voer npm upgrade v8-compile-cache uit
  3. Ga naar de hoofdmap van de opslagplaats en voer de opdracht azd opnieuw uit (bijvoorbeeld azd package of azd up)

azd pipeline config mislukt vanwege beleid voor voorwaardelijke toegang

Wanneer u azd pipeline config uitvoert, kunt u een foutbericht ontvangen zoals het volgende:

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. Zo ja:

    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 azd pipeline config opnieuw uit.

Dockerfile in cache gebruikt in plaats van het huidige Dockerfile

azd Wanneer u in uw lokale ontwikkelomgeving met Docker werkt, kan Docker de in de cache opgeslagen versie van uw Dockerfile gebruiken in plaats van de huidige versie. Dit resulteert in de implementatie met behulp van een container met onjuiste informatie.

Oplossing

Als u uw lokale Docker-installatie wilt configureren die wordt gebruikt door Azure Developer CLI om de container te bouwen, moet u Docker configureren met de volgende omgevingsvariabelen:

DOCKER_BUILDKIT=1
DOCKER_BUILD_ARGS="--no-cache"

U kunt uw azd up veranderen zodat deze instellingen worden opgenomen.

DOCKER_BUILDKIT=1 DOCKER_BUILD_ARGS="--no-cache" azd up

ondersteuning voor azd pipeline config

azd pipeline config wordt momenteel niet ondersteund in DevContainers/VS Code Remote Containers.

Functieproblemen bij Compose

De azd functie opstellen is alleen beschikbaar voor specifieke projecttypen. Als u opstelopdrachten zoals azd add of azd infra gen in een niet-ondersteunde context probeert te gebruiken, kunnen de volgende fouten optreden.

Incompatibel project

Als u een ERROR: incompatible project bericht ziet bij het uitvoeren van de azd add opdracht, controleert u het type project waarmee u werkt. De azd add opdracht wordt niet ondersteund voor .NET Aspire-projecten of voor azd sjablonen waarvoor al een infra map is gedefinieerd. Als u probeert te gebruiken azd add met deze projecttypen, ontstaan er fouten zoals:

  • FOUT: incompatibel project: host van de Aspire-app gevonden

  • FOUT: onverenigbaar project: infradirectory en een azure.yaml gevonden zonder resources

    Een schermafbeelding van de incompatibele .NET Aspire-projectfout.

    Een schermopname van de fout van incompatibiliteit van projectinfrastructuur.

Project bevat geen infrastructuur om te genereren

De fout ERROR: this project does not contain any infrastructure to generate treedt op wanneer:

  • U voert azd infra gen uit zonder compose-resources gedefinieerd in uw project.
  • In .NET Aspire-projecten kan deze fout ook worden weergegeven als azd een Aspire App Host niet kan worden gedetecteerd in de huidige map.

U kunt deze fout oplossen door azd add nieuwe resources toe te voegen voordat u uw .NET Aspire-project uitvoert azd infra gen of ervoor te zorgen dat uw .NET Aspire-project correct is gestructureerd.

Een schermopname van de infrastructuurfout.

Fout bij het oplossen van een Azure-resource

De opdracht azd show <name> kan mislukken met de volgende fout: ERROR: resolving '<name>': AZURE_RESOURCE_<NAME>_ID is not set as an output variable. Dit kan een aantal redenen hebben:

  • De resource <name> bestaat niet in azure.yaml onder de resources: node.
  • De resource <name> is nog niet geconfigureerd.

Een schermopname van de Azure-resourcefout.

Oplossing

Voer azd up uit om de resources in te richten. Mogelijk moet u eerst azd infra gen uitvoeren om de bijgewerkte Bicep inclusief de resource <name> te genereren en vervolgens azd up uitvoeren.

Ondersteuning voor live metrische gegevens voor Python

Live Metrics (azd monitor --live) wordt momenteel niet ondersteund voor Python-apps. Zie Live metrische gegevens: bewaken en diagnosticeren met latentie van 1 seconde voor meer informatie.

Een GitHub-probleem maken om hulp te vragen

Een afbeelding van het GitHub-logo.

De Azure Developer CLI en de Azure Developer CLI Visual Studio Code-extensie gebruiken GitHub Issues om bugs en functieaanvragen bij te houden. Zoek de bestaande problemen voordat u nieuwe problemen indient om dubbele items te voorkomen.

Raadpleeg onze wiki voor hulp en vragen over het gebruik van dit project voor het gebruik van Azure Developer CLI en ons BIJDRAGEN-document als u een bijdrage wilt leveren.