تمكين تسجيل تتبع الأخطاء

لاستكشاف أخطاء التوزيع وإصلاحها، يمكنك تمكين تسجيل تتبع الأخطاء للحصول على مزيد من المعلومات. يعمل تسجيل تتبع الأخطاء لعمليات التوزيع باستخدام ملفات Bicep أو قوالب Azure Resource Manager (قوالب ARM). يمكنك الحصول على بيانات حول طلب التوزيع والاستجابة لمعرفة سبب المشكلة.

تحذير

يمكن أن يعرض تسجيل تتبع الأخطاء أسرارا مثل كلمات المرور أو listKeys العمليات. تمكين تسجيل تتبع الأخطاء فقط عندما تحتاج إلى استكشاف أخطاء التوزيع وإصلاحها. عند الانتهاء من تصحيح الأخطاء، يجب إزالة محفوظات نشر تصحيح الأخطاء.

إعداد تسجيل تتبع الأخطاء

استخدم Azure PowerShell لتمكين تسجيل تتبع الأخطاء الذي يملأ request خصائص و response بمعلومات النشر لاستكشاف الأخطاء وإصلاحها. لا يمكن تمكين تسجيل تتبع الأخطاء باستخدام Azure CLI.

يتم تمكين تسجيل تتبع الأخطاء فقط لقالب ARM الرئيسي أو ملف Bicep. إذا كنت تستخدم قوالب ARM المتداخلة أو وحدات Bicep النمطية، فشاهد تصحيح القالب المتداخل.

لنشر مجموعة موارد، استخدم New-AzResourceGroupDeployment وقم بتعيين المعلمة DeploymentDebugLogLevel إلى Allأو ResponseContentأو RequestContent.

عند تمكين تسجيل تتبع الأخطاء، يتم عرض تحذير بأنه يمكن تسجيل البيانات السرية مثل كلمات المرور أو listKeys العمليات وعرضها عند استخدام أوامر مثل Get-AzResourceGroupDeploymentOperation الحصول على معلومات حول عمليات النشر.

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

يظهر إخراج التوزيع مستوى تسجيل تتبع الأخطاء.

DeploymentDebugLogLevel : RequestContent, ResponseContent

DeploymentDebugLogLevel المعلمة متاحة لنطاقات النشر الأخرى: الاشتراك ومجموعة الإدارة والمستأجر.

الحصول على معلومات تتبع الأخطاء

بعد تمكين تسجيل تتبع الأخطاء، يمكنك الحصول على مزيد من المعلومات حول عمليات التوزيع. لا تقوم أوامر Cmdlets Azure PowerShell لعمليات النشر إخراج request الخصائص و response . تحتاج إلى استخدام Azure CLI للحصول على المعلومات من هذه الخصائص.

إذا لم تقم بتمكين تسجيل تتبع الأخطاء من أمر النشر، فلا يزال بإمكانك الحصول على معلومات عمليات التوزيع. استخدم Azure PowerShell أو Azure CLI للحصول على رمز الحالة ورسالة الحالة وحالة التوفير.

لنشر مجموعة موارد، استخدم Get-AzResourceGroupDeploymentOperation للحصول على عمليات التوزيع.

Get-AzResourceGroupDeploymentOperation `
  -DeploymentName exampledeployment `
  -ResourceGroupName examplegroup

يمكنك تحديد خاصية، مثل StatusCode، StatusMessageأو ProvisioningState لتصفية الإخراج.

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

لمزيد من المعلومات، راجع وثائق نطاقات عمليات النشر: الاشتراك ومجموعة الإدارة والمستأجر.

تصحيح القالب المتداخل

يحتوي قالب ARM الرئيسي والقوالب المتداخلة على اسم النشر ومحفوظات التوزيع الخاصة بها. يستخدم ملف Bicep الرئيسي والوحدة النمطية أيضا اسم توزيع منفصل ومحفوظات توزيع.

قالب ARM

لتسجيل معلومات تتبع الأخطاء لقالب ARM متداخل ، استخدم Microsoft.Resources/deployments مع الخاصية debugSetting .

يعرض النموذج التالي قالب متداخل مع debugSetting لتسجيل طلب النشر واستجابته.

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

يحتوي قالب ARM الرئيسي والقوالب المتداخلة على اسم النشر ومحفوظات التوزيع الخاصة بها. إذا كنت تريد أن تحتوي الخاصيتين request و response على معلومات استكشاف الأخطاء وإصلاحها، فكن على دراية بسيناريوهات التوزيع التالية:

  • request تحتوي الخاصيتين و response على null قيم للقالب الرئيسي والقالب المتداخل عند DeploymentDebugLogLevel عدم تمكينهما باستخدام أمر النشر.
  • عندما يمكن DeploymentDebugLogLevel أمر النشر الخصائص request و response تحتوي على معلومات للقالب الرئيسي فقط. تحتوي خصائص القالب المتداخل على null قيم.
  • عندما يستخدم debugSetting قالب متداخل ولا يتضمن DeploymentDebugLogLevel أمر النشر فقط نشر القالب المتداخل له قيم للخصائص request و response . تحتوي خصائص القالب الرئيسي على null قيم.
  • للحصول على request و response للقالب الرئيسي والقالب المتداخل، حدد DeploymentDebugLogLevel في أمر النشر واستخدمه debugSetting في القالب المتداخل.

ملف Bicep

التوصية لملفات Bicep هي استخدام الوحدات النمطية بدلا من القوالب المتداخلة مع Microsoft.Resources/deployments. ستتضمن رسالة الحالة ورمز الحالة وحالة التوفير معلومات لملف Bicep الرئيسي والوحدة النمطية التي يمكنك استخدامها لاستكشاف أخطاء التوزيع وإصلاحها.

إذا قمت بالتمكين DeploymentDebugLogLevel من أمر النشر، request فستحتوي الخاصيتين و response على معلومات فقط لنشر ملف Bicep الرئيسي.

إزالة محفوظات نشر تتبع الأخطاء

عند الانتهاء من تصحيح الأخطاء، يجب إزالة محفوظات النشر لمنع أي شخص لديه حق الوصول من رؤية المعلومات الحساسة التي ربما تم تسجيلها. لكل اسم نشر استخدمته أثناء تصحيح الأخطاء، قم بتشغيل الأمر لإزالة محفوظات التوزيع.

لإزالة محفوظات النشر لتوزيع مجموعة موارد، استخدم Remove-AzResourceGroupDeployment.

Remove-AzResourceGroupDeployment -ResourceGroupName examplegroup -Name exampledeployment

يرجع True الأمر عند نجاحه.

لمزيد من المعلومات حول محفوظات النشر، راجع وثائق نطاقات النشر: الاشتراك ومجموعة الإدارة والمستأجر.

الخطوات التالية