Mengaktifkan pengelogan debug

Untuk memecahkan masalah kesalahan penyebaran, Anda dapat mengaktifkan pengelogan debug untuk mendapatkan informasi selengkapnya. Pengelogan debug berfungsi untuk penyebaran dengan file Bicep atau templat Azure Resource Manager (templat ARM). Anda bisa mendapatkan data tentang permintaan dan respons penyebaran untuk mempelajari penyebab masalah.

Peringatan

Pengelogan debug dapat mengekspos rahasia seperti kata sandi atau listKeys operasi. Hanya aktifkan pengelogan debug saat Anda perlu memecahkan masalah tentang kesalahan penyebaran. Setelah selesai men-debug, Anda harus menghapus riwayat penyebaran debug.

Menyiapkan pengelogan debug

Gunakan Azure PowerShell untuk mengaktifkan pengelogan debug yang mengisi request properti dan response dengan informasi penyebaran untuk pemecahan masalah. Pengelogan debug tidak dapat diaktifkan menggunakan Azure CLI.

Pengelogan debug hanya diaktifkan untuk templat ARM utama atau file Bicep. Jika Anda menggunakan templat ARM berlapis atau modul Bicep, lihat Men-debug templat berlapis.

Untuk penyebaran grup sumber daya, gunakan New-AzResourceGroupDeployment dan atur DeploymentDebugLogLevel parameter ke All, , ResponseContentatau RequestContent.

Saat pengelogan debug diaktifkan, peringatan ditampilkan bahwa rahasia seperti kata sandi atau listKeys operasi dapat dicatat dan ditampilkan saat Anda menggunakan perintah seperti Get-AzResourceGroupDeploymentOperation untuk mendapatkan informasi tentang operasi penyebaran.

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

Output penyebaran menunjukkan tingkat pengelogan debug.

DeploymentDebugLogLevel : RequestContent, ResponseContent

Parameter DeploymentDebugLogLevel tersedia untuk cakupan penyebaran lainnya: langganan, grup manajemen, dan penyewa.

Mendapatkan informasi debug

Setelah pengelogan debug diaktifkan, Anda bisa mendapatkan informasi selengkapnya tentang operasi penyebaran. Cmdlet Azure PowerShell untuk operasi penyebaran tidak menghasilkan request properti dan response . Anda perlu menggunakan Azure CLI untuk mendapatkan informasi dari properti tersebut.

Jika Anda tidak mengaktifkan pengelogan debug dari perintah penyebaran, Anda masih bisa mendapatkan informasi operasi penyebaran. Gunakan Azure PowerShell atau Azure CLI untuk mendapatkan kode status, pesan status, dan status provisi.

Untuk penyebaran grup sumber daya, gunakan Get-AzResourceGroupDeploymentOperation untuk mendapatkan operasi penyebaran.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

Anda dapat menentukan properti, seperti StatusCode, StatusMessage, atau ProvisioningState untuk memfilter output.

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

Untuk informasi selengkapnya, lihat dokumentasi untuk cakupan operasi penyebaran: langganan, grup manajemen, dan penyewa.

Men-debug templat berlapis

Templat ARM utama dan templat berlapis memiliki nama penyebaran dan riwayat penyebaran mereka sendiri. File dan modul Bicep utama juga menggunakan nama penyebaran dan riwayat penyebaran terpisah.

Templat ARM

Untuk mencatat informasi debug untuk templat ARM berlapis , gunakan Microsoft.Resources/deployments dengan debugSetting properti .

Contoh berikut menunjukkan templat berlapis dengan debugSetting untuk mencatat permintaan dan respons penyebaran.

"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"
      }
    }
  }
],

Templat ARM utama dan templat berlapis memiliki nama penyebaran dan riwayat penyebaran mereka sendiri. Jika Anda ingin request properti dan response berisi informasi pemecahan masalah, ketahui skenario penyebaran berikut:

  • Properti request dan response berisi null nilai untuk templat utama dan templat berlapis saat DeploymentDebugLogLevel tidak diaktifkan dengan perintah penyebaran.
  • Saat perintah penyebaran mengaktifkan DeploymentDebugLogLevelrequest properti dan response berisi informasi hanya untuk templat utama. Properti templat berlapis berisi null nilai.
  • Saat templat berlapis menggunakan debugSetting perintah dan penyebaran tidak hanya menyertakan DeploymentDebugLogLevel penyebaran templat berlapis yang memiliki nilai untuk request properti dan response . Properti templat utama berisi null nilai.
  • Untuk mendapatkan request dan response untuk templat utama dan templat berlapis, tentukan DeploymentDebugLogLevel dalam perintah penyebaran dan gunakan debugSetting dalam templat berlapis.

File Bicep

Rekomendasi untuk file Bicep adalah menggunakan modul daripada templat berlapis dengan Microsoft.Resources/deployments. Pesan status, kode status, dan status penyediaan akan menyertakan informasi untuk file dan modul Bicep utama yang dapat Anda gunakan untuk memecahkan masalah penyebaran.

Jika Anda mengaktifkan DeploymentDebugLogLevel dari perintah penyebaran, request properti dan response hanya akan berisi informasi untuk penyebaran file Bicep utama.

Menghapus riwayat penyebaran debug

Setelah selesai men-debug, Anda harus menghapus riwayat penyebaran untuk mencegah siapa pun yang memiliki akses melihat informasi sensitif yang mungkin telah dicatat. Untuk setiap nama penyebaran yang Anda gunakan saat penelusuran kesalahan, jalankan perintah untuk menghapus riwayat penyebaran.

Untuk menghapus riwayat penyebaran untuk penyebaran grup sumber daya, gunakan Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

Perintah akan mengembalikan True saat berhasil.

Untuk informasi selengkapnya tentang riwayat penyebaran, lihat dokumentasi untuk cakupan penyebaran: langganan, grup manajemen, dan penyewa.

Langkah berikutnya