Hızlı Başlangıç: Bicep dosya dağıtım sorunlarını giderme
Bu hızlı başlangıçta Bicep dosyası dağıtım hatalarının nasıl giderilir? Hatalara sahip bir dosya oluşturarak hataları düzeltmeyi öğrenebilirsiniz.
Dağıtımla ilgili üç tür hata vardır:
- Doğrulama hataları dağıtım başlamadan önce oluşur ve dosyanız söz dizimi hatalarına neden olur. Düzenleyiciniz bu hataları tanımlayabilir.
- Bir dağıtım komutu çalıştırıldığında ancak kaynaklar dağıtıldığında kontrol öncesi doğrulama hataları oluşur. Bu hatalar dağıtımı başlatmadan bulunur. Örneğin, parametre değeri yanlışsa, hata kontrol öncesi doğrulamada bulunur.
- Dağıtım hataları dağıtım işlemi sırasında oluşur ve yalnızca dağıtımın ilerleme durumu değerlendirerek bulunabilir.
Tüm hata türleri, dağıtım sorunlarını gidermek için kullanabileceğiniz bir hata kodu döndürür. Doğrulama ve kontrol öncesi hataları etkinlik günlüğünde gösterilir ancak dağıtım geçmişinize gösterilmez. Söz dizimi hataları olan bir Bicep dosyası JSON'a derlenmiş değildir ve etkinlik günlüğünde gösterilmez.
Önkoşullar
Bu hızlı başlangıç işlemini tamamlamak için aşağıdaki öğelere ihtiyacınız vardır:
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Visual Studio Code Bicep uzantısıyla birlikte.
- Azure PowerShell veya Azure CLI'nin en son sürümü.
Hatalarla bicep dosyası oluşturma
Aşağıdaki Bicep dosyasını kopyalayın ve yerel olarak kaydedin. Doğrulama hatası, kontrol öncesi hatası ve dağıtım hatası sorunlarını gidermek için bu dosyayı kullanmalısınız. Bu hızlı başlangıçta, dosyaya troubleshoot.bicep adını verdiyebilirsiniz ancak herhangi bir ad veebilirsiniz.
@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
Doğrulama hatasını düzeltme
Dosyayı dosyanın içinde Visual Studio Code. Bir söz dizimi hatası Visual Studio Code olduğunu fark vardır. İlk parametre bildirimi, bir hatayı belirtmek için kırmızı geçişlerle işaretlenir.
Hatayla işaretlenmiş satırlar:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'
üzerine parameter gelindiğinde bir hata iletisiyle karşılaştınız.
İleti şu şekildedir: "Bu bildirim türü tanınmıyor. Bir parametre, değişken, kaynak veya çıkış bildirimi belirtin." Bu dosyayı dağıtmayı denemeniz, dağıtım komutundan aynı hata iletisini alırsınız.
Parametre bildiriminin belgelerine bakarsanızanahtar sözcüğünün aslında olduğunu param görebilirsiniz. Bu söz dizimlerini değiştirmiyorsanız doğrulama hatası kaybolur. Dekoratör @allowed ayrıca bir hata olarak işaretlenmiştir, ancak bu hata parametre bildirimi değiştirerek de çözülür. Dekoratör, dekoratörden sonra parametre bildirimi beklediğiniz için hata olarak işaretlendi. Bildirim yanlış olduğunda bu koşul doğru değildi.
Sabit çizgi şöyledir:
param storageAccountType string = 'Standard_LRS'
Kontrol öncesi hatasını düzeltme
Doğrulama hatasını düzeltebilirsiniz. Şimdi dosyayı dağıtmanın zamanı geldi. Ancak, bir kontrol öncesi hatasını görmek için hatalı bir parametre değeri sağlayacaksınız.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=longNamewith!!Charactersthatarenotallowed
Azure Resource Manager depolama hesabının adının izin verilmiyor karakterler içerdiğini belirler. Dağıtımı denemez.
Kontrol öncesi doğrulamanın başarısız olduğunu belirten bir hata iletisi görüyorsunuz. Ayrıca depolama hesabı adının 3 ila 24 karakter uzunluğunda olması gerektiğini ve yalnızca sayı ve küçük harf kullan gerektiğini söyleyen bir ileti alırsınız. Sağlanan ön ek bu gereksinimi karşılamadı. Bu hata kodu hakkında daha fazla bilgi için bkz. Depolama hesabı adlarına ilişkin hataları düzeltme.
Hata kontrol öncesi sırasında yaka olduğundan, tarihte hiçbir dağıtım yoktur.
Ancak başarısız dağıtım Etkinlik Günlüğü'ne kaydedilir.
Hata iletisini görmek için günlük girişinin ayrıntılarını açabilirsiniz.
Dağıtım hatasını düzeltme
Dosyayı yeniden dağıtacak ve ad ön eki parametresi için izin verilen bir değer sağlayacaksınız.
az group create --name troubleshootRG --location westus
az deployment group create \
--resource-group troubleshootRG \
--template-file troubleshoot.bicep \
--parameters prefixName=stg
Dağıtım başlar ancak sanal ağın bulunamadığına bir iletiyle başarısız olur. Genellikle, bu hatayı kaynağa başvuru değiştirerek düzeltebilirsiniz. Bu hızlı başlangıçta başvuru silinecek. Bu hata kodu hakkında daha fazla bilgi için bkz. Kaynak bulunamadı hatalarını çözümleme.
Portalda dağıtımın tarihte göründüğüne dikkat edin.
Hatayla ilgili ayrıntıları almak için dağıtım geçmişinde girdiyi açabilirsiniz. Hata etkinlik günlüğünde de mevcuttur.
Bicep dosyası, kaynak grubu içinde mevcut olmayan bir sanal ağa başvurur. Hatayı düzeltmek için mevcut sanal ağa başvuru silin.
@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: {}
}
output storageAccountName string = storageAccountName
Bu Bicep dosyasını herhangi bir hata olmadan dağıtabilirsiniz.
Kaynakları temizleme
Azure kaynaklarına artık ihtiyaç kalmadan kaynak grubunu silin. Kaynak grubunu portaldan veya Cloud Shell silebilirsiniz.
az group delete --name troubleshootRG
Kaynak grubunu portaldan silmek için şu adımları izleyin:
- Giriş Azure portal arama kutusuna Kaynak grupları yazın.
- Ad alanına göre filtrele alanına kaynak grubu adını girin.
- Kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- Silme işlemini onaylamak için kaynak grubu adını girin ve Sil'i seçin.
Sonraki adımlar
Bu hızlı başlangıçta, Bicep dosyası dağıtım hatalarını gidermeyi öğrendiniz.