Typowe problemy i rozwiązania
April 4, 2026 · View on GitHub
Nawigacja po rozdziale:
- 📚 Strona kursu: AZD dla początkujących
- 📖 Aktualny rozdział: Rozdział 7 - Rozwiązywanie problemów i debugowanie
- ⬅️ Poprzedni rozdział: Rozdział 6: Kontrole przed wdrożeniem
- ➡️ Następny: Przewodnik po debugowaniu
- 🚀 Następny rozdział: Rozdział 8: Wzorce produkcyjne i przedsiębiorcze
Wprowadzenie
Ten kompleksowy przewodnik po rozwiązywaniu problemów obejmuje najczęściej występujące problemy podczas używania Azure Developer CLI. Naucz się diagnozować, rozwiązywać problemy i usuwać typowe błędy związane z uwierzytelnianiem, wdrażaniem, provisionowaniem infrastruktury i konfiguracją aplikacji. Każdy problem zawiera szczegółowe objawy, przyczyny źródłowe oraz instrukcje krok po kroku, jak go rozwiązać.
Cele nauki
Po ukończeniu tego przewodnika będziesz:
- Mistrzem technik diagnostycznych dla problemów Azure Developer CLI
- Rozumiał najczęstsze problemy z uwierzytelnianiem i uprawnieniami oraz ich rozwiązania
- Potrafił rozwiązać awarie wdrożenia, błędy provisionowania infrastruktury i problemy konfiguracyjne
- Wdrażał proaktywne monitorowanie i strategie debugowania
- Stosował systematyczne metody rozwiązywania złożonych problemów
- Konfigurował odpowiednie logowanie i monitorowanie, aby zapobiegać przyszłym problemom
Efekty nauki
Po ukończeniu będziesz potrafił:
- Diagnozować problemy z Azure Developer CLI używając wbudowanych narzędzi diagnostycznych
- Samodzielnie rozwiązywać problemy związane z uwierzytelnianiem, subskrypcją i uprawnieniami
- Skutecznie rozwiązywać awarie wdrożenia i błędy provisionowania infrastruktury
- Debugować problemy z konfiguracją aplikacji i środowiskiem
- Wdrażać monitorowanie i alerty, aby proaktywnie identyfikować potencjalne problemy
- Stosować najlepsze praktyki w zakresie logowania, debugowania i procesów rozwiązywania problemów
Szybka diagnostyka
Przed przejściem do konkretnych problemów, uruchom te polecenia, aby zgromadzić informacje diagnostyczne:
# Sprawdź wersję i stan azd
azd version
azd config show
# Zweryfikuj uwierzytelnianie Azure
az account show
az account list
# Sprawdź bieżące środowisko
azd env list
azd env get-values
# Włącz debugowanie logów
export AZD_DEBUG=true
azd <command> --debug
Problemy z uwierzytelnianiem
Problem: "Nie udało się uzyskać tokenu dostępu"
Objawy:
azd upkończy się błędami uwierzytelniania- Polecenia zwracają "nieautoryzowany" lub "odmowa dostępu"
Rozwiązania:
# 1. Ponownie uwierzytelnij się przy użyciu Azure CLI
az login
az account show
# 2. Wyczyść pamięć podręczną poświadczeń
az account clear
az login
# 3. Użyj przepływu kodu urządzenia (dla systemów bez interfejsu)
az login --use-device-code
# 4. Ustaw wyraźnie subskrypcję
az account set --subscription "your-subscription-id"
azd config set defaults.subscription "your-subscription-id"
Problem: "Niewystarczające uprawnienia" podczas wdrożenia
Objawy:
- Wdrożenie nie powiodło się z powodu błędów uprawnień
- Nie można utworzyć niektórych zasobów Azure
Rozwiązania:
# 1. Sprawdź swoje przypisania ról w Azure
az role assignment list --assignee $(az account show --query user.name -o tsv)
# 2. Upewnij się, że masz wymagane role
# - Współtwórca (do tworzenia zasobów)
# - Administrator dostępu użytkownika (do przypisywania ról)
# 3. Skontaktuj się z administratorem Azure w celu uzyskania odpowiednich uprawnień
Problem: Problemy z uwierzytelnianiem wielodostępnym
Rozwiązania:
# 1. Zaloguj się za pomocą konkretnego najemcy
az login --tenant "your-tenant-id"
# 2. Ustaw najemcę w konfiguracji
azd config set auth.tenantId "your-tenant-id"
# 3. Wyczyść pamięć podręczną najemcy, jeśli następuje zmiana najemcy
az account clear
🏗️ Błędy provisionowania infrastruktury
Problem: Konflikty nazw zasobów
Objawy:
- Błędy "Nazwa zasobu już istnieje"
- Wdrożenie kończy się niepowodzeniem podczas tworzenia zasobu
Rozwiązania:
# 1. Używaj unikalnych nazw zasobów z tokenami
# W twoim szablonie Bicep:
var resourceToken = toLower(uniqueString(subscription().id, environmentName, location))
name: '${applicationName}-${resourceToken}'
# 2. Zmień nazwę środowiska
azd env new my-app-dev-$(whoami)-$(date +%s)
# 3. Posprzątaj istniejące zasoby
azd down --force --purge
Problem: Lokalizacja/region niedostępny
Objawy:
- "Lokalizacja 'xyz' niedostępna dla typu zasobu"
- Niektóre SKU niedostępne w wybranym regionie
Rozwiązania:
# 1. Sprawdź dostępne lokalizacje dla typów zasobów
az provider show --namespace Microsoft.Web --query "resourceTypes[?resourceType=='sites'].locations" -o table
# 2. Użyj powszechnie dostępnych regionów
azd config set defaults.location eastus2
# lub
azd env set AZURE_LOCATION eastus2
# 3. Sprawdź dostępność usługi według regionu
# Odwiedź: https://azure.microsoft.com/global-infrastructure/services/
Problem: Przekroczony limit kwot
Objawy:
- "Przekroczono limit dla typu zasobu"
- "Osiągnięto maksymalną liczbę zasobów"
Rozwiązania:
# 1. Sprawdź bieżące wykorzystanie limitu
az vm list-usage --location eastus2 -o table
# 2. Zgłoś wniosek o zwiększenie limitu przez portal Azure
# Przejdź do: Subscriptions > Usage + quotas
# 3. Używaj mniejszych SKU do celów rozwojowych
# W main.parameters.json:
{
"appServiceSku": {
"value": "B1" // Instead of P1v3
}
}
# 4. Usuń nieużywane zasoby
az resource list --query "[?contains(name, 'unused')]" -o table
Problem: Błędy szablonów Bicep
Objawy:
- Niepowodzenia walidacji szablonów
- Błędy składni w plikach Bicep
Rozwiązania:
# 1. Sprawdź składnię Bicep
az bicep build --file infra/main.bicep
# 2. Użyj lintera Bicep
az bicep lint --file infra/main.bicep
# 3. Sprawdź składnię pliku parametrów
cat infra/main.parameters.json | jq '.'
# 4. Podejrzyj zmiany wdrożenia
azd provision --preview
🚀 Niepowodzenia wdrożenia
Problem: Niepowodzenia budowy
Objawy:
- Aplikacja nie buduje się podczas wdrożenia
- Błędy podczas instalacji pakietów
Rozwiązania:
# 1. Sprawdź wynik kompilacji z flagą debugowania
azd deploy --service web --debug
# 2. Sprawdź status uruchomionej usługi
azd show
# 3. Testuj kompilację lokalnie
cd src/web
npm install
npm run build
# 3. Sprawdź kompatybilność wersji Node.js/Pythona
node --version # Powinno odpowiadać ustawieniom azure.yaml
python --version
# 4. Wyczyść pamięć podręczną kompilacji
rm -rf node_modules package-lock.json
npm install
# 5. Sprawdź Dockerfile, jeśli używasz kontenerów
docker build -t test-image .
docker run --rm test-image
Problem: Niepowodzenia wdrożenia kontenerów
Objawy:
- Aplikacje kontenerowe nie uruchamiają się
- Błędy pobierania obrazów
Rozwiązania:
# 1. Przetestuj lokalnie build Dockera
docker build -t my-app:latest .
docker run --rm -p 3000:3000 my-app:latest
# 2. Sprawdź logi kontenera za pomocą Azure CLI
az containerapp logs show --name my-app --resource-group my-rg --follow
# 3. Monitoruj aplikację przez azd
azd monitor --logs
# 3. Zweryfikuj dostęp do rejestru kontenerów
az acr login --name myregistry
# 4. Sprawdź konfigurację aplikacji kontenera
az containerapp show --name my-app --resource-group my-rg
Problem: Niepowodzenia połączenia z bazą danych
Objawy:
- Aplikacja nie może połączyć się z bazą danych
- Błędy przekroczenia czasu połączenia
Rozwiązania:
# 1. Sprawdź reguły zapory bazy danych
az postgres flexible-server firewall-rule list --name mydb --resource-group myrg
# 2. Przetestuj łączność z aplikacji
# Dodaj tymczasowo do swojej aplikacji:
curl -v telnet://mydb.postgres.database.azure.com:5432
# 3. Zweryfikuj format ciągu połączenia
azd env get-values | grep DATABASE
# 4. Sprawdź status serwera bazy danych
az postgres flexible-server show --name mydb --resource-group myrg --query state
🔧 Problemy konfiguracyjne
Problem: Zmienne środowiskowe nie działają
Objawy:
- Aplikacja nie odczytuje wartości konfiguracyjnych
- Zmienne środowiskowe są puste
Rozwiązania:
# 1. Zweryfikuj, czy zmienne środowiskowe są ustawione
azd env get-values
azd env get DATABASE_URL
# 2. Sprawdź nazwy zmiennych w azure.yaml
cat azure.yaml | grep -A 5 env:
# 3. Uruchom ponownie aplikację
azd deploy --service web
# 4. Sprawdź konfigurację usługi aplikacji
az webapp config appsettings list --name myapp --resource-group myrg
Problem: Problemy z certyfikatami SSL/TLS
Objawy:
- HTTPS nie działa
- Błędy walidacji certyfikatów
Rozwiązania:
# 1. Sprawdź status certyfikatu SSL
az webapp config ssl list --resource-group myrg
# 2. Włącz tylko HTTPS
az webapp update --name myapp --resource-group myrg --https-only true
# 3. Dodaj niestandardową domenę (jeśli potrzebna)
az webapp config hostname add --webapp-name myapp --resource-group myrg --hostname mydomain.com
Problem: Problemy z konfiguracją CORS
Objawy:
- Frontend nie może wywołać API
- Blokada żądania międzydomenowego
Rozwiązania:
# 1. Skonfiguruj CORS dla App Service
az webapp cors add --name myapi --resource-group myrg --allowed-origins https://myapp.azurewebsites.net
# 2. Zaktualizuj API, aby obsługiwało CORS
# W Express.js:
app.use(cors({
origin: process.env.FRONTEND_URL,
credentials: true
}));
# 3. Sprawdź, czy działa na poprawnych adresach URL
azd show
🌍 Problemy z zarządzaniem środowiskiem
Problem: Problemy ze zmianą środowiska
Objawy:
- Używane jest niewłaściwe środowisko
- Konfiguracja nie zmienia się prawidłowo
Rozwiązania:
# 1. Wyświetl wszystkie środowiska
azd env list
# 2. Wyraźnie wybierz środowisko
azd env select production
# 3. Sprawdź bieżące środowisko
azd env list
# 4. Utwórz nowe środowisko, jeśli obecne jest uszkodzone
azd env new production-new
azd env select production-new
Problem: Uszkodzenie środowiska
Objawy:
- Środowisko pokazuje nieprawidłowy stan
- Zasoby nie odpowiadają konfiguracji
Rozwiązania:
# 1. Odśwież stan środowiska
azd env refresh
# 2. Zresetuj konfigurację środowiska
azd env new production-reset
# Skopiuj wymagane zmienne środowiskowe
azd env set DATABASE_URL "your-value"
# 3. Zaimportuj istniejące zasoby (jeśli to możliwe)
# Ręcznie zaktualizuj plik .azure/production/config.json o identyfikatory zasobów
🔍 Problemy z wydajnością
Problem: Powolne wdrożenia
Objawy:
- Wdrożenia trwają zbyt długo
- Przekroczenia czasów podczas wdrożenia
Rozwiązania:
# 1. Wdrażaj konkretne usługi dla szybszej iteracji
azd deploy --service web
azd deploy --service api
# 2. Używaj wdrożenia tylko kodu, gdy infrastruktura nie uległa zmianie
azd deploy # Szybsze niż azd up
# 3. Optymalizuj proces budowy
# W package.json:
"scripts": {
"build": "webpack --mode=production --optimize-minimize"
}
# 4. Sprawdź lokalizacje zasobów (używaj tego samego regionu)
azd config set defaults.location eastus2
Problem: Problemy z wydajnością aplikacji
Objawy:
- Wolne czasy odpowiedzi
- Wysokie zużycie zasobów
Rozwiązania:
# 1. Zwiększ zasoby
# Zaktualizuj SKU w main.parameters.json:
"appServiceSku": {
"value": "S2" // Scale up from B1
}
# 2. Włącz monitorowanie Application Insights
azd monitor --overview
# 3. Sprawdź logi aplikacji w Azure
az webapp log tail --name myapp --resource-group myrg
# lub dla Container Apps:
az containerapp logs show --name myapp --resource-group myrg --follow
# 4. Wdróż buforowanie
# Dodaj pamięć podręczną Redis do swojej infrastruktury
🛠️ Narzędzia i polecenia do rozwiązywania problemów
Polecenia debugujące
# Kompleksowe debugowanie
export AZD_DEBUG=true
azd up --debug 2>&1 | tee debug.log
# Sprawdź wersję azd
azd version
# Wyświetl bieżącą konfigurację
azd config show
# Przetestuj łączność
curl -v https://myapp.azurewebsites.net/health
Analiza logów
# Logi aplikacji za pomocą Azure CLI
az webapp log tail --name myapp --resource-group myrg
# Monitoruj aplikację za pomocą azd
azd monitor --logs
azd monitor --live
# Logi zasobów Azure
az monitor activity-log list --resource-group myrg --start-time 2024-01-01 --max-events 50
# Logi kontenerów (dla Container Apps)
az containerapp logs show --name myapp --resource-group myrg --follow
Badanie zasobów
# Wypisz wszystkie zasoby
az resource list --resource-group myrg -o table
# Sprawdź status zasobu
az webapp show --name myapp --resource-group myrg --query state
# Diagnostyka sieci
az network watcher test-connectivity --source-resource myvm --dest-address myapp.azurewebsites.net --dest-port 443
🆘 Uzyskiwanie dodatkowej pomocy
Kiedy eskalować
- Problemy z uwierzytelnianiem utrzymują się po wypróbowaniu wszystkich rozwiązań
- Problemy z infrastrukturą usług Azure
- Problemy z rozliczeniami lub subskrypcją
- Obawy lub incydenty związane z bezpieczeństwem
Kanały wsparcia
# 1. Sprawdź stan usługi Azure
az rest --method get --uri "https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01"
# 2. Utwórz zgłoszenie do pomocy technicznej Azure
# Przejdź do: https://portal.azure.com -> Pomoc + wsparcie
# 3. Źródła społeczności
# - Stack Overflow: tag azure-developer-cli
# - GitHub Issues: https://github.com/Azure/azure-dev/issues
# - Microsoft Q&A: https://learn.microsoft.com/en-us/answers/
Informacje do zebrania
Przed kontaktem z pomocą techniczną zbierz:
- wynik
azd version - wynik
azd config show - wynik
azd show(aktualny status wdrożenia) - komunikaty o błędach (pełny tekst)
- kroki do reprodukcji problemu
- szczegóły środowiska (
azd env get-values) - oś czasu wystąpienia problemu
Skrypt zbierania logów
#!/bin/bash
# collect-debug-info.sh
echo "Collecting azd debug information..."
mkdir -p debug-logs
echo "System Information:" > debug-logs/system-info.txt
azd version >> debug-logs/system-info.txt
az --version >> debug-logs/system-info.txt
echo "Configuration:" > debug-logs/config.txt
azd config show >> debug-logs/config.txt
azd env list >> debug-logs/config.txt
azd env get-values >> debug-logs/config.txt
echo "Current deployment status:" > debug-logs/status.txt
azd show >> debug-logs/status.txt
echo "Debug information collected in debug-logs/"
📊 Zapobieganie problemom
Lista kontrolna przed wdrożeniem
# 1. Zweryfikuj uwierzytelnianie
az account show
# 2. Sprawdź limity i kwoty
az vm list-usage --location eastus2
# 3. Zweryfikuj szablony
az bicep build --file infra/main.bicep
# 4. Najpierw przetestuj lokalnie
npm run build
npm run test
# 5. Użyj wdrożeń próbnych (dry-run)
azd provision --preview
Konfiguracja monitorowania
# Włącz Application Insights
# Dodaj do main.bicep:
resource appInsights 'Microsoft.Insights/components@2020-02-02' = {
// ... configuration
}
# Skonfiguruj alerty
az monitor metrics alert create \
--name "High CPU Usage" \
--resource-group myrg \
--scopes /subscriptions/{id}/resourceGroups/myrg/providers/Microsoft.Web/sites/myapp \
--condition "avg Percentage CPU > 80"
Regularna konserwacja
# Cotygodniowe kontrole zdrowia
./scripts/health-check.sh
# Miesięczny przegląd kosztów
az consumption usage list --billing-period-name 202401
# kwartalny przegląd bezpieczeństwa
az security assessment list --resource-group myrg
Powiązane zasoby
- Przewodnik po debugowaniu - Zaawansowane techniki debugowania
- Provisionowanie zasobów - Rozwiązywanie problemów z infrastrukturą
- Planowanie pojemności - Wskazówki dotyczące planowania zasobów
- Wybór SKU - Rekomendacje dotyczące poziomów usług
Wskazówka: Zachowaj ten przewodnik w zakładkach i odwołuj się do niego za każdym razem, gdy napotkasz problemy. Większość problemów była już wcześniej zgłaszana i posiada ustalone rozwiązania!
Nawigacja
- Poprzednia lekcja: Provisionowanie zasobów
- Następna lekcja: Przewodnik po debugowaniu
Zastrzeżenie:
Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy starań, aby tłumaczenie było wierne, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego rodzimym języku należy uważać za źródło autorytatywne. W przypadku istotnych informacji zaleca się skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.