قم بإنشاء مساحة اسم باستخدام محور الأحداث وقم بتمكين Capture باستخدام نموذج

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

تُظهر هذه المقالة أيضاً كيفية تحديد أن الأحداث يتم التقاطها إما في Azure Storage Blobs أوAzure Data Lake Store، بناءً على الوجهة التي تختارها.

لمزيد من المعلومات حول إنشاء نماذج، انظر تأليف نماذج إدارة موارد Azure. للحصول على بناء الجملة JSON والخصائص لاستخدامها في نموذج، راجع أنواع موارد Microsoft.EventHub.

لمزيد من المعلومات حول الأنماط والممارسات لاصطلاحات تسمية موارد Azure، راجع اصطلاحات تسمية موارد Azure.

للحصول على القوالب الكاملة، حدد روابط GitHub التالية:

إشعار

للتحقق من وجود أحدث النماذج، قم بزيارة معرض Azure Quickstart Templates وابحث عن لوحات الوصل الخاصة بالحدث.

هام

تم إيقاف Azure Data Lake Storage Gen1، لذا لا تستخدمه لالتقاط بيانات الحدث. لمزيد من المعلومات، راجع الإعلان الرسمي. إذا كنت تستخدم Azure Data Lake Storage Gen1، فرحل إلى Azure Data Lake Storage Gen2. لمزيد من المعلومات، راجع إرشادات وأنماط ترحيل Azure Data Lake Storage.

ماذا سوف تنشر؟

باستخدام هذا القالب، يمكنك نشر مساحة اسم "مراكز الأحداث" مع لوحة وصل حدث، وتمكين "التقاط لوحات الوصل الأحداث". يمكّنك Event Hubs Capture من تسليم البيانات المتدفقة في Event Hubs تلقائياً إلى تخزين Azure Blob أو Azure Data Lake Store، خلال فترة زمنية محددة أو حجم فاصل من اختيارك. حدد الزر التالي لتمكين تسجيل مراكز الأحداث في تخزين Azure:

نشر في Azure

حدد الزر التالي لتمكين تسجيل مراكز الأحداث في Azure Data Lake Store:

نشر في Azure

المعلمات

باستخدام إدارة موارد Azure، يمكنك تعريف معلمات للقيم التي تريد تحديدها عند نشر القالب. يتضمن النموذج قسم يسمى Parameters الذي يحتوي على جميع قيم المعلمات. يجب عليك تحديد معلمة لتلك القيم التي تختلف استنادًا إلى المشروع الذي تقوم بتوزيعه أو استنادًا إلى البيئة التي تقوم بالتوزيع فيها. لا تقم بتعريف معلمات للقيم التي تبقى دائمًا كما هي. يتم استخدام كل قيمة معلمة في النموذج لتعريف الموارد التي يتم نشرها.

يحدد النموذج المعلمات التالية.

eventHubNamespaceName

اسم مساحة اسم "Event Hubs" المطلوب إنشاؤها.

"eventHubNamespaceName":{
     "type":"string",
     "metadata":{
         "description":"Name of the EventHub namespace"
      }
}

eventHubName

اسم Event Hubs التي تم إنشاؤها في مساحة اسم Event Hubs.

"eventHubName":{
    "type":"string",
    "metadata":{
        "description":"Name of the event hub"
    }
}

messageRetentionInDays

عدد الأيام للاحتفاظ بالرسائل في event hub.

"messageRetentionInDays":{
    "type":"int",
    "defaultValue": 1,
    "minValue":"1",
    "maxValue":"7",
    "metadata":{
       "description":"How long to retain the data in event hub"
     }
 }

حساب عدد الأقسام

عدد الأقسام المراد إنشاؤها في event hub.

"partitionCount":{
    "type":"int",
    "defaultValue":2,
    "minValue":2,
    "maxValue":32,
    "metadata":{
        "description":"Number of partitions chosen"
    }
 }

تمكين الالتقاط

تمكين الالتقاط على event hub.

"captureEnabled":{
    "type":"string",
    "defaultValue":"true",
    "allowedValues": [
    "false",
    "true"],
    "metadata":{
        "description":"Enable or disable the Capture for your event hub"
    }
 }

التقاط تنسيق الترميز

تنسيق الترميز الذي تحدده لجعل بيانات الحدث تسلسلياً.

"captureEncodingFormat":{
    "type":"string",
    "defaultValue":"Avro",
    "allowedValues":[
    "Avro"],
    "metadata":{
        "description":"The encoding format in which Capture serializes the EventData"
    }
}

وقت الالتقاط

الفاصل الزمني الذي يبدأ فيه Event Hubs Capture في التقاط البيانات.

"captureTime":{
    "type":"int",
    "defaultValue":300,
    "minValue":60,
    "maxValue":900,
    "metadata":{
         "description":"The time window in seconds for the capture"
    }
}

التقاط الحجم

الفاصل الزمني للحجم الذي يبدأ فيه Capture في التقاط البيانات.

"captureSize":{
    "type":"int",
    "defaultValue":314572800,
    "minValue":10485760,
    "maxValue":524288000,
    "metadata":{
        "description":"The size window in bytes for capture"
    }
}

التقاط تنسيق الاسم

تنسيق الاسم المستخدم من قبل "Event Hubs Capture" لكتابة ملفات Avro. يجب أن يحتوي تنسيق اسم الالتقاط على {Namespace}حقول {Month}{Hour}{PartitionId}{Second}{EventHub}{Year}{Day}{Minute}و. يمكن ترتيب هذه الحقول بأي ترتيب، مع محددات أو بدونها.

"captureNameFormat": {
      "type": "string",
      "defaultValue": "{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}",
      "metadata": {
        "description": "A Capture Name Format must contain {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} and {Second} fields. These can be arranged in any order with or without delimeters. E.g.  Prod_{EventHub}/{Namespace}\\{PartitionId}_{Year}_{Month}/{Day}/{Hour}/{Minute}/{Second}"
      }
    }

apiVersion

إصدار API للنموذج.

 "apiVersion":{
    "type":"string",
    "defaultValue":"2017-04-01",
    "metadata":{
        "description":"ApiVersion used by the template"
    }
 }

استخدم المعلمات التالية إذا اخترت Azure Storage كوجهة.

destinationStorageAccountResourceId

يتطلب Capture معرف مورد حساب Azure Storage لتمكين الالتقاط لحساب التخزين المطلوب الخاص بك.

 "destinationStorageAccountResourceId":{
    "type":"string",
    "metadata":{
        "description":"Your existing Storage account resource ID where you want the blobs be captured"
    }
 }

blobContainerName

حاوية البيانات الثنائية الكبيرة التي يتم فيها التقاط بيانات الحدث الخاص بك.

 "blobContainerName":{
    "type":"string",
    "metadata":{
        "description":"Your existing storage container in which you want the blobs captured"
    }
}

subscriptionId

معرف الاشتراك لمساحة اسم "Event Hubs" و"Azure Data Lake Store". يجب أن تكون هذه الموارد ضمن معرف الاشتراك نفسه.

"subscriptionId": {
    "type": "string",
    "metadata": {
        "description": "Subscription ID of both Azure Data Lake Store and Event Hubs namespace"
     }
 }

dataLakeAccountName

قم بتسمية Azure Data Lake Store للأحداث الملتقطة.

"dataLakeAccountName": {
    "type": "string",
    "metadata": {
        "description": "Azure Data Lake Store name"
    }
}

dataLakeFolderPath

مسار مجلد الوجهة للأحداث التي تم التقاطها. هذا المسار هو المجلد في Data Lake Store الذي يتم دفع الأحداث إليه أثناء عملية الالتقاط. لتعيين أذونات على هذا المجلد، راجع Use Azure Data Lake Store to capture data from Event Hubs.

"dataLakeFolderPath": {
    "type": "string",
    "metadata": {
        "description": "Destination capture folder path"
    }
}

تخزين Azure أو Azure Data Lake Storage Gen 2 كوجهة

ينشئ مساحة اسم من النوع Microsoft.EventHub/Namespaces، مع مركز أحداث واحد، كما يمكن الالتقاط إلى Azure Blob Storage أو Azure Data Lake Storage Gen2.

"resources":[
      {
         "apiVersion":"[variables('ehVersion')]",
         "name":"[parameters('eventHubNamespaceName')]",
         "type":"Microsoft.EventHub/Namespaces",
         "location":"[variables('location')]",
         "sku":{
            "name":"Standard",
            "tier":"Standard"
         },
         "resources": [
    {
      "apiVersion": "2017-04-01",
      "name": "[parameters('eventHubNamespaceName')]",
      "type": "Microsoft.EventHub/Namespaces",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard"
      },
      "properties": {
        "isAutoInflateEnabled": "true",
        "maximumThroughputUnits": "7"
      },
      "resources": [
        {
          "apiVersion": "2017-04-01",
          "name": "[parameters('eventHubName')]",
          "type": "EventHubs",
          "dependsOn": [
            "[concat('Microsoft.EventHub/namespaces/', parameters('eventHubNamespaceName'))]"
          ],
          "properties": {
            "messageRetentionInDays": "[parameters('messageRetentionInDays')]",
            "partitionCount": "[parameters('partitionCount')]",
            "captureDescription": {
              "enabled": "true",
              "skipEmptyArchives": false,
              "encoding": "[parameters('captureEncodingFormat')]",
              "intervalInSeconds": "[parameters('captureTime')]",
              "sizeLimitInBytes": "[parameters('captureSize')]",
              "destination": {
                "name": "EventHubArchive.AzureBlockBlob",
                "properties": {
                  "storageAccountResourceId": "[parameters('destinationStorageAccountResourceId')]",
                  "blobContainer": "[parameters('blobContainerName')]",
                  "archiveNameFormat": "[parameters('captureNameFormat')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

أوامر لتشغيل النشر

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

الأمثلة التالية تفترض أن لديك بالفعل مجموعة موارد في حسابك بالاسم المحدد.

PowerShell

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

نشر النموذج لتمكين Event Hubs Capture into Azure Storage:

New-AzResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture/azuredeploy.json

نشر النموذج لتمكينEvent Hubs Capture into Azure Data Lake Store:

New-AzResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json

Azure CLI

Azure Blob Storage كوجهة:

az deployment group create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture/azuredeploy.json][]

Azure Data Lake Store كوجهة:

az deployment group create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json][]

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

يمكنك أيضاً تكوين Event Hubs Capture عبر بوابة Azure. لمزيد من المعلومات، راجع Enable Event Hubs Capture باستخدام بوابة Azure.

يمكنك معرفة المزيد عن مراكز الأحداث من خلال زيارة الروابط التالية: