Erstellen eines Namespace mit Event Hub und Aktivieren von Capture mithilfe einer Vorlage

In diesem Artikel erfahren Sie, wie Sie eine Azure Resource Manager-Vorlage verwenden, die einen Event Hubs-Namespace mit einer einzelnen Event Hub-Instanz erstellt und das Capture-Feature für die Event Hub-Instanz aktiviert. Der Artikel erklärt Ihnen, wie Sie definieren, welche Ressourcen bereitgestellt werden und wie Sie Parameter definieren, die angegeben werden, wenn die Bereitstellung ausgeführt wird. Sie können diese Vorlage für Ihre eigenen Bereitstellungen verwenden oder an Ihre Anforderungen anpassen.

Außerdem erfahren Sie in diesem Artikel, wie Sie angeben, dass Ereignisse abhängig vom gewählten Ziel entweder in Azure Storage Blobs oder in einer Azure Data Lake Store-Instanz erfasst werden sollen.

Weitere Informationen zum Erstellen von Vorlagen finden Sie unter Erstellen von Azure Resource Manager-Vorlagen. Informationen zur JSON-Syntax und zu den Eigenschaften, die in einer Vorlage verwendet werden sollen, finden Sie unter Microsoft.EventHub-Ressourcentypen.

Weitere Informationen zu Mustern und Verfahren für Benennungskonventionen für Azure-Ressourcen finden Sie unter Benennungskonventionen für Azure-Ressourcen.

Die vollständigen Vorlagen finden Sie unter den folgenden GitHub-Links:

Hinweis

Die neuesten Vorlagen finden Sie, indem Sie im Katalog Azure-Schnellstartvorlagen nach „Event Hubs“ suchen.

Wichtig

Azure Data Lake Storage Gen1 wird eingestellt. Verwenden Sie es daher nicht zum Erfassen von Ereignisdaten. Weitere Informationen finden Sie in der offiziellen Ankündigung. Wenn Sie Azure Data Lake Storage Gen1 verwenden, migrieren Sie zu Azure Data Lake Storage Gen2. Weitere Informationen finden Sie unter Azure Data Lake Storage-Migrationsrichtlinien und -muster.

Was möchten Sie bereitstellen?

Mit dieser Vorlage können Sie einen Event Hubs-Namespace mit einem Event Hub bereitstellen und Event Hubs Capture aktivieren. Mit Event Hubs Capture können Sie die Streamingdaten in Event Hubs automatisch innerhalb eines Zeit- oder Größenintervalls Ihrer Wahl an Azure Blob Storage oder Azure Data Lake Store übermitteln. Wählen Sie die folgende Schaltfläche aus, um Event Hubs Capture in Azure Storage zu aktivieren:

Bereitstellen in Azure

Wählen Sie die folgende Schaltfläche aus, um Event Hubs Capture in Azure Data Lake Store zu aktivieren:

Bereitstellen in Azure

Parameter

Mit Azure Resource Manager definieren Sie die Parameter für Werte, die Sie bei der Bereitstellung der Vorlage angeben möchten. Die Vorlage enthält einen Abschnitt namens Parameters , der alle Parameterwerte enthält. Sie sollten einen Parameter für die Werte definieren, die basierend auf dem bereitgestellten Projekt oder der Umgebung variieren, in der die Bereitstellung erfolgt. Definieren Sie keine Parameter für Werte, die sich nicht ändern. Jeder Parameterwert wird in der Vorlage verwendet, um die bereitgestellten Ressourcen zu definieren.

Die Vorlage definiert die folgenden Parameter:

eventHubNamespaceName

Der Name des zu erstellenden Event Hubs-Namespace.

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

eventHubName

Der Name des im Event Hubs-Namespace erstellten Event Hubs.

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

messageRetentionInDays

Die Anzahl der Tage für die Beibehaltung von Nachrichten im Event Hub.

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

partitionCount

Die Anzahl der im Event Hub zu erstellenden Partitionen.

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

captureEnabled

Aktiviert Capture für den Event Hub.

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

captureEncodingFormat

Das Codierungsformat, das Sie zum Serialisieren der Ereignisdaten angeben.

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

captureTime

Das Zeitintervall, in dem Event Hubs Capture mit der Datenerfassung beginnt.

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

captureSize

Das Größenintervall, in dem Capture mit der Datenerfassung beginnt.

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

captureNameFormat

Das Namensformat, das von Event Hubs Capture beim Schreiben der Avro-Dateien verwendet wird. Ein Capture-Namensformat muss die Felder {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} und {Second} umfassen. Diese Felder können in beliebiger Reihenfolge sowie mit oder ohne Trennzeichen verwendet werden.

"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

Die API-Version der Vorlage.

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

Wenn Sie Azure Storage als Ziel wählen, verwenden Sie die folgenden Parameter:

destinationStorageAccountResourceId

Capture benötigt eine Azure Storage- Kontoressourcen-ID, um die Erfassung in Ihrem gewünschten Storage-Konto zu aktivieren.

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

blobContainerName

Der BLOB-Container, in dem die Ereignisdaten erfasst werden sollen.

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

subscriptionId

Abonnement-ID für den Event Hubs-Namespace und für Azure Data Lake Store. Beide Ressourcen müssen sich unter der gleichen Abonnement-ID befinden.

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

dataLakeAccountName

Der Azure Data Lake Store-Name für die erfassten Ereignisse.

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

dataLakeFolderPath

Der Zielordnerpfad für die erfassten Ereignisse. Dieser Pfad ist der Ordner in Ihrer Data Lake Store-Instanz, in den die Ereignisse während des Erfassungsvorgangs abgelegt werden. Informationen zum Festlegen von Berechtigungen für diesen Ordner finden Sie unter Verwenden von Azure Data Lake Store zum Erfassen von Daten von Event Hubs.

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

Azure Storage oder Azure Data Lake Storage Gen 2 als Ziel

Erstellt einen Namespace vom Typ Microsoft.EventHub/Namespaces mit einem Event Hub und aktiviert außerdem Capture in Azure Blob Storage oder 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')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

Befehle zum Ausführen der Bereitstellung

Um die Ressourcen in Azure bereitzustellen, müssen Sie bei Ihrem Azure-Konto angemeldet sein und das Azure Resource Manager-Modul verwenden. Informationen zum Verwenden des Azure-Ressourcen-Managers mit Azure PowerShell oder der Azure-Befehlszeilenschnittstelle finden Sie hier:

Bei den folgenden Beispielen wird davon ausgegangen, dass Sie in Ihrem Konto bereits über eine Ressourcengruppe mit dem angegebenen Namen verfügen.

PowerShell

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Stellen Sie Ihre Vorlage bereit, um Event Hubs Capture mit Azure Storage als Ziel zu aktivieren:

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

Stellen Sie Ihre Vorlage bereit, um Event Hubs Capture mit Azure Data Lake Store als Ziel zu aktivieren:

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 Ziel:

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 Ziel:

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

Nächste Schritte

Sie können Event Hubs Capture auch über das Azure-Portal konfigurieren. Weitere Informationen finden Sie unter Aktivieren von Event Hubs Capture über das Azure-Portal.

Weitere Informationen zu Event Hubs finden Sie unter den folgenden Links: