Creare uno spazio dei nomi con l'hub eventi e abilitare l'acquisizione usando un modello

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. L'articolo descrive come definire le risorse da distribuire e i parametri specificati quando viene eseguita la distribuzione. È possibile usare questo modello per le proprie distribuzioni o personalizzarlo in base alle esigenze.

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.

Per altre informazioni sulla creazione dei modelli, vedere Creazione di modelli di Azure Resource Manager. Per la sintassi e le proprietà JSON da usare in un modello, vedere i tipi di risorsa Microsoft.EventHub.

Per altre informazioni su procedure e modelli relativi alle convenzioni di denominazione, vedere l'articolo relativo alle convenzioni di denominazione delle risorse Azure.

Per i modelli completi, selezionare i collegamenti GitHub seguenti:

Nota

Per verificare gli ultimi modelli, vedere la raccolta Modelli di avvio rapido di Azure e cercare Hub eventi.

Importante

Azure Data Lake Storage Gen1 viene ritirato, quindi non usarlo per l'acquisizione dei dati degli eventi. Per altre informazioni, consultare l'annuncio ufficiale. Se si usa Azure Data Lake Storage Gen1, eseguire la migrazione ad Azure Data Lake Storage Gen2. Per altre informazioni, vedere Linee guida e modelli di migrazione di Azure Data Lake Storage.

Distribuzione

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. 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. Selezionare il pulsante seguente per abilitare Acquisizione di Hub eventi in Archiviazione di Azure:

Distribuzione in Azure

Selezionare il pulsante seguente per abilitare Acquisizione di Hub eventi in Azure Data Lake Store:

Distribuzione in Azure

Parametri

Gestione risorse di Azure permette di definire i parametri per i valori da specificare durante la distribuzione del modello. Il modello include una sezione denominata Parameters che contiene tutti i valori dei parametri. È necessario definire un parametro per i valori che variano in base al progetto in cui si sta distribuendo o in base all'ambiente in cui si esegue la distribuzione. Non definire i parametri per i valori che rimangono sempre uguali. Ogni valore di parametro nel modello viene usato per definire le risorse distribuite.

Il modello definisce i parametri seguenti.

eventHubNamespaceName

Nome dello spazio dei nomi di Hub eventi da creare.

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

eventHubName

Nome dell'hub eventi creato nello spazio dei nomi di Hub eventi.

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

messageRetentionInDays

Numero di giorni di conservazione dei messaggi nell'hub eventi.

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

partitionCount

Numero di partizioni da creare nell'hub eventi.

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

captureEnabled

Abilita la funzionalità di acquisizione nell'hub eventi.

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

captureEncodingFormat

Il formato di codifica specificato per serializzare i dati dell'evento.

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

captureTime

Intervallo di tempo in cui la funzionalità di acquisizione di Hub eventi avvia l'acquisizione dei dati.

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

captureSize

Intervallo di dimensioni in cui la funzionalità di acquisizione avvia l'acquisizione dei dati.

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

captureNameFormat

Formato di nome usato dalla funzionalità di acquisizione di Hub eventi per scrivere i file Avro. Il formato del nome di acquisizione deve contenere {Namespace}campi , {EventHub}{PartitionId}, {Hour}{Year}{Day}{Month}{Minute}e .{Second} Questi campi possono essere disposti in qualsiasi ordine, con o senza delimitatori.

"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

Versione API del modello.

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

destinationStorageAccountResourceId

La funzionalità di acquisizione richiede un ID risorsa dell'account di archiviazione di Azure per abilitare l'acquisizione nell'account di archiviazione desiderato.

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

blobContainerName

Contenitore BLOB in cui acquisire i dati degli eventi.

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

subscriptionId

ID sottoscrizione per lo spazio dei nomi di Hub eventi e Azure Data Lake Store. Entrambe queste risorse devono essere incluse nello stesso ID sottoscrizione.

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

dataLakeAccountName

Nome di Azure Data Lake Store per gli eventi acquisiti.

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

dataLakeFolderPath

Percorso della cartella di destinazione per gli eventi acquisiti. Questo percorso è la cartella in Data Lake Store in cui vengono inseriti gli eventi durante l'operazione di acquisizione. Per impostare le autorizzazioni per questa cartella, vedere Usare Azure Data Lake Store per acquisire dati da Hub eventi.

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

Archiviazione di Azure o Azure Data Lake Storage Gen2 come destinazione

Crea uno spazio dei nomi di tipo Microsoft.EventHub/Namespaces, con un hub eventi e consente anche l'acquisizione per Archiviazione BLOB di Azure o 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')]"
                }
              }
            }
          }

        }
      ]
    }
  ]

Comandi per eseguire la distribuzione

Per distribuire le risorse in Azure, è necessario aver eseguito l'accesso all'account Azure e usare il modulo Azure Resource Manager. Per altre informazioni su come usare Gestione risorse di Azure con Azure PowerShell o l'interfaccia della riga di comando di Azure, vedere:

Gli esempi seguenti presuppongono che nell'account sia già stato creato un gruppo di risorse con il nome specificato.

PowerShell

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Distribuire il modello per abilitare la funzionalità di Hub eventi per l'acquisizione in Archiviazione di Azure:

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

Distribuire il modello per abilitare la funzionalità di Hub eventi per l'acquisizione 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

Interfaccia della riga di comando di Azure

Archivio BLOB di Azure come destinazione:

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 come destinazione:

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

Passaggi successivi

È anche possibile configurare la funzionalità di acquisizione di Hub eventi tramite il portale di Azure. Per altre informazioni, vedere Abilitare Acquisizione di Hub eventi usando il portale di Azure.

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti: