Создание пространства имен с концентратором событий и включение записи с помощью шаблона
Из этой статьи вы узнаете, как с помощью шаблона Azure Resource Manager создать пространство имен Центров событий с одним экземпляром концентратора событий и включить для него функцию "Сбор". Здесь вы узнаете, как определить развертываемые ресурсы и параметры, указываемые при развертывании. Этот шаблон можно использовать для собственных развертываний или настроить его в соответствии с вашими требованиями.
В этой статье также показано, как настроить запись событий в хранилище BLOB-объектов Azure или Azure Data Lake Store в зависимости от выбранного назначения.
Дополнительные сведения о создании шаблонов см. в статье Создание шаблонов Azure Resource Manager. Синтаксис и свойства JSON, используемые в шаблоне, см. в статье о типах ресурсов Microsoft.EventHub.
Дополнительные сведения о шаблонах и рекомендациях по соглашениям об именовании ресурсов Azure см. в статье Соглашения об именовании.
Полные шаблоны доступны на сайте GitHub по следующим ссылкам:
- Создание концентратора событий и включение записи в шаблон хранилища
- Создание концентратора событий и включение записи в шаблон Azure Data Lake Store
Примечание.
Чтобы узнать о новых шаблонах, изучите коллекцию Шаблоны быстрого запуска Azure и выполните в ней поиск по запросу "Центры событий".
Внимание
Azure Data Lake Storage 1-го поколения не используется для записи данных о событиях. Дополнительные сведения см. в официальном объявлении. Если вы используете Azure Data Lake Storage 1-го поколения, перейдите к Azure Data Lake Storage 2-го поколения. Дополнительные сведения см . в рекомендациях и шаблонах миграции Azure Data Lake Storage.
Что вы развернете?
С помощью этого шаблона вы развернете пространство имен Центров событий с концентратором событий и включите функцию "Сбор" в Центрах событий. Функция "Сбор" в Центрах событий позволяет автоматически доставлять потоковые данные из Центров событий в хранилище BLOB-объектов Azure или Azure Data Lake Store с указанным интервалом времени или размера. Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в службу хранилища Azure, нажмите эту кнопку:
Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в Azure Data Lake Store, нажмите эту кнопку:
Параметры
С помощью диспетчера ресурсов Azure можно определить параметры значений, которые должны указываться на этапе развертывания шаблона. В шаблоне есть раздел Parameters
, содержащий все значения параметров. Вам нужно определить параметры для тех значений, которые зависят от развертываемого проекта либо от среды, в которую выполняется развертывание. Не определяйте параметры для значений, которые не меняются. Значение каждого параметра в шаблоне определяет развертываемые ресурсы.
Ниже описаны параметры, которые определяет шаблон.
eventHubNamespaceName
Имя создаваемого пространства имен Центров событий.
"eventHubNamespaceName":{
"type":"string",
"metadata":{
"description":"Name of the EventHub namespace"
}
}
eventHubName
Имя концентратора событий, создаваемого в пространстве имен Центров событий.
"eventHubName":{
"type":"string",
"metadata":{
"description":"Name of the event hub"
}
}
messageRetentionInDays
Число дней для хранения сообщений в концентраторе событий.
"messageRetentionInDays":{
"type":"int",
"defaultValue": 1,
"minValue":"1",
"maxValue":"7",
"metadata":{
"description":"How long to retain the data in event hub"
}
}
partitionCount
Число секций, создаваемых в концентраторе событий.
"partitionCount":{
"type":"int",
"defaultValue":2,
"minValue":2,
"maxValue":32,
"metadata":{
"description":"Number of partitions chosen"
}
}
captureEnabled
Позволяет включить запись для концентратора событий.
"captureEnabled":{
"type":"string",
"defaultValue":"true",
"allowedValues": [
"false",
"true"],
"metadata":{
"description":"Enable or disable the Capture for your event hub"
}
}
captureEncodingFormat
Формат кодировки, указываемый для сериализации данных событий.
"captureEncodingFormat":{
"type":"string",
"defaultValue":"Avro",
"allowedValues":[
"Avro"],
"metadata":{
"description":"The encoding format in which Capture serializes the EventData"
}
}
captureTime
Интервал времени, в пределах которого функция "Сбор" в Центрах событий начинает сбор данных.
"captureTime":{
"type":"int",
"defaultValue":300,
"minValue":60,
"maxValue":900,
"metadata":{
"description":"The time window in seconds for the capture"
}
}
captureSize
Интервал размера, согласно которому функция записи начинает запись данных.
"captureSize":{
"type":"int",
"defaultValue":314572800,
"minValue":10485760,
"maxValue":524288000,
"metadata":{
"description":"The size window in bytes for capture"
}
}
captureNameFormat
Формат имени, используемый функцией "Сбор" в Центрах событий, для записи файлов Avro. Формат имени записи должен содержать {Namespace}
, {Year}
{Day}
{Month}
{EventHub}
{PartitionId}
, {Hour}
и {Minute}
{Second}
поля. Эти поля можно упорядочить в любом порядке с разделителями или без них.
"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 delimiters. E.g. Prod_{EventHub}/{Namespace}\\{PartitionId}_{Year}_{Month}/{Day}/{Hour}/{Minute}/{Second}"
}
}
версия_API
Версия API шаблона.
"apiVersion":{
"type":"string",
"defaultValue":"2017-04-01",
"metadata":{
"description":"ApiVersion used by the template"
}
}
Если в качестве места назначения вы выбрали службу хранилища Azure, используйте следующие параметры.
destinationStorageAccountResourceId
Функции записи требуется идентификатор ресурса учетной записи хранения Azure для включения записи в нужной учетной записи хранения.
"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
Идентификатор подписки для пространства имен Центров событий и 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, в которую отправляются события во время операции записи. Чтобы настроить разрешения для этой папки, ознакомьтесь со статьей Сбор данных из Центров событий с помощью Azure Data Lake Store.
"dataLakeFolderPath": {
"type": "string",
"metadata": {
"description": "Destination capture folder path"
}
}
Служба хранилища Azure или Azure Data Lake Storage 2-го поколения в качестве назначения
Создает пространство имен типа Microsoft.EventHub/Namespaces
с одним концентратором событий, а также позволяет записывать Хранилище BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения.
"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 с помощью Azure PowerShell или интерфейса командной строки Azure см. в следующих статьях:
- Управление ресурсами Azure с помощью Azure PowerShell
- Управление ресурсами Azure с помощью Azure CLI
В приведенных ниже примерах предполагается, что в вашей учетной записи уже есть группа ресурсов с указанным именем.
PowerShell
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Разверните шаблон, чтобы включить функцию "Сбор" в Центрах событий для передачи данных в службу хранилища Azure.
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
Разверните шаблон, чтобы включить функцию "Сбор" в Центрах событий для передачи данных в 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
Хранилище BLOB-объектов Azure в качестве места назначения:
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][]
Следующие шаги
Функцию "Сбор" в Центрах событий можно включить с помощью портала Azure. Дополнительные сведения см. в статье Включение функции "Сбор" в Центрах событий с помощью портала Azure.
Дополнительные сведения о Центрах событий см. в следующих источниках: