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:
- Creare un hub eventi e abilitare l'acquisizione nel modello di archiviazione
- Creare un hub eventi e abilitare l'acquisizione nel modello di Azure Data Lake Store
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:
Selezionare il pulsante seguente per abilitare Acquisizione di Hub eventi in Azure Data Lake Store:
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 delimiters. 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:
- Gestire le risorse di Azure tramite Azure PowerShell
- Gestire le risorse di Azure tramite l'interfaccia della riga di comando di Azure.
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: