Hata ayıklama kaydını etkinleştir.

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 bir 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 bilgileri açığa çıkarabilir. 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ü ayarla

Azure PowerShell'i kullanarak request ve response özelliklerini dağıtım bilgileriyle dolduran hata ayıklama günlüğünü etkinleştirin. 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 şablonda hata ayıklama.

Kaynak grubu dağıtımı için New-AzResourceGroupDeployment kullanın ve parametresini DeploymentDebugLogLevel , Allveya ResponseContentolarak RequestContentayarlayın.

Hata ayıklama günlüğü etkinleştirildiğinde, dağıtım işlemleri hakkında bilgi almak gibi komutları listKeys kullandığınızda parolalar veya Get-AzResourceGroupDeploymentOperation 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üğünün seviyesini 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. Azure PowerShell cmdlet'leri, dağıtım işlemleri için request ve response özelliklerinin çıkışını vermez. Bu özelliklerden bilgi almak için Azure CLI 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.

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

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Çıktıyı filtrelemek için , StatusCodeveya StatusMessage gibi ProvisioningStatebir ö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 şablonların kendi dağıtım adı ve dağıtım geçmişi vardır. Ana Bicep dosyası ve modülü ayrıca 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 örnek, dağıtımın isteğini ve yanıtını günlüğe kaydetmek için iç içe bir şablonu debugSetting ile göstermektedir.

"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 şablonların kendi dağıtım adı ve dağıtım geçmişi vardır. request ve response özelliklerinin sorun giderme bilgilerini içermesini istiyorsanız, aşağıdaki dağıtım senaryolarına dikkat edin:

  • request ve response özellikleri, null dağıtım komutuyla etkinleştirilmediğinde ana şablon ve iç içe geçmiş şablon için DeploymentDebugLogLevel değerler içerir.
  • dağıtım komutu etkinleştirildiğinde DeploymentDebugLogLevelrequest ve response özellikleri yalnızca ana şablon için bilgi içerir. İç içe şablonun özellikleri null değerler içerir.
  • İç içe yerleştirilmiş bir şablon debugSetting kullandığında ve dağıtım komutu DeploymentDebugLogLevel içermediğinde, 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 şablon ve iç içe yerleştirilmiş şablon için request ve response değerlerini almak amacıyla dağıtım komutunda DeploymentDebugLogLevel belirtin ve iç içe şablonda debugSetting kullanın.

Bicep dosyası

Bicep dosyaları için öneri, iç içe şablonlar yerine modülleri ile Microsoft.Resources/deployments kullanmaktı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ır

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 True döndürür.

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

Sonraki Adımlar