Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten szybki start opisuje, jak rozwiązywać błędy wdrażania plików Bicep. Utworzysz plik z błędami i dowiesz się, jak naprawić błędy.
Istnieją trzy rodzaje błędów związanych z wdrażaniem:
- Błędy walidacji występują przed rozpoczęciem wdrażania i są spowodowane błędami składni w pliku. Edytor kodu, taki jak Visual Studio Code, może identyfikować te błędy.
- Błędy weryfikacji wstępnej występują, gdy polecenie wdrożenia jest uruchamiane, ale zasoby nie są wdrażane. Te błędy można znaleźć bez uruchamiania wdrożenia. Jeśli na przykład wartość parametru jest niepoprawna, zostanie znaleziony błąd podczas weryfikacji wstępnej.
- Błędy wdrażania występują podczas procesu wdrażania i można je znaleźć tylko przez ocenę postępu wdrożenia w środowisku platformy Azure.
Wszystkie rodzaje błędów zwracają kod błędu, którego należy użyć do rozwiązania problemów z wdrożeniem. Błędy weryfikacji i weryfikacji wstępnej są wyświetlane w dzienniku aktywności, ale nie pojawiają się w historii wdrażania. Plik Bicep z błędami składni nie jest kompilowany do formatu JSON i nie jest pokazywany w dzienniku aktywności.
Wymagania wstępne
Do ukończenia tego przewodnika Szybki start potrzebne są następujące elementy:
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Program Visual Studio Code z najnowszym rozszerzeniem Bicep.
- Najnowsza wersja programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure.
Tworzenie pliku Bicep z błędami
Skopiuj następujący plik Bicep i zapisz go lokalnie. Ten plik służy do rozwiązywania problemów z błędem walidacji, błędem wstępnym i błędem wdrożenia. W tym przewodniku Szybki start założono, że plik nazywa się troubleshoot.bicep, ale możesz nadać mu dowolną nazwę.
@description('SKU for the storage account')
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
@description('Prefix for storage name.')
param prefixName string
var storageAccountName = '${prefixName}${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
name: storageAccountName
location: resourceGroup().location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
resource existingVNet 'Microsoft.Network/virtualNetworks@2021-03-01' existing = {
name: 'doesnotexist'
}
output storageAccountName string = storageAccountName
output vnetResult object = existingVNet
Naprawianie błędu sprawdzania poprawności
Otwórz plik w programie Visual Studio Code. Zauważysz, że program Visual Studio Code identyfikuje błąd składniowy. Pierwsza deklaracja parametru jest oznaczona czerwonymi falistymi liniami, aby wskazać błąd.
Wiersze oznaczone błędem to:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
Po najechaniu wskaźnikiem myszy na parameter zostanie wyświetlony komunikat o błędzie.
Komunikat stwierdza: ten typ deklaracji nie jest rozpoznawany. Określ parametr, zmienną, zasób lub deklarację wyjściową. Jeśli spróbujesz wdrożyć ten plik, otrzymasz ten sam komunikat o błędzie z polecenia wdrożenia.
Jeśli przyjrzysz się dokumentacji deklaracji parametru, zobaczysz, że słowo kluczowe to w rzeczywistości param. Po zmianie tej składni błąd walidacji zniknie. Dekorator @allowed został również oznaczony jako błąd, ale ten błąd został również rozwiązany przez zmianę deklaracji parametru. Dekorator został oznaczony jako błąd, ponieważ oczekuje deklaracji parametru po dekoratorze. Ten warunek nie był spełniony, gdy deklaracja była nieprawidłowa.
Stała linia to:
param storageAccountType string = 'Standard_LRS'
Naprawianie błędu wstępnego
Po naprawieniu błędu sprawdzania poprawności nadszedł czas na wdrożenie pliku. Podasz nieprawidłową wartość parametru, aby zobaczyć błąd weryfikacji wstępnej.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=longNamewith!!Charactersthatarenotallowed
Usługa Azure Resource Manager określa, że nazwa konta magazynu zawiera niedozwolone znaki. Nie podejmuje próby wdrożenia.
Zostanie wyświetlony komunikat o błędzie wskazujący, że weryfikacja wstępna nie powiodła się. Zostanie również wyświetlony komunikat informujący, że nazwa konta magazynu musi mieć długość od 3 do 24 znaków oraz używać wyłącznie cyfr i małych liter. Podany prefiks nie spełnia tego wymagania. Aby uzyskać więcej informacji na temat tego kodu błędu, zobacz Usuwanie błędów związanych z nazwami kont magazynowych.
Ponieważ błąd został wykryty podczas kontroli wstępnej, w historii nie ma żadnego wdrożenia.
Jednak wdrożenie, które zakończyło się niepowodzeniem, istnieje w dzienniku aktywności.
Możesz otworzyć szczegóły wpisu dziennika, aby wyświetlić komunikat o błędzie.
Naprawianie błędu wdrażania
Ponownie wdrożysz plik i podasz dozwoloną wartość parametru prefiksu nazwy.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=stg
Wdrożenie rozpoczyna się, ale kończy się niepowodzeniem z komunikatem, że sieć wirtualna nie została znaleziona. Zazwyczaj ten błąd można naprawić, zmieniając odwołanie do zasobu. W tej szybkiej instrukcji usuniesz odwołanie. Aby uzyskać więcej informacji na temat tego kodu błędu, zobacz Rozwiązywanie błędów nieznalezionych zasobów.
Zwróć uwagę, że w portalu wdrożenie jest wyświetlane w historii.
Możesz otworzyć wpis w historii wdrażania, aby uzyskać szczegółowe informacje o błędzie. Błąd istnieje również w dzienniku aktywności.
Plik Bicep próbuje odwołać się do sieci wirtualnej, która nie istnieje w grupie zasobów. Usuń odwołanie do istniejącej sieci wirtualnej, aby naprawić błąd.
@description('SKU for the storage account')
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
@description('Prefix for storage name.')
param prefixName string
var storageAccountName = '${prefixName}${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
name: storageAccountName
location: resourceGroup().location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = storageAccountName
Możesz wdrożyć ten plik Bicep bez żadnych błędów.
Uprzątnij zasoby
Gdy zasoby platformy Azure nie są już potrzebne, usuń grupę zasobów. Grupę zasobów można usunąć z usługi Cloud Shell lub portalu.
az group delete --name troubleshootRG
Aby usunąć grupę zasobów z portalu, wykonaj następujące kroki:
- W witrynie Azure Portal wprowadź ciąg Grupy zasobów w polu wyszukiwania.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Wybierz nazwę grupy zasobów.
- Wybierz pozycję Usuń grupę zasobów.
- Aby potwierdzić usunięcie, wprowadź nazwę grupy zasobów i wybierz pozycję Usuń.
Dalsze kroki
W tym szybkim kursie rozpoczęcia nauczyłeś się, jak rozwiązywać problemy z błędami wdrażania plików Bicep.