Usare PowerShell per gestire le risorse Hub eventiUse PowerShell to manage Event Hubs resources

Microsoft Azure PowerShell è un ambiente di scripting che può essere usato per controllare e automatizzare la distribuzione e la gestione dei servizi di Azure.Microsoft Azure PowerShell is a scripting environment that you can use to control and automate the deployment and management of Azure services. Questo articolo descrive come usare il modulo PowerShell di Resource Manager di Hub eventi per il provisioning e la gestione di entità di Hub eventi, come spazi dei nomi, singoli hub eventi e gruppi di consumer, tramite una console o uno script locale di Azure PowerShell.This article describes how to use the Event Hubs Resource Manager PowerShell module to provision and manage Event Hubs entities (namespaces, individual event hubs, and consumer groups) using a local Azure PowerShell console or script.

È anche possibile gestire risorse Hub eventi usando i modelli di Azure Resource Manager.You can also manage Event Hubs resources using Azure Resource Manager templates. Per altre informazioni vedere l'articolo Creare uno spazio dei nomi dell'hub eventi con Hub eventi e un gruppo di consumer usando un modello di Azure Resource Manager.For more information, see the article Create an Event Hubs namespace with event hub and consumer group using an Azure Resource Manager template.

PrerequisitiPrerequisites

Prima di iniziare, è necessario disporre di quanto segue:Before you begin, you'll need the following:

Attività inizialiGet started

Il primo passaggio consiste nell'usare PowerShell per accedere all'account Azure e alla sottoscrizione di Azure.The first step is to use PowerShell to log in to your Azure account and Azure subscription. Seguire le istruzioni in Get started with Azure PowerShell cmdlets (Introduzione ai cmdlet di Azure PowerShell) per accedere al proprio account Azure, quindi recuperare e accedere alle risorse nella sottoscrizione di Azure.Follow the instructions in Get started with Azure PowerShell cmdlets to log in to your Azure account, then retrieve and access the resources in your Azure subscription.

Eseguire il provisioning di uno spazio dei nomi di Hub eventiProvision an Event Hubs namespace

Quando si usano gli spazi dei nomi di hub eventi, è possibile usare i cmdlet Get-AzureRmEventHubNamespace, New-AzureRmEventHubNamespace, Remove-AzureRmEventHubNamespace e Set-AzureRmEventHubNamespace.When working with Event Hubs namespaces, you can use the Get-AzureRmEventHubNamespace, New-AzureRmEventHubNamespace, Remove-AzureRmEventHubNamespace, and Set-AzureRmEventHubNamespace cmdlets.

Questo esempio crea alcune variabili locali nello script: $Namespace e $Location.This example creates a few local variables in the script; $Namespace and $Location.

  • $Namespace è il nome dello spazio dei nomi dell'Hub eventi che si vuole usare.$Namespace is the name of the Event Hubs namespace with which we want to work.
  • $Location identifica il data center in cui si eseguirà il provisioning dello spazio dei nomi.$Location identifies the data center in which will we provision the namespace.
  • $CurrentNamespace archivia lo spazio dei nomi di riferimento che viene recuperato (o creato).$CurrentNamespace stores the reference namespace that we retrieve (or create).

In uno script effettivo, $Namespace e $Location possono essere passati come parametri.In an actual script, $Namespace and $Location can be passed as parameters.

Questa parte dello script esegue le operazioni seguenti:This part of the script does the following:

  1. Tenta di recuperare uno spazio dei nomi dell'Hub eventi con il nome specificato.Attempts to retrieve an Event Hubs namespace with the specified name.
  2. Se lo spazio dei nomi viene trovato, viene segnalato ciò che viene trovato.If the namespace is found, it reports what was found.
  3. Se lo spazio dei nomi non viene trovato, viene creato lo spazio dei nomi e quindi viene recuperato lo spazio dei nomi appena creato.If the namespace is not found, it creates the namespace and then retrieves the newly created namespace.

    # Query to see if the namespace currently exists
    $CurrentNamespace = Get-AzureRMEventHubNamespace -ResourceGroupName $ResGrpName -NamespaceName $Namespace
    
    # Check if the namespace already exists or needs to be created
    if ($CurrentNamespace)
    {
        Write-Host "The namespace $Namespace already exists in the $Location region:"
        # Report what was found
        Get-AzureRMEventHubNamespace -ResourceGroupName $ResGrpName -NamespaceName $Namespace
    }
    else
    {
        Write-Host "The $Namespace namespace does not exist."
        Write-Host "Creating the $Namespace namespace in the $Location region..."
        New-AzureRmEventHubNamespace -ResourceGroupName $ResGrpName -NamespaceName $Namespace -Location $Location
        $CurrentNamespace = Get-AzureRMEventHubNamespace -ResourceGroupName $ResGrpName -NamespaceName $Namespace
        Write-Host "The $Namespace namespace in Resource Group $ResGrpName in the $Location region has been successfully created."
    }
    

Creare un hub eventiCreate an event hub

Per creare un hub eventi, eseguire un controllo dello spazio dei nomi usando lo script della sezione precedente.To create an event hub, perform a namespace check using the script in the previous section. Usare quindi il cmdlet New-AzureRmEventHub per creare l'hub eventi:Then, use the New-AzureRmEventHub cmdlet to create the event hub:

# Check if event hub already exists
$CurrentEH = Get-AzureRMEventHub -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName

if($CurrentEH)
{
    Write-Host "The event hub $EventHubName already exists in the $Location region:"
    # Report what was found
    Get-AzureRmEventHub -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName
}
else
{
    Write-Host "The $EventHubName event hub does not exist."
    Write-Host "Creating the $EventHubName event hub in the $Location region..."
    New-AzureRmEventHub -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -Location $Location -MessageRetentionInDays 3
    $CurrentEH = Get-AzureRmEventHub -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName
    Write-Host "The $EventHubName event hub in Resource Group $ResGrpName in the $Location region has been successfully created."
}

Creare un gruppo di consumerCreate a consumer group

Per creare un gruppo di consumer in un hub eventi, eseguire il controllo dello spazio dei nomi e dell'hub eventi usando gli script della sezione precedente.To create a consumer group within an event hub, perform the namespace and event hub checks using the scripts in the previous section. Usare quindi il cmdlet New-AzureRmEventHubConsumerGroup per creare il gruppo di consumer all'interno dell'hub eventi.Then, use the New-AzureRmEventHubConsumerGroup cmdlet to create the consumer group within the event hub. Ad esempio: For example:

# Check if consumer group already exists
$CurrentCG = Get-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -ConsumerGroupName $ConsumerGroupName -ErrorAction Ignore

if($CurrentCG)
{
    Write-Host "The consumer group $ConsumerGroupName in event hub $EventHubName already exists in the $Location region:"
    # Report what was found
    Get-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName
}
else
{
    Write-Host "The $ConsumerGroupName consumer group does not exist."
    Write-Host "Creating the $ConsumerGroupName consumer group in the $Location region..."
    New-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -ConsumerGroupName $ConsumerGroupName
    $CurrentCG = Get-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName
    Write-Host "The $ConsumerGroupName consumer group in event hub $EventHubName in Resource Group $ResGrpName in the $Location region has been successfully created."
}

Impostare i metadati dell'utenteSet user metadata

Dopo avere eseguito gli script nelle sezioni precedenti, è possibile usare il cmdlet Set-AzureRmEventHubConsumerGroup per aggiornare le proprietà di un gruppo di consumer, come nell'esempio seguente:After executing the scripts in the preceding sections, you can use the Set-AzureRmEventHubConsumerGroup cmdlet to update the properties of a consumer group, as in the following example:

# Set some user metadata on the CG
Write-Host "Setting the UserMetadata field to 'Testing'"
Set-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -ConsumerGroupName $ConsumerGroupName -UserMetadata "Testing"
# Show result
Get-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -ConsumerGroupName $ConsumerGroupName

Rimuovere un hub eventiRemove event hub

Per rimuovere gli hub eventi creati, è possibile usare i cmdlet Remove-* come nell'esempio seguente:To remove the event hubs you created, you can use the Remove-* cmdlets, as in the following example:

# Clean up
Remove-AzureRmEventHubConsumerGroup -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName -ConsumerGroupName $ConsumerGroupName
Remove-AzureRmEventHub -ResourceGroupName $ResGrpName -NamespaceName $Namespace -EventHubName $EventHubName
Remove-AzureRmEventHubNamespace -ResourceGroupName $ResGrpName -NamespaceName $Namespace

Passaggi successiviNext steps