Creare uno spazio dei nomi di Hub eventi con un hub eventi e abilitare l'acquisizione con un modello di Azure Resource ManagerCreate an Event Hubs namespace with an event hub and enable Capture using an Azure Resource Manager template

Questo articolo illustra come usare un modello di Azure Resource Manager che crea uno spazio dei nomi di Hub eventi con un'istanza di hub eventi e abilita anche la funzionalità di acquisizione nell'hub eventi.This article shows how to use an Azure Resource Manager template that creates an Event Hubs namespace, with one event hub instance, and also enables the Capture feature on the event hub. L'articolo descrive come definire le risorse da distribuire e i parametri specificati quando viene eseguita la distribuzione.The article describes how to define which resources are deployed, and how to define parameters that are specified when the deployment is executed. È possibile usare questo modello per le proprie distribuzioni o personalizzarlo in base alle esigenze.You can use this template for your own deployments, or customize it to meet your requirements.

Questo articolo illustra anche come specificare l'acquisizione degli eventi in BLOB del servizio di archiviazione di Azure o in un'istanza di Azure Data Lake Store, in base alla destinazione scelta.This article also shows how to specify that events are captured into either Azure Storage Blobs or an Azure Data Lake Store, based on the destination you choose.

Per altre informazioni sulla creazione dei modelli, vedere Creazione di modelli di Azure Resource Manager.For more information about creating templates, see Authoring Azure Resource Manager templates.

Per altre informazioni su procedure e modelli relativi alle convenzioni di denominazione, vedere l'articolo relativo alle convenzioni di denominazione delle risorse Azure.For more information about patterns and practices for Azure Resources naming conventions, see Azure Resources naming conventions.

Per i modelli completi, fare clic sui collegamenti a GitHub seguenti:For the complete templates, click the following GitHub links:

Nota

Per verificare gli ultimi modelli, vedere la raccolta Modelli di avvio rapido di Azure e cercare Hub eventi.To check for the latest templates, visit the Azure Quickstart Templates gallery and search for Event Hubs.

DistribuzioneWhat will you deploy?

Questo modello consente di distribuire uno spazio dei nomi di Hub eventi con un hub eventi nonché di abilitare la funzionalità di acquisizione di Hub eventi.With this template, you deploy an Event Hubs namespace with an event hub, and also enable Event Hubs Capture.

Hub eventi è un servizio di elaborazione di eventi che viene usato per fornire eventi e dati di telemetria in entrata in Azure su larga scala, con bassa latenza ed elevata affidabilità.Event Hubs is an event processing service used to provide event and telemetry ingress to Azure at massive scale, with low latency and high reliability. La funzionalità di acquisizione di Hub eventi consente di distribuire automaticamente i dati di streaming di Hub eventi in un archivio BLOB di Azure o in Azure Data Lake Store, entro un intervallo di tempo o di dimensioni specificato.Event Hubs Capture enables you to automatically deliver the streaming data in Event Hubs to Azure Blob storage or Azure Data Lake Store, within a specified time or size interval of your choosing.

Fare clic sul pulsante seguente per abilitare la funzionalità di Hub eventi per l'acquisizione in Archiviazione di Azure:Click the following button to enable Event Hubs Capture into Azure Storage:

Distribuzione in AzureDeploy to Azure

Fare clic sul pulsante seguente per abilitare la funzionalità di Hub eventi per l'acquisizione in Azure Data Lake Store:Click the following button to enable Event Hubs Capture into Azure Data Lake Store:

Distribuzione in AzureDeploy to Azure

ParametriParameters

Gestione risorse di Azure permette di definire i parametri per i valori da specificare durante la distribuzione del modello.With Azure Resource Manager, you define parameters for values you want to specify when the template is deployed. Il modello include una sezione denominata Parameters che contiene tutti i valori dei parametri.The template includes a section called Parameters that contains all the parameter values. È necessario definire un parametro per i valori che variano in base al progetto distribuito o all'ambiente in cui viene distribuito il progetto.You should define a parameter for those values that vary based on the project you are deploying or based on the environment you are deploying to. Non definire i parametri per i valori che rimangono invariati.Do not define parameters for values that always stay the same. Ogni valore di parametro nel modello viene usato per definire le risorse distribuite.Each parameter value is used in the template to define the resources that are deployed.

Il modello definisce i parametri seguenti.The template defines the following parameters.

eventHubNamespaceNameeventHubNamespaceName

Nome dello spazio dei nomi di Hub eventi da creare.The name of the Event Hubs namespace to create.

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

eventHubNameeventHubName

Nome dell'hub eventi creato nello spazio dei nomi di Hub eventi.The name of the event hub created in the Event Hubs namespace.

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

messageRetentionInDaysmessageRetentionInDays

Numero di giorni di conservazione dei messaggi nell'hub eventi.The number of days to retain the messages in the event hub.

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

partitionCountpartitionCount

Numero di partizioni da creare nell'hub eventi.The number of partitions to create in the event hub.

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

captureEnabledcaptureEnabled

Abilita la funzionalità di acquisizione nell'hub eventi.Enable Capture on the event hub.

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

captureEncodingFormatcaptureEncodingFormat

Il formato di codifica specificato per serializzare i dati dell'evento.The encoding format you specify to serialize the event data.

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

captureTimecaptureTime

Intervallo di tempo in cui la funzionalità di acquisizione di Hub eventi avvia l'acquisizione dei dati.The time interval in which Event Hubs Capture starts capturing the data.

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

captureSizecaptureSize

Intervallo di dimensioni in cui la funzionalità di acquisizione avvia l'acquisizione dei dati.The size interval at which Capture starts capturing the data.

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

captureNameFormatcaptureNameFormat

Formato di nome usato dalla funzionalità di acquisizione di Hub eventi per scrivere i file Avro.The name format used by Event Hubs Capture to write the Avro files. Si noti che il formato del nome file di acquisizione deve contenere i campi {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} e {Second}.Note that a Capture name format must contain {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute}, and {Second} fields. Questi campi possono essere disposti in qualsiasi ordine, con o senza delimitatori.These can be arranged in any order, with or without delimiters.

"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}"
      }
    }

apiVersionapiVersion

Versione API del modello.The API version of the template.

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

Se si sceglie Archiviazione di Azure come destinazione, usare i parametri seguenti.Use the following parameters if you choose Azure Storage as your destination.

destinationStorageAccountResourceIddestinationStorageAccountResourceId

La funzionalità di acquisizione richiede un ID risorsa dell'account di archiviazione di Azure per abilitare l'acquisizione nell'account di archiviazione desiderato.Capture requires an Azure Storage account resource ID to enable capturing to your desired Storage account.

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

blobContainerNameblobContainerName

Contenitore BLOB in cui acquisire i dati degli eventi.The blob container in which to capture your event data.

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

Se si sceglie Azure Data Lake Store come destinazione, usare i parametri seguenti.Use the following parameters if you choose Azure Data Lake Store as your destination. È necessario impostare le autorizzazioni per il percorso di Data Lake Store in cui si vuole acquisire l'evento.You must set permissions on your Data Lake Store path, in which you want to Capture the event. Per impostare le autorizzazioni, vedere questo articolo.To set permissions, see this article.

subscriptionIdsubscriptionId

ID sottoscrizione per lo spazio dei nomi di Hub eventi e Azure Data Lake Store.Subscription ID for the Event Hubs namespace and Azure Data Lake Store. Entrambe queste risorse devono essere incluse nello stesso ID sottoscrizione.Both these resources must be under the same subscription ID.

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

dataLakeAccountNamedataLakeAccountName

Nome di Azure Data Lake Store per gli eventi acquisiti.The Azure Data Lake Store name for the captured events.

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

dataLakeFolderPathdataLakeFolderPath

Percorso della cartella di destinazione per gli eventi acquisiti. Si tratta della cartella in Data Lake Store a cui verrà eseguito il push degli eventi dall'acquisizione.The destination folder path for the captured events.This is the folder in your Data Lake Store to which the events will be pushed from Capture. Per l'impostazione delle autorizzazioni per questa cartella, vedere l'articolo Usare Azure Data Lake Store per acquisire dati da Hub eventiFor setting permissions on this folder, please reder to this article Use Azure Data Lake Store to capture data from Event Hubs

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

Risorse da distribuire per usare Archiviazione di Azure come destinazione per gli eventi acquisitiResources to deploy for Azure Storage as destination to captured events

Crea uno spazio dei nomi di tipo EventHubs con un hub eventi e abilita anche l'acquisizione in un archivio BLOB di Azure.Creates a namespace of type EventHubs, with one event hub, and also enables Capture to 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",
              "encoding": "[parameters('captureEncodingFormat')]",
              "intervalInSeconds": "[parameters('captureTime')]",
              "sizeLimitInBytes": "[parameters('captureSize')]",
              "destination": {
                "name": "EventHubArchive.AzureBlockBlob",
                "properties": {
                  "storageAccountResourceId": "[parameters('destinationStorageAccountResourceId')]",
                  "blobContainer": "[parameters('blobContainerName')]",
                  "archiveNameFormat": "[parameters('captureNameFormat')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

Risorse da distribuire per usare Azure Data Lake Store come destinazioneResources to deploy for Azure Data Lake Store as destination

Crea uno spazio dei nomi di tipo EventHubs con un hub eventi e abilita anche l'acquisizione in Azure Data Lake Store.Creates a namespace of type EventHubs, with one event hub, and also enables Capture to 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",
                            "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')]"
                                }
                            }
                        }
                    }
                }
            ]
        }
    ]

Comandi per eseguire la distribuzioneCommands to run deployment

Per distribuire le risorse in Azure, è necessario aver eseguito l'accesso all'account Azure e usare il modulo Gestione risorse di Azure.To deploy the resources to Azure, you must be logged in to your Azure account and you must use the Azure Resource Manager module. Per altre informazioni su come usare Gestione risorse di Azure con Azure PowerShell o l'interfaccia della riga di comando di Azure, vedere:To learn about using Azure Resource Manager with either Azure PowerShell or Azure CLI, see:

Gli esempi seguenti presuppongono che nell'account sia già stato creato un gruppo di risorse con il nome specificato.The following examples assume you already have a resource group in your account with the specified name.

PowerShellPowerShell

Distribuire il modello per abilitare la funzionalità di Hub eventi per l'acquisizione in Archiviazione di Azure:Deploy your template to enable Event Hubs Capture into Azure Storage:

New-AzureRmResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-eventhubs-create-namespace-and-enable-capture/azuredeploy.json

Distribuire il modello per abilitare la funzionalità di Hub eventi per l'acquisizione in Azure Data Lake Store:Deploy your template to enable Event Hubs Capture into Azure Data Lake Store:

New-AzureRmResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json

Interfaccia della riga di comando di AzureAzure CLI

Scelta di un archivio BLOB di Azure come destinazione:Choosing Azure Blob Storage as destination:

azure config mode arm

azure group deployment create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-eventhubs-create-namespace-and-enable-capture/azuredeploy.json][]

Scelta di Azure Data Lake Store come destinazione:Choosing Azure Data Lake Store as destination:

azure config mode arm

azure group deployment create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/201-eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json][]

Passaggi successiviNext steps

È anche possibile configurare la funzionalità di acquisizione di Hub eventi tramite il portale di Azure.You can also configure Event Hubs Capture via the Azure portal. Per altre informazioni, vedere Abilitare Acquisizione di Hub eventi usando il portale di Azure.For more information, see Enable Event Hubs Capture using the Azure portal.

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti:You can learn more about Event Hubs by visiting the following links: