Создание пространства имен с концентратором событий и включение записи с помощью шаблонаCreate a namespace with event hub and enable Capture using a template

Из этой статьи вы узнаете, как с помощью шаблона Azure Resource Manager создать пространство имен Центров событий с одним экземпляром концентратора событий и включить для него функцию "Сбор".This article shows how to use an Azure Resource Manager template that creates an Event Hubs namespace, with one event hub instance, and also enables the Capture feature on the event hub. Здесь вы узнаете, как определить развертываемые ресурсы и параметры, указываемые при развертывании.The article describes how to define which resources are deployed, and how to define parameters that are specified when the deployment is executed. Этот шаблон можно использовать для собственных развертываний или настроить его в соответствии с вашими требованиями.You can use this template for your own deployments, or customize it to meet your requirements.

В этой статье также показано, как настроить запись событий в хранилище BLOB-объектов Azure или Azure Data Lake Store в зависимости от выбранного назначения.This article also shows how to specify that events are captured into either Azure Storage Blobs or an Azure Data Lake Store, based on the destination you choose.

Дополнительные сведения о создании шаблонов см. в статье Создание шаблонов Azure Resource Manager.For more information about creating templates, see Authoring Azure Resource Manager templates. Синтаксис и свойства JSON, используемые в шаблоне, см. в статье о типах ресурсов Microsoft.EventHub.For the JSON syntax and properties to use in a template, see Microsoft.EventHub resource types.

Дополнительные сведения о шаблонах и методиках соглашения об именовании ресурсов Azure см. в статье соглашения об именовании ресурсов Azure.For more information about patterns and practices for Azure Resources naming conventions, see Azure Resources naming conventions.

Полные шаблоны доступны на сайте GitHub по следующим ссылкам:For the complete templates, click the following GitHub links:

Примечание

Чтобы узнать о новых шаблонах, посетите коллекцию Шаблоны быстрого запуска Azure и выполните поиск по запросу "Центры событий".To check for the latest templates, visit the Azure Quickstart Templates gallery and search for Event Hubs.

Что вы развернете?What will you deploy?

С помощью этого шаблона вы развернете пространство имен Центров событий с концентратором событий и включите функцию "Сбор" в Центрах событий.With this template, you deploy an Event Hubs namespace with an event hub, and also enable Event Hubs Capture. Функция "Сбор" в Центрах событий позволяет автоматически доставлять потоковые данные из Центров событий в хранилище BLOB-объектов Azure или Azure Data Lake Store с указанным интервалом времени или размера.Event Hubs Capture enables you to automatically deliver the streaming data in Event Hubs to Azure Blob storage or Azure Data Lake Store, within a specified time or size interval of your choosing. Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в службу хранилища Azure, нажмите эту кнопку:Click the following button to enable Event Hubs Capture into Azure Storage:

Развертывание в AzureDeploy to Azure

Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в Azure Data Lake Store, нажмите эту кнопку:Click the following button to enable Event Hubs Capture into Azure Data Lake Store:

Развертывание в AzureDeploy to Azure

ПараметрыParameters

С помощью диспетчера ресурсов Azure можно определить параметры значений, которые должны указываться на этапе развертывания шаблона.With Azure Resource Manager, you define parameters for values you want to specify when the template is deployed. В шаблоне есть раздел Parameters , содержащий все значения параметров.The template includes a section called Parameters that contains all the parameter values. Для этих значений необходимо определить параметры, которые будут зависеть от развертываемого проекта либо от среды, в которой выполняется развертывание.You should define a parameter for those values that vary based on the project you are deploying or based on the environment you are deploying to. Не определяйте параметры для значений, которые не меняются.Do not define parameters for values that always stay the same. Значение каждого параметра в шаблоне определяет развертываемые ресурсы.Each parameter value is used in the template to define the resources that are deployed.

Шаблон определяет следующие параметры.The template defines the following parameters.

eventHubNamespaceNameeventHubNamespaceName

Имя создаваемого пространства имен Центров событий.The name of the Event Hubs namespace to create.

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

eventHubNameeventHubName

Имя концентратора событий, создаваемого в пространстве имен Центров событий.The name of the event hub created in the Event Hubs namespace.

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

messageRetentionInDaysmessageRetentionInDays

Число дней для хранения сообщений в концентраторе событий.The number of days to retain the messages in the event hub.

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

partitionCountpartitionCount

Число секций, создаваемых в концентраторе событий.The number of partitions to create in the event hub.

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

captureEnabledcaptureEnabled

Позволяет включить запись для концентратора событий.Enable Capture on the event hub.

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

captureEncodingFormatcaptureEncodingFormat

Формат кодировки, указываемый для сериализации данных событий.The encoding format you specify to serialize the event data.

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

captureTimecaptureTime

Интервал времени, в пределах которого функция "Сбор" в Центрах событий начинает сбор данных.The time interval in which Event Hubs Capture starts capturing the data.

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

captureSizecaptureSize

Интервал размера, согласно которому функция записи начинает запись данных.The size interval at which Capture starts capturing the data.

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

captureNameFormatcaptureNameFormat

Формат имени, используемый функцией "Сбор" в Центрах событий, для записи файлов Avro.The name format used by Event Hubs Capture to write the Avro files. Обратите внимание, что в формате имени для функции записи должны быть поля {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute}, и {Second}.Note that 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 delimiters.

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

версия_APIapiVersion

Версия API шаблона.The API version of the template.

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

Если в качестве места назначения вы выбрали службу хранилища Azure, используйте следующие параметры.Use the following parameters if you choose Azure Storage as your destination.

destinationStorageAccountResourceIddestinationStorageAccountResourceId

Функции записи требуется идентификатор ресурса учетной записи хранения Azure для включения записи в нужной учетной записи хранения.Capture requires an Azure Storage account resource ID to enable capturing to your desired Storage account.

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

blobContainerNameblobContainerName

Контейнер больших двоичных объектов, в который необходимо записывать данные события.The blob container in which to capture your event data.

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

Если в качестве места назначения вы выбрали Azure Data Lake Store, используйте указанные ниже параметры.Use the following parameters if you choose Azure Data Lake Store as your destination. Необходимо назначить разрешения для пути к хранилищу Data Lake Store, в которое необходимо записывать события.You must set permissions on your Data Lake Store path, in which you want to Capture the event. Сведения о назначении разрешений см. в этой статье.To set permissions, see this article.

subscriptionIdsubscriptionId

Идентификатор подписки для пространства имен Центров событий и Azure Data Lake Store.Subscription ID for the Event Hubs namespace and Azure Data Lake Store. Оба ресурса должны использовать один и тот же идентификатор подписки.Both these resources must be under the same subscription ID.

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

dataLakeAccountNamedataLakeAccountName

Имя Azure Data Lake Store для записываемых событий.The Azure Data Lake Store name for the captured events.

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

dataLakeFolderPathdataLakeFolderPath

Путь к целевой папке для записываемых событий.The destination folder path for the captured events. Это папка в Data Lake Store, в которую будут отправляться события во время операции записи.This is the folder in your Data Lake Store to which the events will be pushed during the capture operation. Чтобы настроить разрешения для этой папки, ознакомьтесь со статьей Сбор данных из Центров событий с помощью Azure Data Lake Store.To set permissions on this folder, see Use Azure Data Lake Store to capture data from Event Hubs.

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

Развертываемые ресурсы для службы хранилища Azure как места назначения для записи событийResources to deploy for Azure Storage as destination to captured events

Здесь создается пространство имен типа EventHub с одним концентратором событий и включается запись в хранилище BLOB-объектов Azure.Creates a namespace of type EventHub, with one event hub, and also enables Capture to Azure Blob Storage.

"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 Data Lake Store как места назначенияResources to deploy for Azure Data Lake Store as destination

Здесь создается пространство имен типа EventHub с одним концентратором событий и включается запись в Azure Data Lake Store.Creates a namespace of type EventHub, with one event hub, and also enables Capture to Azure Data Lake Store.

 "resources": [
        {
            "apiVersion": "2017-04-01",
            "name": "[parameters('namespaceName')]",
            "type": "Microsoft.EventHub/Namespaces",
            "location": "[variables('location')]",
            "sku": {
                "name": "Standard",
                "tier": "Standard"
            },
            "resources": [
                {
                    "apiVersion": "2017-04-01",
                    "name": "[parameters('eventHubName')]",
                    "type": "EventHubs",
                    "dependsOn": [
                        "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'))]"
                    ],
                    "properties": {
                        "path": "[parameters('eventHubName')]",
                        "captureDescription": {
                            "enabled": "true",
                            "skipEmptyArchives": false,
                            "encoding": "[parameters('archiveEncodingFormat')]",
                            "intervalInSeconds": "[parameters('captureTime')]",
                            "sizeLimitInBytes": "[parameters('captureSize')]",
                            "destination": {
                                "name": "EventHubArchive.AzureDataLake",
                                "properties": {
                                    "DataLakeSubscriptionId": "[parameters('subscriptionId')]",
                                    "DataLakeAccountName": "[parameters('dataLakeAccountName')]",
                                    "DataLakeFolderPath": "[parameters('dataLakeFolderPath')]",
                                    "ArchiveNameFormat": "[parameters('captureNameFormat')]"
                                }
                            }
                        }
                    }
                }
            ]
        }
    ]

Примечание

Вы можете включить или отключить создание пустых файлов за время окна сбора данных, когда события отсутствуют, с помощью свойства skipEmptyArchives.You can enable or disable emitting empty files when no events occur during the Capture window by using the skipEmptyArchives property.

Команды для выполнения развертыванияCommands to run deployment

Чтобы развернуть ресурсы в Azure, необходимо войти в учетную запись Azure и воспользоваться модулем Azure Resource Manager.To deploy the resources to Azure, you must be signed in to your Azure account and you must use the Azure Resource Manager module. Информацию об использовании диспетчера ресурсов Azure с помощью Azure PowerShell или интерфейса командной строки Azure см. в следующих статьях:To learn about using Azure Resource Manager with either Azure PowerShell or Azure CLI, see:

В приведенных ниже примерах предполагается, что в вашей учетной записи уже есть группа ресурсов с указанным именем.The following examples assume you already have a resource group in your account with the specified name.

PowerShellPowerShell

Примечание

Эта статья была изменена и теперь содержит сведения о новом модуле Az для Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Вы по-прежнему можете использовать модуль AzureRM, исправления ошибок для которого будут продолжать выпускаться как минимум до декабря 2020 г.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Дополнительные сведения о совместимости модуля Az с AzureRM см. в статье Introducing the new Azure PowerShell Az module (Знакомство с новым модулем Az для Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Инструкции по установке модуля Az см. в статье об установке Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Разверните шаблон, чтобы включить функцию "Сбор" в Центрах событий для передачи данных в службу хранилища Azure.Deploy your template to enable Event Hubs Capture into Azure Storage:

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

Разверните шаблон, чтобы включить функцию "Сбор" в Центрах событий для передачи данных в Azure Data Lake Store.Deploy your template to enable Event Hubs Capture into Azure Data Lake Store:

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

Azure CLIAzure CLI

Хранилище BLOB-объектов Azure в качестве места назначения:Azure Blob Storage as destination:

azure config mode arm

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

Azure Data Lake Store в качестве места назначения:Azure Data Lake Store as destination:

azure config mode arm

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

Дальнейшие действияNext steps

Функцию "Сбор" в Центрах событий можно включить с помощью портала Azure.You can also configure Event Hubs Capture via the Azure portal. Дополнительные сведения см. в статье Включение функции "Сбор" в Центрах событий с помощью портала Azure.For more information, see Enable Event Hubs Capture using the Azure portal.

Дополнительные сведения о Центрах событий см. в следующих источниках:You can learn more about Event Hubs by visiting the following links: