Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a végpontnak küldött események szűrésének különböző módjait ismerteti. Esemény-előfizetés létrehozásakor három szűrési lehetőség közül választhat:
- Eseménytípusok
- A tárgy kezdőbetűje vagy vége:
- Speciális mezők és operátorok
Azure Resource Manager-sablon
A cikkben bemutatott példák JSON-kódrészletek az Azure Resource Manager-sablonok szűrőinek definiálásához. Egy teljes ARM-sablonra és egy ARM-sablon üzembe helyezésére vonatkozó példa: Rövid útmutató: Blob Storage-események átirányítása a webes végpontra ARM-sablon használatával. Néhány további szakasz az filter szakasz körül a rövid útmutató példájából. Az ARM-sablon a következő erőforrásokat határozza meg.
- Azure Storage-fiók
- A tárfiók rendszertémaköre
- Esemény-előfizetés a rendszertémakörhöz. Lásd az
filteresemény előfizetési szakaszának alszakaszát.
Az alábbi példában az esemény-előfizetés az Microsoft.Storage.BlobCreated és Microsoft.Storage.BlobDeleted eseményekre szűr.
{
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-08-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
},
{
"type": "Microsoft.EventGrid/systemTopics",
"apiVersion": "2021-12-01",
"name": "[parameters('systemTopicName')]",
"location": "[parameters('location')]",
"properties": {
"source": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
"topicType": "Microsoft.Storage.StorageAccounts"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"type": "Microsoft.EventGrid/systemTopics/eventSubscriptions",
"apiVersion": "2021-12-01",
"name": "[format('{0}/{1}', parameters('systemTopicName'), parameters('eventSubName'))]",
"properties": {
"destination": {
"properties": {
"endpointUrl": "[parameters('endpoint')]"
},
"endpointType": "WebHook"
},
"filter": {
"includedEventTypes": [
"Microsoft.Storage.BlobCreated",
"Microsoft.Storage.BlobDeleted"
]
}
},
"dependsOn": [
"[resourceId('Microsoft.EventGrid/systemTopics', parameters('systemTopicName'))]"
]
}
]
}
Eseménytípus-szűrés
Alapértelmezés szerint az eseményforrás összes eseménytípusa a végpontra kerül. Dönthet úgy, hogy csak bizonyos eseménytípusokat küld a végpontnak. Értesülhet például az erőforrások frissítéséről, de más műveletekről, például törlésekről nem. Ebben az esetben szűrjön az Microsoft.Resources.ResourceWriteSuccess esemény típusa szerint. Adjon meg egy tömböt az eseménytípusokkal, vagy írja be All az eseményforrás összes eseménytípusának megtekintéséhez.
Az eseménytípus szerinti szűrés JSON-szintaxisa a következő:
"filter": {
"includedEventTypes": [
"Microsoft.Resources.ResourceWriteFailure",
"Microsoft.Resources.ResourceWriteSuccess"
]
}
Tárgyszűrés
A tárgy szerinti egyszerű szűréshez adja meg a tárgy kezdő vagy záró értékét. Megadhatja például, hogy a tárgy vége .txt csak a szövegfájl tárfiókba való feltöltésével kapcsolatos események lekérése legyen. Vagy szűrheti a tárgyat /blobServices/default/containers/testcontainer , hogy lekérje az adott tároló összes eseményét, de a tárfiók többi tárolójának nem.
Amikor eseményeket tesz közzé egyéni témakörökben, hozzon létre témákat az eseményekhez, amelyek megkönnyítik az előfizetők számára, hogy megtudják, érdekli-e őket az esemény. Az előfizetők a tárgytulajdonság használatával szűrik és irányítják az eseményeket. Fontolja meg az esemény helyszínének elérési útját, hogy az előfizetők az elérési út szegmensei alapján szűrhessenek. Az elérési út lehetővé teszi az előfizetők számára az események szűk vagy széles körű szűrését. Ha a tárgyhoz hasonlóan /A/B/C három szegmensútvonalat ad meg, az előfizetők az első szegmens /A alapján szűrhetnek az események széles körének lekéréséhez. Ezek az előfizetők eseményeket kapnak olyan témákkal, mint /A/B/C vagy /A/D/E. Más előfizetők /A/B alapján szűrhetnek, hogy szűkebb eseményhalmazt kapjanak.
Példák (Blob Storage-események)
A blobesemények szűrhetők a létrehozott vagy törölt objektum eseménytípusa, tárolóneve vagy neve alapján.
A Blob Storage-események tárgya a következő formátumot használja:
/blobServices/default/containers/<containername>/blobs/<blobname>
A tárfiók összes eseményének egyeztetéséhez üresen hagyhatja a tárgyszűrőket.
Az előtaggal rendelkező tárolókban létrehozott blobok eseményeinek egyeztetéséhez használjon egy szűrőt subjectBeginsWith , például:
/blobServices/default/containers/containerprefix
Az adott tárolóban létrehozott blobok eseményeinek egyeztetéséhez használjon a következőhöz hasonló szűrőt subjectBeginsWith :
/blobServices/default/containers/containername/
Ha egy adott tárolóban létrehozott blobokból származó eseményeket szeretne, amelyek közös blobnév-előtaggal rendelkeznek, használjon a következőhöz hasonló szűrőt: subjectBeginsWith
/blobServices/default/containers/containername/blobs/blobprefix
Ha egy tároló egy adott almappájában létrehozott blobokból származó eseményeket szeretné egyeztetni, használjon a következőhöz hasonló szűrőt subjectBeginsWith :
/blobServices/default/containers/{containername}/blobs/{subfolder}/
A blob utótagot megosztó adott tárolóban létrehozott blobok eseményeinek egyeztetéséhez használjon olyan szűrőt subjectEndsWith , mint a ".log" vagy a ".jpg".
Speciális szűrés
Az adatmezők értékei alapján történő szűréshez és az összehasonlító operátor megadásához használja a speciális szűrési lehetőséget. Speciális szűrés esetén a következőket kell megadnia:
- operátor típusa – Az összehasonlítás típusa.
- key – A szűréshez használt eseményadatok mezője. Ez lehet szám, logikai, sztring vagy tömb.
- értékek – A kulcshoz viszonyítandó érték vagy értékek.
Kulcs
A kulcs a szűréshez használt eseményadatok mezője. A következő típusok egyike lehet:
Szám
logikai
Sztring
Tömb. A funkció használatához igaz értékre kell állítania a
enableAdvancedFilteringOnArraystulajdonságot."filter": { "subjectBeginsWith": "/blobServices/default/containers/mycontainer/blobs/log", "subjectEndsWith": ".jpg", "enableAdvancedFilteringOnArrays": true }
A Cloud Events-sémában lévő eseményekhez használja a következő értékeket a kulcshoz: eventid, source, eventtype, eventtypeversion, vagy eseményadatokhoz (példáuldata.key1).
Ha alapszintű Event Grid-szintet használ, az Event Grid-sémában lévő eseményekhez használja a kulcs alábbi értékeit: ID, Topic, , Subject, EventType, DataVersionvagy eseményadatok (például data.key1). Egyéni bemeneti séma esetén használja az esemény adatmezőit (példáuldata.key1). Az adatszakasz mezőinek eléréséhez használja a . (pont) jelölést. Például data.siteNamedata.appEventTypeDetail.action a hozzáféréshez siteName vagy action a következő mintaeseményhez.
"data": {
"appEventTypeDetail": {
"action": "Started"
},
"siteName": "<site-name>",
"clientRequestId": "None",
"correlationRequestId": "None",
"requestId": "292f499d-04ee-4066-994d-c2df57b99198",
"address": "None",
"verb": "None"
},
Megjegyzés
Az Event Grid nem támogatja az objektumtömbök szűrését. Csak az azonos típusú sztringeket, logikai értékeket, számokat és tömböket engedélyezi (például egész számtömböt vagy sztringtömböt).
Értékek
Az értékek lehetnek: szám, sztring, logikai vagy tömb
Operátorok
A számokhoz elérhető operátorok a következők:
NumberIn
A NumberIn operátor igaz értéket ad vissza, ha a kulcs értéke a megadott szűrőértékek egyike. Az alábbi példában ellenőrzi, hogy a counter szakaszban szereplő data attribútum értéke 5 vagy 1.
"advancedFilters": [{
"operatorType": "NumberIn",
"key": "data.counter",
"values": [
5,
1
]
}]
Ha a kulcs egy tömb, a tömb összes értékét összehasonlítják a szűrőértékek tömbjével. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a, b, c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF filter == key
MATCH
NumberNotIn
A NumberNotIn értéke igaz, ha a kulcs értéke nem a megadott szűrőértékek egyike. Az alábbi példában counter azt ellenőrzi, hogy a data szakasz attribútumának értéke nem 41 és 0-e.
"advancedFilters": [{
"operatorType": "NumberNotIn",
"key": "data.counter",
"values": [
41,
0
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a, b, c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF filter == key
FAIL_MATCH
NumberLessThan
A NumberLessThan operátor igaz értéket ad vissza, ha a kulcs értéke kisebb a megadott szűrőértéknél. Az alábbi példában ellenőrzi, hogy a counter szakaszban szereplő data attribútum értéke kisebb-e 100-nál.
"advancedFilters": [{
"operatorType": "NumberLessThan",
"key": "data.counter",
"value": 100
}]
Ha a kulcs egy tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértéken. Itt van a pszeudo kód a következő kulccsal: [v1, v2, v3]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH key IN (v1, v2, v3)
IF key < filter
MATCH
NumberGreaterThan
A NumberGreaterThan operátor igaz értéket ad vissza, ha a kulcs értéke nagyobb a megadott szűrőértéknél. Az alábbi példában azt ellenőrzi, hogy a counter attribútum értéke a data szakaszban nagyobb-e, mint 20.
"advancedFilters": [{
"operatorType": "NumberGreaterThan",
"key": "data.counter",
"value": 20
}]
Ha a kulcs egy tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértéken. Itt van a pszeudo kód a következő kulccsal: [v1, v2, v3]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH key IN (v1, v2, v3)
IF key > filter
MATCH
NumberKisebbVagyEgyenlő
A NumberLessThanOrEquals operátor értéke igaz, ha a kulcs értéke kisebb vagy egyenlő a megadott szűrőértéknél . Az alábbi példában counter azt ellenőrzi, hogy a data szakasz attribútumának értéke kisebb vagy egyenlő-e 100-zal.
"advancedFilters": [{
"operatorType": "NumberLessThanOrEquals",
"key": "data.counter",
"value": 100
}]
Ha a kulcs egy tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértéken. Itt van a pszeudo kód a következő kulccsal: [v1, v2, v3]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH key IN (v1, v2, v3)
IF key <= filter
MATCH
SzámNagyobbVagyEgyenlőMint
A NumberGreaterThanOrEquals operátor értéke igaz, ha a kulcs értéke nagyobb vagy egyenlő a megadott szűrőértéknél . Az alábbi példában azt ellenőrzi, hogy az data szakasz counter attribútumának értéke nagyobb vagy egyenlő-e, mint 30.
"advancedFilters": [{
"operatorType": "NumberGreaterThanOrEquals",
"key": "data.counter",
"value": 30
}]
Ha a kulcs egy tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértéken. Itt van a pszeudo kód a következő kulccsal: [v1, v2, v3]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH key IN (v1, v2, v3)
IF key >= filter
MATCH
SzámTartományban
A NumberInRange operátor igaz értéket ad vissza, ha a kulcs értéke a megadott szűrőtartományok egyikében található. A következő példában azt ellenőrzi, hogy a data szakasz key1 attribútumának értéke a két tartomány egyikében található-e: 3.14159 – 999.95, 3000 – 4000.
{
"operatorType": "NumberInRange",
"key": "data.key1",
"values": [[3.14159, 999.95], [3000, 4000]]
}
A values tulajdonság tartománytömb. Az előző példában ez két tartományból álló tömb. Íme egy példa egy olyan tömbre, amelynek egy tartományát ellenőrizni kell.
Tömb egy tartománnyal:
{
"operatorType": "NumberInRange",
"key": "data.key1",
"values": [[3000, 4000]]
}
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. A következő pszeudokódot kell megadni a kulccsal: [v1, v2, v3] és a szűrővel: tartománytömb. Ebben a pszeudokódban ab a tömb minden tartományának alacsony és magas értékei vannak. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH (a,b) IN filter.Values
FOR_EACH key IN (v1, v2, v3)
IF key >= a AND key <= b
MATCH
SzámNincsTartományban
A NumberNotInRange operátor igaz értéket ad vissza, ha a kulcs értéke nem szerepel a megadott szűrőtartományokban. A következő példában ellenőrzi, hogy a key1 attribútum értéke a data szakaszban a két tartomány egyikében található-e: 3.14159 – 999.95 vagy 3000 – 4000. Ha így van, az operátor hamis értéket ad vissza.
{
"operatorType": "NumberNotInRange",
"key": "data.key1",
"values": [[3.14159, 999.95], [3000, 4000]]
}
A values tulajdonság tartománytömb. Az előző példában ez két tartományból álló tömb. Íme egy példa egy olyan tömbre, amelynek egy tartományát ellenőrizni kell.
Tömb egy tartománnyal:
{
"operatorType": "NumberNotInRange",
"key": "data.key1",
"values": [[3000, 4000]]
}
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt található a pszeudokód a következő kulccsal: [v1, v2, v3] és a szűrő: tartományok tömbje. Ebben a pszeudokódban ab a tömb minden tartományának alacsony és magas értékei vannak. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH (a,b) IN filter.Values
FOR_EACH key IN (v1, v2, v3)
IF key >= a AND key <= b
FAIL_MATCH
A logikai értékek esetében elérhető operátor a következő:
BoolEquals
A BoolEquals operátor igaz értéket ad vissza, ha a kulcs értéke megegyezik a megadott logikai értékkel. Az alábbi példában ellenőrzi, hogy a data szakaszban lévő isEnabled attribútum értéke true-e.
"advancedFilters": [{
"operatorType": "BoolEquals",
"key": "data.isEnabled",
"value": true
}]
Ha a kulcs egy tömb, ellenőrizzük a tömb összes értékét a szűrő logikai értékével szemben. Itt van a pszeudo kód a következő kulccsal: [v1, v2, v3]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH key IN (v1, v2, v3)
IF filter == key
MATCH
A sztringekhez elérhető operátorok a következők:
StringContains
A StringContains értéke igaz, ha a kulcsértéka megadott szűrőértékek bármelyikét tartalmazza (részszűrésekként). A következő példában ellenőrzi, hogy a szakaszban szereplő key1 attribútum értéke data tartalmazza-e a megadott részsztringek egyikét: microsoft vagy azure. Például a azure data factory tartalmazza a azure.
"advancedFilters": [{
"operatorType": "StringContains",
"key": "data.key1",
"values": [
"microsoft",
"azure"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key CONTAINS filter
MATCH
StringNotContains
A StringNotContains operátor igaz értéket ad vissza, ha a kulcs nem tartalmazza a megadott szűrőértékeket alsztringként. Ha a kulcs a megadott értékek egyikét részsztringként tartalmazza, az operátor hamis értéket ad eredményül. Az alábbi példában az operátor csak akkor ad vissza igaz értéket, ha a data szakasz key1 attribútumának értékében nem szerepel a contoso és a fabrikam mint részszövegek.
"advancedFilters": [{
"operatorType": "StringNotContains",
"key": "data.key1",
"values": [
"contoso",
"fabrikam"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key CONTAINS filter
FAIL_MATCH
Az operátor aktuális korlátozásáról lásd a Korlátozások szakaszt.
SztringKezdődikEzzel
A StringBeginsWith operátor igaz értéket ad vissza, ha a kulcs értéke a megadott szűrőértékek bármelyikével kezdődik. Az alábbi példában ellenőrizzük, hogy a key1 attribútum értéke a data szakaszban event vagy message értékkel kezdődik-e. Például a event hubs a(z) event-el/-al kezdődik.
"advancedFilters": [{
"operatorType": "StringBeginsWith",
"key": "data.key1",
"values": [
"event",
"message"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key BEGINS_WITH filter
MATCH
StringNemKezdődik
A StringNotBeginsWith operátor igaz értéket ad vissza, ha a kulcs értéke nem a megadott szűrőértékekkel kezdődik. Az alábbi példában az ellenőrzés megvizsgálja, hogy a data szakasz key1 attribútumának értéke nem event-vel vagy message-mal kezdődik-e.
"advancedFilters": [{
"operatorType": "StringNotBeginsWith",
"key": "data.key1",
"values": [
"event",
"message"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key BEGINS_WITH filter
FAIL_MATCH
StringEndsWith
A StringEndsWith operátor igaz értéket ad vissza, ha a kulcs értéke a megadott szűrőértékek egyikével végződik. Az alábbi példában azt ellenőrzi, hogy a szakasz attribútumának key1 értéke a következővel data végződik-e: vagy jpgjpeg.png Például a eventgrid.png következővel pngvégződik: .
"advancedFilters": [{
"operatorType": "StringEndsWith",
"key": "data.key1",
"values": [
"jpg",
"jpeg",
"png"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key ENDS_WITH filter
MATCH
StringNemVégződikValamivel
A StringNotEndsWith operátor igaz értéket ad vissza, ha a kulcs értéke nem végződik a megadott szűrőértékekkel. A következő példában ellenőrzi, hogy a data szakaszban a key1 attribútum értéke nem végződik-e jpg-ra, jpeg-ra vagy png-ra.
"advancedFilters": [{
"operatorType": "StringNotEndsWith",
"key": "data.key1",
"values": [
"jpg",
"jpeg",
"png"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF key ENDS_WITH filter
FAIL_MATCH
StringIn
A StringIn operátor ellenőrzi, hogy a kulcs értéke pontosan megfelel-e a megadott szűrőértékek egyikének. Az alábbi példában ellenőrzi, hogy a szakaszban szereplő attribútum értéke key1 vagy datacontoso.fabrikamfactory
"advancedFilters": [{
"operatorType": "StringIn",
"key": "data.key1",
"values": [
"contoso",
"fabrikam",
"factory"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF filter == key
MATCH
StringNotIn
A StringNotIn operátor ellenőrzi, hogy a kulcs értéke nem felel-e meg a megadott szűrőértékek egyikének sem. Az alábbi példában ellenőrzi, hogy a data szakasz key1 attribútumának értéke nem aws, és nem bridge.
"advancedFilters": [{
"operatorType": "StringNotIn",
"key": "data.key1",
"values": [
"aws",
"bridge"
]
}]
Ha a kulcs tömb, a rendszer a tömb összes értékét ellenőrzi a szűrőértékek tömbjében. Itt van a pszeudo kód a kulccsal: [v1, v2, v3] és a szűrő: [a,b,c]. A szűrő adattípusának nem megfelelő adattípusú kulcsértékek figyelmen kívül lesznek hagyva.
FOR_EACH filter IN (a, b, c)
FOR_EACH key IN (v1, v2, v3)
IF filter == key
FAIL_MATCH
Az összes sztring-összehasonlítás nem megkülönbözteti a kis- és nagybetűket.
Megjegyzés
Ha az esemény JSON-ja nem tartalmazza a haladó szűrőkulcsot, a szűrő nem felel meg a következő operátorokkal: NumberGreaterThan, NumberGreaterThanOrEquals, NumberLessThan, NumberLessThanOrEquals, NumberIn, BoolEquals, StringContains, StringNotContains, StringBeginsWith, StringNotBeginsWith, StringEndsWith, StringNotEndsWith, StringIn.
A szűrőt illeszkedőnek értékeljük a következő operátorok szerint: NumberNotIn, StringNotIn.
IsNullOrUndefined
Az IsNullOrUndefined operátor igaz értéket ad vissza, ha a kulcs értéke NULL vagy nem definiált.
{
"operatorType": "IsNullOrUndefined",
"key": "data.key1"
}
Az alábbi példában a key1 hiányzik, ezért az operátor értéke igaz lesz.
{
"data":
{
"key2": 5
}
}
Az alábbi példában az 1. kulcs értéke null, így az operátor értéke igaz lesz.
{
"data":
{
"key1": null
}
}
Ha az 1. kulcsnak más értéke is van ezekben a példákban, az operátor hamis értéket ad ki.
NemNull
Az IsNotNull operátor igaz értéket ad vissza, ha a kulcs értéke nem NULL vagy nem definiált.
{
"operatorType": "IsNotNull",
"key": "data.key1"
}
VAGY és ÉS
Ha egyetlen szűrőt ad meg több értékkel, a rendszer OR műveletet hajt végre, így a kulcsmező értékének ezen értékek egyikének kell lennie. Itt van egy példa:
"advancedFilters": [
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/microsoft.devtestlab/",
"/providers/Microsoft.Compute/virtualMachines/"
]
}
]
Ha több különböző szűrőt ad meg, az AND művelet befejeződik, így minden szűrőfeltételnek teljesülnie kell. Itt van egy példa:
"advancedFilters": [
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/microsoft.devtestlab/"
]
},
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/Microsoft.Compute/virtualMachines/"
]
}
]
CloudEvents
Események esetén a CloudEvents sémában használja a következő értékeket a kulcshoz: id, source, type, dataschema, vagy az eseményadatokat (például data.key1).
A CloudEvents 1.0 bővítménykörnyezeti attribútumait is használhatja. Az alábbi példában comexampleextension1comexampleothervalue a bővítménykörnyezet attribútumai.
{
"specversion" : "1.0",
"type" : "com.example.someevent",
"source" : "/mycontext",
"id" : "C234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"subject": null,
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"appinfoA" : "abc",
"appinfoB" : 123,
"appinfoC" : true
}
}
Íme egy példa egy bővítménykörnyezet attribútumának szűrőben való használatára.
"advancedFilters": [{
"operatorType": "StringBeginsWith",
"key": "comexampleothervalue",
"values": [
"5",
"1"
]
}]
Korlátozások
A speciális szűrésre a következő korlátozások vonatkoznak:
- 25 speciális szűrő és 25 szűrőérték az Event Grid-előfizetés összes szűrője között
- Sztringértékenként 512 karakter
- A "pont" karaktert tartalmazó kulcsok. Például:
http://schemas.microsoft.com/claims/authnclassreferencevagyjohn.doe@contoso.com. A kulcsokban jelenleg nem támogatott a feloldó karakterek használata.
Ugyanaz a kulcs több szűrőben is használható.
Következő lépések
- Az események szűréséről a PowerShell és az Azure CLI használatával az Event Grid eseményeinek szűrése című témakörben olvashat.
- Az Event Grid használatának gyors megkezdéséhez tekintse meg az Egyéni események létrehozása és irányítása az Azure Event Griddel című témakört.