Delen via


Abonneren op gebeurtenissen voor een resourcegroep en filteren op een resource met PowerShell

Met dit script maakt u een Event Grid-abonnement op de gebeurtenissen voor een resourcegroep. Er wordt een filter gebruikt om alleen gebeurtenissen op te halen voor een bepaalde resource in de resourcegroep.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

Voorbeeldscript - stabiel

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

# Provide an endpoint for handling the events. Must be formatted "https://your-endpoint-URL"
$myEndpoint = "<your-endpoint-URL>"

# Provide the name of the resource group to create. It will contain the network security group.
# You will subscribe to events for this resource group.
$myResourceGroup = "<resource-group-name>"

# Provide a name for the network security group to create.
$nsgName = "<your-nsg-name>"

# Create the resource group
New-AzResourceGroup -Name $myResourceGroup -Location westus2

# Create a network security group. You will filter events to only those that are related to this resource.
New-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $myResourceGroup  -Location westus2

# Get the resource ID to filter events. The name of the network security group must not be the same as the other resource names.
$resourceId = (Get-AzResource -ResourceName $nsgName -ResourceGroupName $myResourceGroup).ResourceId

# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
New-AzEventGridSubscription `
  -Endpoint $myEndpoint `
  -EventSubscriptionName demoSubscriptionToResourceGroup `
  -ResourceGroupName $myResourceGroup `
  -SubjectBeginsWith $resourceId

Voorbeeldscript - preview-module

Belangrijk

Als u deze Azure-functie van PowerShell wilt gebruiken, moet de AzureRM-module zijn geïnstalleerd. Dit is een oudere module die alleen beschikbaar is voor Windows PowerShell 5.1, dat geen nieuwe functies meer ontvangt. De modules Az en AzureRM zijn niet compatibel als ze voor dezelfde versies van PowerShell worden geïnstalleerd. Als u beide versies nodig hebt:

  1. De Az-module verwijderen vanuit een PowerShell 5.1-sessie.
  2. De AzureRM-module installeren vanuit een PowerShell 5.1-sessie.
  3. PowerShell Core 6.x of nieuwer downloaden en installeren.
  4. De Az-module installeren in een PowerShell Core-sessie.

Voor het voorbeeldscript van de preview is de Event Grid-module vereist. Voer Install-Module -Name AzureRM.EventGrid -AllowPrerelease -Force -Repository PSGallery uit om deze te installeren

# You must have the latest version of the Event Grid PowerShell module.
# To install:
# Install-Module -Name AzureRM.EventGrid -AllowPrerelease -Force -Repository PSGallery

# Provide an endpoint for handling the events. Must be formatted "https://your-endpoint-URL"
$myEndpoint = "<your-endpoint-URL>"

# Provide the name of the custom topic to create
$topicName = "<your-topic-name>"

# Provide the name of the resource group to create. It will contain the custom topic.
$myResourceGroup= "<resource-group-name>"

# Create the resource group
New-AzResourceGroup -Name $myResourceGroup -Location westus2

# Create custom topic
New-AzEventGridTopic -ResourceGroupName $myResourceGroup -Location westus2 -Name $topicName

# Get resource ID of custom topic
$topicid = (Get-AzEventGridTopic -ResourceGroupName $myResourceGroup -Name $topicName).Id

# Set the operator type, field and values for the filtering
$AdvFilter1=@{operator="StringIn"; key="Data.color"; Values=@('blue', 'red', 'green')}

# Subscribe to the custom topic. Filter based on a value in the event data.
New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName demoSubWithFilter `
  -Endpoint $myEndpoint `
  -AdvancedFilter @($AdvFilter1)

Uitleg van het script

In dit script wordt de volgende opdracht gebruikt om het abonnement op de gebeurtenis te maken. Elke opdracht in de tabel is een koppeling naar opdracht-specifieke documentatie.

Opdracht Opmerkingen
New-AzEventGridSubscription Hiermee wordt een Event Grid-abonnement gemaakt.

Volgende stappen