Een naamruimte maken met Event Hub en Capture inschakelen met behulp van een sjabloon

In dit artikel wordt beschreven hoe u een Azure Resource Manager-sjabloon gebruikt om een Event Hubs-naamruimte te maken met één exemplaar van de gebeurtenishub en de functie Capture op de gebeurtenishub in te schakelen. In het artikel wordt beschreven hoe u kunt aangeven welke resources worden geïmplementeerd en hoe u de parameters definieert die bij de uitvoering van de implementatie zijn opgegeven. U kunt deze sjabloon gebruiken voor uw eigen implementaties of de sjabloon aanpassen aan uw eisen.

Ook wordt uitgelegd hoe u kunt opgeven dat gebeurtenissen worden vastgelegd in Azure Storage-blobs of in een Azure Data Lake Store, op basis van de bestemming die u kiest.

Zie Azure Resource Manager-sjablonen samenstellen voor meer informatie over het maken van sjablonen. Zie Microsoft.EventHub resource types (Microsoft.EventHub-resourcetypen) voor de JSON-syntaxis en eigenschappen die u kunt gebruiken in een sjabloon.

Zie Naming Conventions (Naamgevingsconventies) voor meer informatie over de patronen en procedures voor naamgevingsconventies van Azure Resources.

Voor de volledige-sjablonen klikt u op de volgende GitHub-koppelingen:

Notitie

Om te controleren op de meest recente sjablonen, gaat u naar de galerie Azure-snelstartsjablonen en zoekt u naar Event Hubs.

Wat wilt u implementeren?

Met deze sjabloon implementeert u een Event Hubs-naamruimte met een gebeurtenishub en schakelt u tevens Event Hubs Cinapture in. Met Event Hubs Capture kunt u automatisch de gegevensstroom in uw gebeurtenishubs bezorgen in een Azure Blob-opslagaccount of Azure Data Lake Store van uw keuze, binnen een opgegeven periode of grootte van uw keuze. Klik op de volgende knop om Event Hubs Capture in te schakelen in Azure Storage:

Implementeren in Azure

Klik op de volgende knop om Event Hubs Capture in te schakelen in Azure Data Lake Store:

Implementeren in Azure

Parameters

Met Azure Resource Manager kunt u parameters definiëren voor waarden die u wilt opgeven wanneer de sjabloon wordt geïmplementeerd. De sjabloon bevat een sectie met de naam Parameters die alle parameterwaarden bevat. U moet een parameter definiëren voor de waarden die variëren op basis van het project dat u wilt implementeren of op basis van de omgeving waarin u gaat implementeren. Definieer geen parameters voor waarden die altijd hetzelfde blijven. De waarde van elke parameter wordt gebruikt in de sjabloon voor het definiëren van de resources die worden geïmplementeerd.

De sjabloon definieert de volgende parameters.

eventHubNamespaceName

De naam van de Event Hubs-naamruimte die wordt gemaakt.

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

eventHubName

De naam van de gebeurtenishub die in de Event Hubs-naamruimte wordt gemaakt.

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

messageRetentionInDays

Het aantal dagen dat u de berichten in de gebeurtenishub wilt bewaren.

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

partitionCount

Het aantal partities dat in de gebeurtenishub wordt gemaakt.

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

captureEnabled

Capture inschakelen op de gebeurtenishub.

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

captureEncodingFormat

De coderingsindeling die u opgeeft voor het serialiseren van de gebeurtenisgegevens.

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

captureTime

Het tijdsinterval waarin Event Hubs Capture begint met het vastleggen van de gegevens.

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

captureSize

De grootte waarbij Capture begint met het vastleggen van de gegevens.

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

captureNameFormat

De naamindeling die door Event Hubs Capture wordt gebruikt om de Avro-bestanden weg te schrijven. De indeling voor Capture moet de velden {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} en {Second} bevatten. Deze velden kunnen in willekeurige volgorde worden gerangschikt, met of zonder scheidingstekens.

"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

De API-versie van de sjabloon.

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

Gebruik de volgende parameters als u Azure Storage als de bestemming kiest.

destinationStorageAccountResourceId

Capture vereist een resource-id van het Azure Storage-account om te kunnen vastleggen naar uw gewenste opslagaccount.

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

blobContainerName

De blob-container waarin uw gebeurtenisgegevens worden vastgelegd.

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

Gebruik de volgende parameters als u Azure Data Lake Store Gen 1 als doel kiest. U moet machtigingen instellen voor het Data Lake Store-pad waarin u de gebeurtenis wilt vastleggen. Zie Gegevens vastleggen in Azure Data Lake Storage Gen 1 om machtigingen in te stellen.

subscriptionId

De abonnements-id voor de Event Hubs-naamruimte en Azure Data Lake Store. Deze twee resources moeten onder dezelfde abonnements-id vallen.

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

dataLakeAccountName

De Azure Data Lake Store-naam voor de vastgelegde gebeurtenissen.

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

dataLakeFolderPath

Het pad naar de doelmap voor de vastgelegde gebeurtenissen. Dit is de map in uw Data Lake Store waarnaar de gebeurtenissen tijdens het vastleggen wordt gestuurd. Zie Azure Data Lake Store gebruiken voor het vastleggen van gegevens uit Event Hubs voor het instellen van machtigingen voor deze map.

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

Resources om te implementeren met Azure Storage als doel voor vastgelegde gebeurtenissen

Hiermee maakt u een naamruimte van het type EventHub met één gebeurtenishub, en wordt ook Capture ingeschakeld voor gebruik met 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')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

Resources om te implementeren met Azure Data Lake Store als doel

Hiermee maakt u een naamruimte van het type EventHub met één gebeurtenishub, en wordt ook Capture ingeschakeld voor gebruik met 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')]"
                                }
                            }
                        }
                    }
                }
            ]
        }
    ]

Notitie

Gebruik de eigenschap skipEmptyArchives om het verzenden van lege bestanden in of uit te schakelen wanneer er geen gebeurtenissen optreden tijdens de periode voor vastleggen.

Opdrachten om implementatie uit te voeren

Als u resources in Azure wilt implementeren, moet u zijn aangemeld bij uw Azure-account en moet u de Azure Resource Manager-module gebruiken. Voor meer informatie over het gebruik van Azure Resource Manager in combinatie met Azure PowerShell of de Azure CLI raadpleegt u:

In de volgende voorbeelden wordt ervan uitgegaan dat u in uw account al een resourcegroep hebt met de opgegeven naam.

PowerShell

Notitie

In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Een sjabloon implementeren om Event Hubs Capture in te schakelen in 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

Een sjabloon implementeren om Event Hubs Capture in te schakelen in 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 als doel:

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 als doel:

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][]

Volgende stappen

U kunt Event Hubs Capture ook configureren via de Azure-portal. Zie voor meer informatie Event Hubs Capture inschakelen met behulp van de Azure-portal.

U kunt meer informatie over Event Hubs vinden via de volgende koppelingen: