Bagikan melalui


Mengaktifkan pengelogan debug

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

Peringatan

Pencatatan debug dapat mengekspos rahasia seperti kata sandi atau listKeys operasi. Hanya aktifkan pencatatan debug ketika Anda perlu memecahkan masalah kesalahan dalam penyebaran. Setelah selesai men-debug, Anda harus menghapus riwayat penyebaran debug.

Menyiapkan pengelogan debug

Gunakan Azure PowerShell untuk mengaktifkan pencatatan debug yang mengisi properti request 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, ResponseContent, atau RequestContent.

Saat log debug diaktifkan, sebuah peringatan ditampilkan bahwa rahasia seperti kata sandi atau operasi listKeys 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 pencatatan log debug.

DeploymentDebugLogLevel : RequestContent, ResponseContent

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

Dapatkan informasi debug

Setelah pengelogan debug diaktifkan, Anda bisa mendapatkan informasi selengkapnya tentang operasi penyebaran. Cmdlet Azure PowerShell untuk operasi penyebaran tidak menampilkan properti request 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 .

Sampel 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 properti request dan response berisi informasi pemecahan masalah, ketahui skenario penyebaran berikut:

  • Properti request dan response berisi nilai null untuk templat utama dan templat bersarang saat DeploymentDebugLogLevel tidak diaktifkan dengan perintah pendistribusian.
  • Saat perintah penyebaran mengaktifkan DeploymentDebugLogLevel dan request, properti response hanya berisi informasi pada templat utama. Properti templat yang tertindih berisi nilai null.
  • Saat templat berlapis menggunakan debugSetting dan perintah penyebaran tidak menyertakan DeploymentDebugLogLevel, hanya penyebaran templat berlapis yang memiliki nilai untuk properti request dan response. Properti templat utama itu berisi nilai null.
  • 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 utama Bicep dan modul yang dapat Anda gunakan untuk memecahkan masalah penyebaran.

Jika Anda mengaktifkan DeploymentDebugLogLevel dari perintah penyebaran, properti request dan properti response akan berisi informasi hanya 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 selama proses debugging, 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 mengembalikan True jika berhasil.

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

Langkah selanjutnya