Skapa en namnrymd med händelsehubb och aktivera avbildning med hjälp av en mall

Den här artikeln visar hur du använder en Azure Resource Manager-mall som skapar ett namnområde för Event Hubs med en händelsehubbinstans och även aktiverar avbildningsfunktionen på händelsehubben. Artikeln beskriver hur du definierar vilka resurser som distribueras och hur du definierar parametrar som anges när distributionen körs. Du kan använda den här mallen för dina egna distributioner eller anpassa den så att den uppfyller dina krav.

Den här artikeln visar även hur du anger att händelser ska samlas in i Azure Storage Blobs eller en Azure Data Lake Store, utifrån det mål som du väljer.

Mer information om att skapa mallar finns i Redigera Azure Resource Manager-mallar. Den JSON-syntax och de egenskaper som ska användas i en mall finns i avsnittet om Microsoft.EventGrid-resurstyper.

Mer information om mönster och praxis för namnkonventioner för Azure-resurser finns i Azure Resources Naming Conventions (Namnkonventioner för Azure-resurser).

För de fullständiga mallarna väljer du följande GitHub-länkar:

Kommentar

Om du vill söka efter de senaste mallarna kan du gå till galleriet Azure-snabbstartsmallar och söka efter Event Hubs.

Viktigt!

Azure Data Lake Storage Gen1 har dragits tillbaka, så använd den inte för att samla in händelsedata. Mer information finns i det officiella meddelandet. Om du använder Azure Data Lake Storage Gen1 migrerar du till Azure Data Lake Storage Gen2. Mer information finns i Riktlinjer och mönster för Migrering i Azure Data Lake Storage.

Vad vill du distribuera?

Med den här mallen distribuerar du ett namnområde för Event Hubs med en händelsehubb och aktiverar även Event Hubs Capture. Med Event Hubs Capture kan du automatiskt leverera strömmande data i Event Hubs till Azure Blob Storage eller Azure Data Lake Store inom en angiven tid eller ett visst storleksintervall som du kan välja själv. Välj följande knapp för att aktivera Event Hubs Capture i Azure Storage:

Distribuera till Azure

Välj följande knapp för att aktivera Event Hubs Capture i Azure Data Lake Store:

Distribuera till Azure

Parametrar

Med Azure Resource Manager kan du definiera parametrar för värden som du vill ange när mallen distribueras. Mallen innehåller ett avsnitt som heter Parameters och som innehåller alla parametervärden. Du bör definiera en parameter för de värden som varierar beroende på vilket projekt du distribuerar eller baserat på miljön du distribuerar till. Definiera inte parametrar för värden som alltid förblir desamma. Varje parametervärde används i mallen för att definiera de resurser som distribueras.

Mallen definierar följande parametrar.

eventHubNamespaceName

Namnet på namnområdet för Event Hubs som ska skapas.

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

eventHubName

Namnet på händelsehubben som skapats i namnområdet för Event Hubs.

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

messageRetentionInDays

Antalet dagar som meddelanden lagras i händelsehubben.

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

partitionCount

Antalet partitioner som ska skapas i händelsehubben.

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

captureEnabled

Aktiverar avbildning på händelsehubben.

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

captureEncodingFormat

Kodningsformatet som du anger för att serialisera händelsedata.

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

captureTime

Det tidsintervall inom vilket Event Hubs Capture börjar samla in data.

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

captureSize

Det storleksintervall inom vilket avbildningsfunktionen börjar samla in data.

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

captureNameFormat

Det namnformat som används av Event Hubs Capture för att skriva Avro-filer. Avbildningsnamnformatet måste innehålla {Namespace}fälten , {EventHub}, {PartitionId}, {Year}, {Month}{Day}, {Hour}, {Minute}och {Second} . Dessa fält kan ordnas i valfri ordning, med eller utan avgränsare.

"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

API-versionen av mallen.

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

Använd följande parametrar om du väljer Azure Storage som mål.

destinationStorageAccountResourceId

För avbildningsfunktionen krävs ett resurs-ID för ett Azure Storage-konto för att aktivera avbildning till ditt önskade Storage-konto.

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

blobContainerName

Blobcontainern dit du kan avbilda dina händelsedata.

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

subscriptionId

Prenumerations-ID för namnområdet för Event Hubs och Azure Data Lake Store. Båda dessa resurser måste vara under samma prenumerations-ID.

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

dataLakeAccountName

Azure Data Lake Store-namnet för de avbildade händelserna.

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

dataLakeFolderPath

Sökvägen till målmappen för de avbildade händelserna. Den här sökvägen är den mapp i Data Lake Store som händelserna skickas till under avbildningsåtgärden. Se Använda Data Lake Store för att hämta data från Event Hubs för att ange behörigheter för den här mappen.

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

Azure Storage eller Azure Data Lake Storage Gen 2 som mål

Skapar ett namnområde av typen Microsoft.EventHub/Namespaces, med en händelsehubb och aktiverar även Capture to Azure Blob Storage eller 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')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

Kommandon för att köra distributionen

Om du vill distribuera resurserna till Azure måste du vara inloggad på ditt Azure-konto och använda Azure Resource Manager-modulen. Information om hur du använder Azure Resource Manager med Azure PowerShell eller Azure CLI hittar du här:

Följande exempel förutsätter att du redan har en resursgrupp i ditt konto med det angivna namnet.

PowerShell

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Distribuera din mall för att aktivera Event Hubs Capture i 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

Distribuera din mall för att aktivera Event Hubs Capture i 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 som mål:

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 som mål:

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ästa steg

Du kan även konfigurera Event Hubs Capture via Azure Portal. Mer information finns i Enable Event Hubs Capture using the Azure portal (Aktivera Event Hubs Capture med hjälp av Azure Portal).

Du kan lära dig mer om Event Hubs genom att gå till följande länkar: