Hızlı Başlangıç: Bicep dosya dağıtımlarıyla ilgili sorunları giderme

Bu hızlı başlangıçta Bicep dosya dağıtım hatalarını giderme işlemi açıklanmaktadır. Hata içeren bir dosya oluşturacak ve hataları düzeltmeyi öğreneceksiniz.

Bir dağıtımla ilgili üçi tür hata vardır:

  • Doğrulama hataları dağıtım başlamadan önce oluşur ve dosyanızdaki söz dizimi hatalarının neden olduğu durumlardır. Visual Studio Code gibi bir kod düzenleyicisi bu hataları belirleyebilir.
  • Dağıtım komutu çalıştırıldığında ancak kaynaklar dağıtılmadığında denetim öncesi doğrulama hataları oluşur. Bu hatalar dağıtım başlatılmadan bulunur. Örneğin, bir parametre değeri yanlışsa, hata denetim öncesi doğrulamada bulunur.
  • Dağıtım hataları dağıtım işlemi sırasında oluşur ve yalnızca Azure ortamınızdaki dağıtımın ilerleme durumu değerlendirilerek 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 denetim öncesi hataları etkinlik günlüğünde gösterilir ancak dağıtım geçmişinizde görünmez. Söz dizimi hataları içeren bir Bicep dosyası JSON'da derlenemez ve etkinlik günlüğünde gösterilmez.

Önkoşullar

Bu hızlı başlangıcı tamamlamak için aşağıdaki öğelere ihtiyacınız vardır:

Hatalarla bicep dosyası oluşturma

Aşağıdaki Bicep dosyasını kopyalayın ve yerel olarak kaydedin. Doğrulama hatası, denetim öncesi hatası ve dağıtım hatası sorunlarını gidermek için bu dosyayı kullanacaksınız. Bu hızlı başlangıçta troubleshoot.bicep adlı dosyayı adlandırdığınız varsayılır, ancak istediğiniz adı verebilirsiniz.

@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 hatalarını düzeltme

dosyayı Visual Studio Code açın. Visual Studio Code bir söz dizimi hatası tanımladığını fark edeceksiniz. İlk parametre bildirimi, hata göstermek için kırmızı dalgalı çizgiler ile işaretlenir.

Bicep dosyasında söz dizimi hatasını vurgulayan kırmızı dalgalı Visual Studio Code ekran görüntüsü.

Hatayla işaretlenmiş satırlar şunlardır:

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
  'Premium_LRS'
])
parameter storageAccountType string = 'Standard_LRS'

üzerine parametergeldiğinizde bir hata iletisi görürsünüz.

Bicep dosyasında söz dizimi hatasının üzerine gelindiğinde Visual Studio Code görüntülenen ayrıntılı hata iletisinin ekran görüntüsü.

İletide şu ifadeler yer alır: Bu bildirim türü tanınmıyor. Parametre, değişken, kaynak veya çıkış bildirimi belirtin. Bu dosyayı dağıtmaya çalışırsanız dağıtım komutundan aynı hata iletisini alırsınız.

Parametre bildiriminin belgelerine bakarsanız anahtar sözcüğün aslında paramolduğunu görürsünüz. Söz dizimini değiştirdiğinizde doğrulama hatası kaybolur. @allowed Dekoratör de hata olarak işaretlendi, ancak bu hata parametre bildirimi değiştirilerek de çözülür. Dekoratör, dekoratörden sonra bir parametre bildirimi beklediğinden hata olarak işaretlendi. Bildirim yanlış olduğunda bu koşul doğru değildi.

Sabit satır:

param storageAccountType string = 'Standard_LRS'

Denetim öncesi hata düzeltmesi

Doğrulama hatasını düzelttığınıza göre artık dosyayı dağıtmanın zamanı geldi. Ancak, denetim ö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 verilmeyen karakterler içerdiğini belirler. Dağıtımı denemez.

Denetim öncesi doğrulamanın başarısız olduğunu belirten bir hata iletisi görürsünüz. Ayrıca depolama hesabı adının 3 ila 24 karakter uzunluğunda olması gerektiğini ve yalnızca sayıları ve küçük harfleri kullanması gerektiğini belirten bir ileti alırsınız. Sağladığınız ön ek bu gereksinimi karşılamadı. Bu hata kodu hakkında daha fazla bilgi için bkz. Depolama hesabı adlarıyla ilgili hataları düzeltme.

Hata denetim öncesi sırasında yakalandığı için, geçmişte hiçbir dağıtım yoktur.

Bicep dosyası için dağıtım yapılmadığını gösteren Azure portalının dağıtım geçmişi bölümünün ekran görüntüsü.

Ancak başarısız olan dağıtım Etkinlik Günlüğü'nde mevcuttur.

Bicep dosya dağıtımı için denetim öncesi doğrulama hatası görüntüleyen Azure portalının etkinlik günlüğünün ekran görüntüsü.

Hata iletisini görmek için günlük girdisinin ayrıntılarını açabilirsiniz.

Dağıtım hataları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şlatılır ancak sanal ağın bulunamadığına ilişkin bir iletiyle başarısız olur. Genellikle, kaynağa başvuruyu değiştirerek bu hatayı düzeltirsiniz. Bu hızlı başlangıçta, başvuruyu sileceksiniz. Bu hata kodu hakkında daha fazla bilgi için bkz . Kaynak bulunamadı hatalarını çözme.

Portalda dağıtımın geçmişte göründüğüne dikkat edin.

Bicep dosyası için başarısız dağıtımı gösteren Azure portalının dağıtım geçmişi bölümünün ekran görüntüsü.

Hatayla ilgili ayrıntıları almak için dağıtım geçmişinde girdiyi açabilirsiniz. Hata etkinlik günlüğünde de var.

Bicep dosyası, kaynak grubunuzda mevcut olmayan bir sanal ağa başvurmaya çalışır. Hatayı düzeltmek için mevcut sanal ağa başvuruyu silin.

@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

Bu Bicep dosyasını herhangi bir hata olmadan dağıtabilirsiniz.

Kaynakları temizleme

Azure kaynaklarına artık ihtiyaç kalmadığında kaynak grubunu silin. Kaynak grubunu Cloud Shell'den veya portaldan silebilirsiniz.

az group delete --name troubleshootRG

Kaynak grubunu portaldan silmek için şu adımları izleyin:

  1. Azure portalında, arama kutusuna Kaynak grupları yazın.
  2. Ada göre filtrele alanına kaynak grubu adını girin.
  3. Kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. 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 dosya dağıtım hatalarını gidermeyi öğrendiniz.