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.
Selecteer voor de volledige sjablonen de volgende GitHub-koppelingen:
- Een Event Hub maken en Capture inschakelen voor opslagsjabloon
- Een Event Hub maken en Capture inschakelen voor Azure Data Lake Store-sjabloon
Notitie
Om te controleren op de meest recente sjablonen, gaat u naar de galerie Azure-snelstartsjablonen en zoekt u naar Event Hubs.
Belangrijk
Azure Data Lake Storage Gen1 wordt buiten gebruik gesteld, dus gebruik deze niet voor het vastleggen van gebeurtenisgegevens. Zie de officiële aankondiging voor meer informatie. Als u Azure Data Lake Storage Gen1 gebruikt, migreert u naar Azure Data Lake Storage Gen2. Zie de richtlijnen en patronen voor migratie van Azure Data Lake Storage voor meer informatie.
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. Selecteer de volgende knop om Event Hubs Capture in te schakelen in Azure Storage:
Selecteer de volgende knop om Event Hubs Capture in te schakelen in Azure Data Lake Store:
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 implementeert of op basis van de omgeving waarnaar u implementeert. 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 de naam van de opname moet de velden , , {EventHub}
, {PartitionId}
{Year}
, {Month}
, {Day}
, {Hour}
, en {Minute}
{Second}
velden bevatten{Namespace}
. Deze velden kunnen in elke 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 delimiters. 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"
}
}
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 pad is de map in uw Data Lake Store waarnaar de gebeurtenissen worden gepusht tijdens de opnamebewerking. 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"
}
}
Azure Storage of Azure Data Lake Storage Gen 2 als bestemming
Hiermee maakt u een naamruimte van het type Microsoft.EventHub/Namespaces
, met één Event Hub en maakt u Capture ook mogelijk voor Azure Blob Storage of 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')]"
}
}
}
}
}
]
}
]
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:
- Azure-resources beheren met behulp van Azure PowerShell
- Azure-resources beheren met behulp van de Azure CLI.
In de volgende voorbeelden wordt ervan uitgegaan dat u in uw account al een resourcegroep hebt met de opgegeven naam.
Powershell
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. 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: