Создание пространства имен с концентратором событий и включение записи с помощью шаблона

Из этой статьи вы узнаете, как с помощью шаблона Azure Resource Manager создать пространство имен Центров событий с одним экземпляром концентратора событий и включить для него функцию "Сбор". Здесь вы узнаете, как определить развертываемые ресурсы и параметры, указываемые при развертывании. Этот шаблон можно использовать для собственных развертываний или настроить его в соответствии с вашими требованиями.

В этой статье также показано, как настроить запись событий в хранилище BLOB-объектов Azure или Azure Data Lake Store в зависимости от выбранного назначения.

Дополнительные сведения о создании шаблонов см. в статье Создание шаблонов Azure Resource Manager. Синтаксис и свойства JSON, используемые в шаблоне, см. в статье о типах ресурсов Microsoft.EventHub.

Дополнительные сведения о шаблонах и рекомендациях по соглашениям об именовании ресурсов Azure см. в статье Соглашения об именовании.

Полные шаблоны доступны на сайте GitHub по следующим ссылкам:

Примечание.

Чтобы узнать о новых шаблонах, изучите коллекцию Шаблоны быстрого запуска Azure и выполните в ней поиск по запросу "Центры событий".

Внимание

Azure Data Lake Storage 1-го поколения не используется для записи данных о событиях. Дополнительные сведения см. в официальном объявлении. Если вы используете Azure Data Lake Storage 1-го поколения, перейдите к Azure Data Lake Storage 2-го поколения. Дополнительные сведения см. в руководстве и шаблонах миграции azure Data Lake служба хранилища.

Что вы развернете?

С помощью этого шаблона вы развернете пространство имен Центров событий с концентратором событий и включите функцию "Сбор" в Центрах событий. Функция "Сбор" в Центрах событий позволяет автоматически доставлять потоковые данные из Центров событий в хранилище BLOB-объектов Azure или Azure Data Lake Store с указанным интервалом времени или размера. Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в службу хранилища Azure, нажмите эту кнопку:

Развернуть в Azure

Чтобы включить функцию "Сбор" в Центрах событий для передачи данных в Azure Data Lake Store, нажмите эту кнопку:

Развернуть в Azure

Параметры

С помощью диспетчера ресурсов 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 delimeters. 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 см. в следующих статьях:

В приведенных ниже примерах предполагается, что в вашей учетной записи уже есть группа ресурсов с указанным именем.

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.

Дополнительные сведения о Центрах событий см. в следующих источниках: