Hibaelhárítás az Azure Developer CLI-ben

Ez a cikk az Azure Developer CLI (azd) használatakor felmerülő gyakori problémák megoldását ismerteti.

Segítség kérése és visszajelzés küldése

Ha nem találja, amit ebben a cikkben keres, vagy visszajelzést szeretne küldeni, kérdéseket tehet fel az Azure Developer CLI-vitafórumokban.

A hibák bejelentéséhez nyissa meg a GitHub-problémákat az Azure Developer CLI GitHub-adattárában.

--debug A kapcsoló használata

Ha váratlan problémát tapasztal a munka azdsorán, futtassa újra a parancsot a kapcsolóval a --debug további hibakeresési és diagnosztikai kimenet engedélyezéséhez.

azd up --debug

A hibakeresési kimenetet egy helyi szövegfájlba is elküldheti a jobb használhatóság érdekében. Ez a módszer lehetővé teszi, hogy a hibakeresési adatokat más monitorozási rendszerek is betöltse, és a GitHubon történő probléma bejelentésekor is hasznos lehet.

Fontos

A Hibakeresési naplók GitHubon való elküldésekor vagy más diagnosztikai rendszerekbe való mentésekor ügyeljen arra, hogy minden bizalmas információt újra kiírjon.

azd deploy --debug > "<your-file-path>.txt"

A .azure könyvtár

Az Azure Developer CLI feltételezi, hogy a .azure címtárban tárolt könyvtárak Azure Developer CLI-környezetek. Ne futtasson Azure Developer CLI-parancsokat egy olyan felhasználó kezdőkönyvtárából, aki telepítette az Azure CLI-t.

Nincs bejelentkezve az Azure-ba, vagy lejárt jogkivonat a Visual Studióban

A Visual Studióban való futtatás azd init -t <template-name> után a következő hibaüzenet jelenik meg: "A távoli hozzáféréshez ehhez az adattárhoz újra be kell szereznie az OAuth-alkalmazást Visual Studio."

Megoldás

Futtassa azd auth login a hozzáférési jogkivonat frissítését.

A frissített Azure-fiókengedélyek nem frissülnek azd

Alapértelmezés szerint azd gyorsítótárazza az Azure-beli hitelesítő adatokat és engedélyeket. Ha az Azure-fiókja új szerepkörökhöz és engedélyekhez van rendelve, vagy további előfizetésekhez van hozzáadva, előfordulhat, hogy ezek a módosítások nem jelennek meg azonnal a dokumentumban azd. A probléma megoldásához jelentkezzen ki, majd jelentkezzen be újra azd a következő parancsokkal:

azd auth logout

azd auth login

Kövesse a parancsban található utasításokat a azd auth login bejelentkezési folyamat befejezéséhez és a gyorsítótárazott hitelesítő adatok frissítéséhez.

A Cloud Shell korlátozásai azd

A Cloud Shellben való futtatásnak azd van néhány korlátozása:

Docker-támogatás a Cloud Shellben

A Cloud Shell nem támogatja a docker build vagy run parancsok futtatását, mert a docker démon nem fut. További információkért lásd a Cloud Shell hibaelhárítását.

A Cloud Shell időtúllépése

A Cloud Shell időtúllépést okozhat egy hosszú üzembe helyezés vagy más hosszan futó feladat során. Győződjön meg arról, hogy a munkamenet nem tétlenné válik. Lásd a Cloud Shell használati korlátait.

Cloud Shell-felület

A Cloud Shell elsősorban parancssori felület, és kevesebb funkcióval rendelkezik, mint egy integrált fejlesztési környezet, például a Visual Studio Code.

Nem lehet csatlakozni a Docker-démonhoz a Cloud Shellben

A Cloud Shell tárolóval üzemelteti a rendszerhéjkörnyezetet, így a Docker-démon futtatását igénylő feladatok nem engedélyezettek.

Az azd különböző verziójának telepítése a Cloud Shellben

Bizonyos esetekben előfordulhat, hogy a Cloud Shellben már használt verziótól eltérő verziót azd kell telepíteni. Ehhez bash:

  1. Futtassa mkdir -p ~/bin a ~/bin mappa jelenlétének biztosításához
  2. Futtassa mkdir -p ~/azd a helyi ~/azd mappa jelenlétének biztosításához
  3. Futtatás curl -fsSL https://aka.ms/install-azd.sh | bash -s -- --install-folder ~/azd --symlink-folder ~/bin --version <version> (<version> alapértelmezés szerint, stable de egy adott kiadású verzió 1.0.0 is megadható).

A telepítés után a szimbolikusan csatolt ~/bin verzió azd elsőbbséget élvez a szimbolikusan csatolt verzióval azd/usr/local/binszemben.

Ha vissza szeretne térni a Cloud Shellben már telepített verzió azd használatára a bashben:

  1. Az rm ~/bin/azd parancs futtatása
  2. Az rm -rf ~/azd parancs futtatása

Megoldás

Használjon másik gazdagépet a docker-démont igénylő feladatok végrehajtásához. Az egyik lehetőség a Docker-gép használata a Cloud Shell hibaelhárítási dokumentációjában leírtak szerint.

Azure Bicep CLI-követelmény

azd up és azd provision az Azure Bicep CLI legújabb kiadásának megkövetelése. A következő hibaüzenet jelenhet meg: "Hiba: nem sikerült lefordítani a bicep-sablont: nem sikerült futtatni az Az PowerShell-modul bicep-buildjének futtatását: kilépési kód: 1, stdout: , stderr: FIGYELMEZTETÉS: Egy új Bicep-kiadás érhető el: 0.4.1272-es verzió."

Megoldás

Korábban a Bicep egy preqrequisite volt a telepítéshez és a használathoz azd . azd Most automatikusan telepíti a Bicep-et a helyi azd hatókörön belül (nem globálisan), és ezt a problémát most meg kell oldani. Ha azonban másik verziót szeretne használni, beállíthatja a környezeti változót, AZD_BICEP_TOOL_PATH hogy a szükséges verzió helyére mutasson.

azd up vagy azd provision sikertelen

A dolgok néha mennek awry vagy azd upazd provision. Gyakori hibák a következők:

  • "Nem lehet bizonyos erőforrásokat kiépni egy Azure-régióban, mert a régió kapacitáson kívül van."
  • "A releváns erőforrás-szolgáltató nem található ebben a régióban."

A hibaelhárítási lépések a kiváltó októl függően eltérhetnek.

Megoldás

  1. Nyissa meg az Azure Portalt.

  2. Keresse meg az erőforráscsoportot, amely rg-your-environment-name<>.

  3. További információkért válassza az Üzemelő példányok lehetőséget.

  4. Ellenőrizze, hogy olyan környezetnevet adott-e meg, amely megegyezik a környezet nevével.

  5. Lépjen a lapra https://github.com/<your repo>/actions, majd tekintse meg a folyamatfuttatás naplófájljában található további információkat.

Egyéb erőforrásokat az Azure gyakori üzembehelyezési hibáinak elhárítása – Azure Resource Manager című témakörben talál.

azd init Megköveteli sudo

Korábban azd version = azure-dev-cli_0.2.0-beta.1létrehozna egy .azd mappát hozzáférésseldrw-r--r--. azd

Ez problémát fog okozni, mivel ennek vagy bármely korábbi verziójának használata bármely Linux-beállításon (WSL, ssh-remote, devcontainer stb.) már biztosít egy .azd mappát írásvédett módban.

Megoldás

  1. Törölje manuálisan a már megadott .azd mappát:

    rm -r ~/.azd
    
  2. Futtassa azd init újra azd a mappát a megfelelő hozzáférési szintekkel.

azd monitor fejlesztői tárolóhoz

azd monitor jelenleg nem támogatott, ha fejlesztési környezetként fejlesztési tárolót használ.

Nem lehet hitelesítést végezni Codespaces-környezetekben

Ha hitelesítési problémákat tapasztal a Codespacesben, győződjön meg arról, hogy a Dockerfile sablon tartalmazza a sudo apt-get update && sudo apt-get install xdg-utils parancsokat. A xdg-utils parancs megnyit egy böngészőlapot, amely lehetővé teszi a bejelentkezést.

A statikus webalkalmazások üzembe helyezése sikertelen volt a sikeres üzenet ellenére

Ismert probléma áll fenn az Azure Static Web Appsben való üzembe helyezéskor, amelyben az alapértelmezett azd up kimenet azt jelezheti, hogy a művelet sikeres volt, de a módosítások ténylegesen nem lettek üzembe helyezve. Ezt a problémát diagnosztizálhatja úgy, hogy a azd up parancsot engedélyezve futtatja a --debug jelölőt. A kimeneti naplókban a következő üzenet jelenhet meg:

Preparing deployment. Please wait...
An unknown exception has occurred

Ez a probléma azd valószínűleg gitHub-műveletből futtatva jelenik meg. Kerülő megoldásként a webhely létrehozása után másolja staticwebapp.config.json a buildmappába. Ezt a lépést automatizálhatja egy előre csomagolt vagy előre üzembe helyezési parancshook használatával, amely lehetővé teszi egyéni szkriptek végrehajtását az azd parancs munkafolyamatainak különböző pontjain.

A termékcsapat dolgozik a probléma megoldásán.

GitHub Actions-hiba – "Nincs titkos kulcs a key vaulthoz való hozzáféréshez"

Ha ugyanazt a környezetet vagy erőforráscsoportnevet osztja meg az erőforrások helyi és GitHub Actionsben történő kiépítésekor, akkor a Key Does not have secrets get permission on key vault.. Vault szolgáltatás hibát okozhat. A Key Vault nem támogatja a Bicep növekményes engedélyfrissítéseit, ami gyakorlatilag azt jelenti, hogy a GitHub Actions munkafolyamat felülírja a helyi felhasználó hozzáférési szabályzatának engedélyeit.

A probléma ajánlott megoldása a helyi fejlesztési és GitHub Actions-munkafolyamatok különálló környezetneveinek használata. További információ a több környezet használatáról a azd env gyik oldalon található paranccsal.

Szövegalapú böngészőtámogatás

A szövegalapú böngészők jelenleg nem támogatottak azd monitor.

azd pipeline config AzDo használata Java-sablonokhoz Windows rendszeren

Hiba léphet fel az AzDo for Java-sablonok Windows rendszeren való futtatásakor azd pipeline config . Például:

  1. Futtassa a következőket Windows rendszeren:

    azd init --template Azure-Samples/todo-java-mongo
    azd pipeline config
    
  2. A következő hibaüzenetet kapta:

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

Megoldás

Ez egy ismert probléma. A probléma megoldása közben próbálkozzon a következő paranccsal:

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 hiba az Apple Silicon (M1/M2) frissítése azd után

Bizonyos esetekben az ARM64 bináris x86_64 verziójáról azd való frissítés meghiúsulhat a x86_64 verziójával azdkészült sablonok esetében. Ennek az az oka, hogy a sablon olyan verziót v8-compile-cache használ, amelynek x86_64 beépített bájtkódját megpróbálhatja betölteni egy ARM64-folyamatba.

A probléma megoldásához frissítse a v8-compile-cache csomagot az érintett projektben:

  1. Módosítsa a könyvtárat arra a szolgáltatásra, amely nem sikerült (src/api a következő esetén failed packaging service 'api': )
  2. Az npm upgrade v8-compile-cache parancs futtatása
  3. Módosítsa a könyvtárat az adattár gyökerére, és futtassa újra a azd parancsot (például azd package vagy azd up)

azd pipeline config hiba a feltételes hozzáférési szabályzat miatt

Futtatáskor azd pipeline configaz alábbihoz hasonló hibaüzenet jelenhet meg:

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: be3438c1-42fc-4c37-96d8-0e723ac54f01\r\nCorrelation ID: f535565f-9f3c-4014-ad65-403f514bf892\r\nTimestamp: 2022-12-16 21:10:37Z","error_codes":[50005],"timestamp":"2022-12-16 21:10:37Z","trace_id":"be3438c1-42fc-4c37-96d8-0e723ac54f01","correlation_id":"f535565f-9f3c-4014-ad65-403f514bf892"}

Ez a hiba a Feltételes hozzáférési szabályzatok Microsoft Entra-bérlői engedélyezésével kapcsolatos. Az adott szabályzathoz egy támogatott eszközplatformra kell bejelentkezni.

Előfordulhat, hogy ezt a hibát azért is kapja, mert az eszközkód mechanizmus használatával jelentkezik be, ami megakadályozza, hogy a Microsoft Entra ID megfelelően észlelje az eszközplatformot.

Megoldás

A munkafolyamat konfigurálásához engedélyeznie kell, hogy a rendszer az Ön nevében üzembe helyezze a GitHubot az Azure-ban. Engedélyezze a GitHubot egy GitHub-titkos AZURE_CREDENTIALSkódban tárolt Azure Service Principal létrehozásával. Válassza ki a Codespace-gazdagépet a következő lépésekhez:

  1. A hibaüzenet alapján győződjön meg arról, hogy támogatottként felsorolt eszközön fut.

  2. Futtassa azd auth login újra a hozzáfűzött jelölőt --use-device-code=false :

    azd auth login --use-device-code=false
    
  3. Bejelentkezés után hibaüzenet localhost refused to connect jelenhet meg. Ha igen:

    1. URL-cím másolása.
    2. Futtassa curl '<pasted url>' (URL-cím idézőjelekben) egy új Codespaces-terminálban.

    Az eredeti terminálban a bejelentkezésnek most sikeresnek kell lennie.

  4. Bejelentkezés után futtassa újra a következőt azd pipeline config: