Események szűrése az Event Gridhez
Ez a cikk bemutatja, hogyan szűrheti az eseményeket egy Event Grid-előfizetés létrehozásakor. Az eseményszűrési lehetőségekről további információt az Event Grid-előfizetések eseményszűrésének ismertetése című témakörben talál.
Szűrés eseménytípus szerint
Event Grid-előfizetés létrehozásakor megadhatja, hogy mely eseménytípusokat küldje el a végpontnak. Az ebben a szakaszban szereplő példák esemény-előfizetéseket hoznak létre egy erőforráscsoporthoz, de korlátozzák azokat az eseményeket, amelyekbe a rendszer elküldi Microsoft.Resources.ResourceWriteFailure
őket Microsoft.Resources.ResourceWriteSuccess
. Ha nagyobb rugalmasságra van szüksége az események eseménytípusok szerinti szűrése során, tekintse meg az operátorok és adatok szerinti szűrést.
Azure PowerShell
PowerShell esetén használja a -IncludedEventType
paramétert az előfizetés létrehozásakor.
$includedEventTypes = "Microsoft.Resources.ResourceWriteFailure", "Microsoft.Resources.ResourceWriteSuccess"
New-AzEventGridSubscription `
-EventSubscriptionName demoSubToResourceGroup `
-ResourceGroupName myResourceGroup `
-Endpoint <endpoint-URL> `
-IncludedEventType $includedEventTypes
Azure CLI
Az Azure CLI-hez használja a paramétert --included-event-types
. Az alábbi példa az Azure CLI-t használja Bash-rendszerhéjban:
includedEventTypes="Microsoft.Resources.ResourceWriteFailure Microsoft.Resources.ResourceWriteSuccess"
az eventgrid event-subscription create \
--name demoSubToResourceGroup \
--resource-group myResourceGroup \
--endpoint <endpoint-URL> \
--included-event-types $includedEventTypes
Azure Portal
Rendszertémakörhöz tartozó esemény-előfizetés létrehozásakor a legördülő listával válassza ki az eseménytípusokat az alábbi képen látható módon.
Egy rendszertémakörhöz tartozó meglévő előfizetés esetén használja az Esemény-előfizetés lap Szűrők lapját az alábbi képen látható módon.
Egyéni témakör létrehozásakor szűrőket is megadhat az Alábbi képen látható Eseménytípus hozzáadása hivatkozás kiválasztásával.
Ha meg szeretne adni egy szűrőt egy meglévő előfizetéshez egy egyéni témakörhöz, használja a Szűrők lapot az Esemény-előfizetés lapon.
Azure Resource Manager-sablon
Resource Manager-sablon esetén használja a tulajdonságot includedEventTypes
.
"resources": [
{
"type": "Microsoft.EventGrid/eventSubscriptions",
"name": "[parameters('eventSubName')]",
"apiVersion": "2018-09-15-preview",
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectBeginsWith": "",
"subjectEndsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [
"Microsoft.Resources.ResourceWriteFailure",
"Microsoft.Resources.ResourceWriteSuccess"
]
}
}
}
]
Megjegyzés:
Ha többet szeretne megtudni ezekről a szűrőkről (eseménytípusok, tárgy és speciális), olvassa el az Event Grid-előfizetések eseményszűrésének ismertetése című témakört.
Szűrés tárgy szerint
Az eseményadatokban szűrheti a tárgy szerinti eseményeket. Megadhatja a tárgy elejéhez vagy végéhez illeszkedő értéket. Ha nagyobb rugalmasságra van szüksége az események tárgy szerinti szűrése során, olvassa el a Szűrés operátorok és adatok szerint című témakört.
A következő PowerShell-példában egy esemény-előfizetést hoz létre, amely a tárgy elejére szűr. A paraméterrel -SubjectBeginsWith
egy adott erőforrás eseményeit korlátozhatja. Egy hálózati biztonsági csoport erőforrás-azonosítóját adja át.
Azure PowerShell
$resourceId = (Get-AzResource -ResourceName demoSecurityGroup -ResourceGroupName myResourceGroup).ResourceId
New-AzEventGridSubscription `
-Endpoint <endpoint-URL> `
-EventSubscriptionName demoSubscriptionToResourceGroup `
-ResourceGroupName myResourceGroup `
-SubjectBeginsWith $resourceId
A következő PowerShell-példa létrehoz egy előfizetést egy blobtárolóhoz. Az eseményeket olyan eseményekre korlátozza, amelyek tárgya a következő lesz .jpg
: .
$storageId = (Get-AzStorageAccount -ResourceGroupName myResourceGroup -AccountName $storageName).Id
New-AzEventGridSubscription `
-EventSubscriptionName demoSubToStorage `
-Endpoint <endpoint-URL> `
-ResourceId $storageId `
-SubjectEndsWith ".jpg"
Azure CLI
A következő Azure CLI-példában egy esemény-előfizetést hoz létre, amely a tárgy elejére szűr. A paraméterrel --subject-begins-with
egy adott erőforrás eseményeit korlátozhatja. Egy hálózati biztonsági csoport erőforrás-azonosítóját adja át.
resourceId=$(az network nsg show -g myResourceGroup -n demoSecurityGroup --query id --output tsv)
az eventgrid event-subscription create \
--name demoSubscriptionToResourceGroup \
--resource-group myResourceGroup \
--endpoint <endpoint-URL> \
--subject-begins-with $resourceId
A következő Azure CLI-példa létrehoz egy előfizetést egy blobtárolóhoz. Az eseményeket olyan eseményekre korlátozza, amelyek tárgya a következő lesz .jpg
: .
storageid=$(az storage account show --name $storageName --resource-group myResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--resource-id $storageid \
--name demoSubToStorage \
--endpoint <endpoint-URL> \
--subject-ends-with ".jpg"
Azure Portal
Meglévő esemény-előfizetés esetén:
Az Esemény-előfizetés lapon válassza a Tárgyszűrés engedélyezése lehetőséget.
Adja meg az alábbi mezők egy vagy több értékének értékét: A tárgy a következővel kezdődik, és a Tárgy végződik. Az alábbi beállításokban mindkét beállítás be van jelölve.
Ha azt szeretné, hogy az esemény tárgya megegyezzen a megadott szűrők esetével, válassza a Kis- és nagybetűk megkülönböztetése jelölőnégyzetet.
Esemény-előfizetés létrehozásakor használja a Létrehozás varázsló Szűrők lapját.
Azure Resource Manager-sablon
A következő Resource Manager-sablon példában egy esemény-előfizetést hoz létre, amely a tárgy elejére szűr. A tulajdonság használatával subjectBeginsWith
egy adott erőforrás eseményeit korlátozhatja. Egy hálózati biztonsági csoport erőforrás-azonosítóját adja át.
"resources": [
{
"type": "Microsoft.EventGrid/eventSubscriptions",
"name": "[parameters('eventSubName')]",
"apiVersion": "2018-09-15-preview",
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectBeginsWith": "[resourceId('Microsoft.Network/networkSecurityGroups','demoSecurityGroup')]",
"subjectEndsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [ "All" ]
}
}
}
]
A következő Resource Manager-sablon például létrehoz egy előfizetést egy blobtárolóhoz. Az eseményeket olyan eseményekre korlátozza, amelyek tárgya a következő lesz .jpg
: .
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/providers/eventSubscriptions",
"name": "[concat(parameters('storageName'), '/Microsoft.EventGrid/', parameters('eventSubName'))]",
"apiVersion": "2018-09-15-preview",
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectEndsWith": ".jpg",
"subjectBeginsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [ "All" ]
}
}
}
]
Megjegyzés:
Ha többet szeretne megtudni ezekről a szűrőkről (eseménytípusok, tárgy és speciális), olvassa el az Event Grid-előfizetések eseményszűrésének ismertetése című témakört.
Szűrés operátorok és adatok szerint
A szűrés nagyobb rugalmassága érdekében operátorok és adattulajdonságok használatával szűrheti az eseményeket.
Feliratkozás speciális szűrőkkel
A speciális szűréshez használható operátorokról és kulcsokról további információt a Speciális szűrés című témakörben talál.
Ezek a példák létrehoznak egy egyéni témakört. Feliratkoznak az egyéni témakörre, és egy érték alapján szűrnek az adatobjektumban. A kék, piros vagy zöld színtulajdonságú eseményeket a rendszer elküldi az előfizetésnek.
Azure PowerShell
PowerShell esetén használja az alábbi parancsot:
$topicName = <your-topic-name>
$endpointURL = <endpoint-URL>
New-AzResourceGroup -Name gridResourceGroup -Location eastus2
New-AzEventGridTopic -ResourceGroupName gridResourceGroup -Location eastus2 -Name $topicName
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name $topicName).Id
$expDate = '<mm/dd/yyyy hh:mm:ss>' | Get-Date
$AdvFilter1=@{operatorType="StringIn"; key="Data.color"; values=@('blue', 'red', 'green')}
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint $endpointURL `
-ExpirationDate $expDate `
-AdvancedFilter @($AdvFilter1)
Azure CLI
Azure CLI esetén használja az alábbi parancsot:
topicName=<your-topic-name>
endpointURL=<endpoint-URL>
az group create -n gridResourceGroup -l eastus2
az eventgrid topic create --name $topicName -l eastus2 -g gridResourceGroup
topicid=$(az eventgrid topic show --name $topicName -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
-n demoAdvancedSub \
--advanced-filter data.color stringin blue red green \
--endpoint $endpointURL \
--expiration-date "<yyyy-mm-dd>"
Vegye figyelembe, hogy az előfizetéshez lejárati dátum tartozik.
Azure Portal
Az Esemény-előfizetés lapon válassza az Új szűrő hozzáadása lehetőséget a SPECIÁLIS SZŰRŐK szakaszban.
Adja meg az összehasonlítandó kulcsot, operátort és értéket vagy értékeket. A következő példában a data.color kulcsként, a sztring operátorként, az értékekhez pedig kék, piros és zöld értékeket ad meg.
A szűrő tesztelése
A szűrő teszteléséhez küldjön egy eseményt a zöld színmezővel. Mivel a zöld a szűrő egyik értéke, az esemény a végpontra kerül.
Azure PowerShell
PowerShell esetén használja az alábbi parancsot:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name $topicName).Endpoint
$keys = Get-AzEventGridTopicKey -ResourceGroupName gridResourceGroup -Name $topicName
$eventID = Get-Random 99999
$eventDate = Get-Date -Format s
$htbody = @{
id= $eventID
eventType="recordInserted"
subject="myapp/vehicles/cars"
eventTime= $eventDate
data= @{
model="SUV"
color="green"
}
dataVersion="1.0"
}
$body = "["+(ConvertTo-Json $htbody)+"]"
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Ha olyan forgatókönyvet szeretne tesztelni, amelyben nem küldi el az eseményt, küldjön egy eseményt sárga színmezővel. A sárga nem az előfizetésben megadott értékek egyike, ezért az esemény nem lesz kézbesítve az előfizetésnek.
$htbody = @{
id= $eventID
eventType="recordInserted"
subject="myapp/vehicles/cars"
eventTime= $eventDate
data= @{
model="SUV"
color="yellow"
}
dataVersion="1.0"
}
$body = "["+(ConvertTo-Json $htbody)+"]"
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Azure CLI
Azure CLI esetén használja az alábbi parancsot:
topicEndpoint=$(az eventgrid topic show --name $topicName -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicName -g gridResourceGroup --query "key1" --output tsv)
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/cars", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "model": "SUV", "color": "green"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $topicEndpoint
Ha olyan forgatókönyvet szeretne tesztelni, amelyben nem küldi el az eseményt, küldjön egy eseményt sárga színmezővel. A sárga nem az előfizetésben megadott értékek egyike, ezért az esemény nem lesz kézbesítve az előfizetésnek.
Azure CLI esetén használja az alábbi parancsot:
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/cars", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "model": "SUV", "color": "yellow"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $topicEndpoint
Következő lépések
A szűrőkkel (eseménytípusok, tárgy és speciális) kapcsolatos további információkért tekintse meg az Event Grid-előfizetések eseményszűrésének ismertetése című témakört.