Hata ayıklama günlüğüne kaydetmeyi etkinleştirme

Dağıtım hatasını gidermek için hata ayıklama günlüğünü etkinleştirerek daha fazla bilgi edinebilirsiniz. Hata ayıklama günlüğü, Bicep dosyaları veya Azure Resource Manager şablonları (ARM şablonları) ile yapılan dağıtımlarda çalışır. Bir sorunun nedenini öğrenmek için dağıtımın isteği ve yanıtı hakkında veri alabilirsiniz.

Uyarı

Hata ayıklama günlüğü parolalar veya listKeys işlemler gibi gizli dizileri kullanıma açabilir. Hata ayıklama günlüğünü yalnızca dağıtım hatasını gidermeniz gerektiğinde etkinleştirin. Hata ayıklamayı bitirdiğinizde, hata ayıklama dağıtım geçmişini kaldırmanız gerekir.

Hata ayıklama günlüğünü ayarlama

ve özelliklerini sorun giderme için dağıtım bilgileriyle dolduran requestresponse hata ayıklama günlüğünü etkinleştirmek için Azure PowerShell kullanın. Azure CLI kullanılarak hata ayıklama günlüğü etkinleştirilemiyor.

Hata ayıklama günlüğü yalnızca ana ARM şablonu veya Bicep dosyası için etkinleştirilir. İç içe ARM şablonları veya Bicep modülleri kullanıyorsanız bkz. İç içe yerleştirilmiş şablonda hata ayıklama.

Kaynak grubu dağıtımı için New-AzResourceGroupDeployment kullanın ve parametresini DeploymentDebugLogLevel , ResponseContentveya RequestContentolarak Allayarlayın.

Hata ayıklama günlüğü etkinleştirildiğinde, dağıtım işlemleri hakkında bilgi almak için gibi Get-AzResourceGroupDeploymentOperation komutları kullandığınızda parolalar veya listKeys işlemler gibi gizli dizilerin günlüğe kaydedilebileceği ve görüntülenebileceğine ilişkin bir uyarı görüntülenir.

New-AzResourceGroupDeployment `
  -Name exampledeployment `
  -ResourceGroupName examplegroup `
  -TemplateFile main.bicep `
  -DeploymentDebugLogLevel All

Dağıtımın çıktısı hata ayıklama günlüğü düzeyini gösterir.

DeploymentDebugLogLevel : RequestContent, ResponseContent

DeploymentDebugLogLevel parametresi diğer dağıtım kapsamları için kullanılabilir: abonelik, yönetim grubu ve kiracı.

Hata ayıklama bilgilerini alma

Hata ayıklama günlüğü etkinleştirildikten sonra dağıtım işlemleri hakkında daha fazla bilgi edinebilirsiniz. Dağıtım işlemleri için Azure PowerShell cmdlet'leri ve response özelliklerinin çıkışını request vermez. Bu özelliklerden bilgi almak için Azure CLI'yi kullanmanız gerekir.

Dağıtım komutundan hata ayıklama günlüğünü etkinleştirmezseniz, yine de dağıtım işlemleri bilgilerini alabilirsiniz. Durum kodunu, durum iletisini ve sağlama durumunu almak için Azure PowerShell veya Azure CLI kullanın.

Kaynak grubu dağıtımında, dağıtım işlemlerini almak için Get-AzResourceGroupDeploymentOperation komutunu kullanın.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Çıkışı filtrelemek için , StatusMessageveya ProvisioningState gibi StatusCodebir özellik belirtebilirsiniz.

(Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup).StatusCode

Daha fazla bilgi için dağıtım işlemi kapsamları belgelerine bakın: abonelik, yönetim grubu ve kiracı.

İç içe şablonda hata ayıklama

Ana ARM şablonunun ve iç içe yerleştirilmiş şablonların kendi dağıtım adı ve dağıtım geçmişi vardır. Ana Bicep dosyası ve modülü de ayrı bir dağıtım adı ve dağıtım geçmişi kullanır.

ARM şablonu

İç içe arm şablonunun hata ayıklama bilgilerini günlüğe kaydetmek için microsoft.resources/deploymentsdebugSetting özelliğini kullanın.

Aşağıdaki örnekte, dağıtımın isteğini ve yanıtını debugSetting günlüğe kaydetmek için ile iç içe yerleştirilmiş bir şablon gösterilmektedir.

"resources": [
  {
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "2021-04-01",
    "name": "nestedTemplateDebug",
    "properties": {
      "mode": "Incremental",
      "template": {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
          {
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2022-05-01",
            "name": "[variables('storageAccountName')]",
            "location": "[parameters('location')]",
            "sku": {
              "name": "[parameters('storageAccountType')]"
            },
            "kind": "StorageV2"
          }
        ]
      },
      "debugSetting": {
        "detailLevel": "requestContent, responseContent"
      }
    }
  }
],

Ana ARM şablonunun ve iç içe yerleştirilmiş şablonların kendi dağıtım adı ve dağıtım geçmişi vardır. ve response özelliklerinin sorun giderme bilgileri içermesini istiyorsanızrequest, aşağıdaki dağıtım senaryolarına dikkat edin:

  • request ve response özellikleri, dağıtım komutuyla etkinleştirilmediğinde DeploymentDebugLogLevel ana şablon ve iç içe şablon için değerler içerirnull.
  • Dağıtım komutu etkinleştirildiğinde DeploymentDebugLogLevelrequest ve response özellikleri yalnızca ana şablon için bilgi içerir. İç içe yerleştirilmiş şablonun özellikleri değerler içerir null .
  • İç içe yerleştirilmiş bir şablon ve debugSetting dağıtım komutunu DeploymentDebugLogLevel kullandığında, yalnızca iç içe yerleştirilmiş şablon dağıtımının request ve response özellikleri için değerleri vardır. Ana şablonun özellikleri değerler içerir null .
  • Ana şablonun request ve iç içe yerleştirilmiş şablonun ve response değerini almak için dağıtım komutunda belirtin DeploymentDebugLogLevel ve iç içe şablonda kullanın debugSetting .

Bicep dosyası

Bicep dosyalarına yönelik öneri, ile Microsoft.Resources/deploymentsiç içe yerleştirilmiş şablonlar yerine modüllerin kullanılmasıdır. Durum iletisi, durum kodu ve sağlama durumu, dağıtım sorunlarını gidermek için kullanabileceğiniz ana Bicep dosyası ve modülüne ilişkin bilgileri içerir.

dağıtım komutundan etkinleştirirseniz DeploymentDebugLogLevel ve requestresponse özellikleri yalnızca ana Bicep dosyasının dağıtımına ilişkin bilgileri içerir.

Hata ayıklama dağıtım geçmişini kaldırma

Hata ayıklamayı bitirdiğinizde, erişimi olan herkesin günlüğe kaydedilmiş olabilecek hassas bilgileri görmesini önlemek için dağıtım geçmişini kaldırmanız gerekir. Hata ayıklama sırasında kullandığınız her dağıtım adı için komutunu çalıştırarak dağıtım geçmişini kaldırın.

Kaynak grubu dağıtımının dağıtım geçmişini kaldırmak için Remove-AzResourceGroupDeployment komutunu kullanın.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Komut başarılı olduğunda döndürür True .

Dağıtım geçmişi hakkında daha fazla bilgi için dağıtım kapsamları belgelerine bakın: abonelik, yönetim grubu ve kiracı.

Sonraki adımlar