Megosztás a következőn keresztül:


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.

Képernyőkép az Előfizetés létrehozása lapról, amelyen az eseménytípusok ki van jelölve.

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.

Képernyőkép az Esemény-előfizetés lapról, amelyen a Szűrők lap van kijelölve.

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.

Képernyőkép egy egyéni témakör Esemény-előfizetés létrehozása lapjáról.

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.

Képernyőkép az Esemény-előfizetés lapról, amelyen az Eseménytípus hozzáadása gomb van kiválasztva.

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"
        ]
      }
    }
  }
]

Feljegyzé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:

  1. Az Esemény-előfizetés lapon válassza a Tárgyszűrés engedélyezése lehetőséget.

  2. 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 példában mindkét beállítás ki van jelölve.

    Képernyőkép az Esemény-előfizetés lapról tárgyszűrési példával.

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

Képernyőkép az Esemény-előfizetés létrehozása lapról, amelyen a Szűrők lap van kijelölve.

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" ]
      }
    }
  }
]

Feljegyzé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

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

    Képernyőkép az Esemény-előfizetés lapról, amelyen az Új szűrő hozzáadása hivatkozás van kiemelve.

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

    Egy speciális szűrő példáját bemutató képernyőkép.

    Feljegyzés

    A speciális szűrőkkel 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.

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

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.