Tüm Ürünler
Search
Belge Merkezi

EventBridge:Event patterns

Son Güncelleme:Oct 07, 2026

Olay kalıpları, EventBridge'in gelen olayları bir hedefe yönlendirmeden önce karşılaması gereken kriterleri tanımlar. Farklı kaynaklardan çeşitli yapılarla gelen olaylar arasında yalnızca alt akış işlemeniz için ilgili olanları seçmeniz gerekir. Bir olay kalıbı, eşleştirilecek alanları ve değerleri belirten bir JSON nesnesidir. EventBridge, her gelen olayı kalıpla karşılaştırır ve yalnızca eşleşen olayları iletir.

Bir kalıp, eşleştirdiği olaylarla aynı iç içe geçmiş yapıya sahip olmalıdır.

Desteklenen operatörler

Aşağıdaki tabloda tüm kalıp operatörleri özetlenmiştir. Her operatör, alan değeri olarak bir dizi içinde yer alır.

Operatör Ne zaman eşleşir... Sözdizimi örneği
Tam değer Alan belirtilen dizeye eşittir "source": ["acs.oss"]
prefix Alan değeri dize ile başlar "source": [{"prefix": "acs."}]
suffix Alan değeri dize ile biter "subject": [{"suffix": ".jpg"}]
contains Alan değeri dizeyi içerir "type": [{"contains": "Normal"}]
anything-but Alan değeri dizeye, sayıya veya kümeye eşit değildir "state": [{"anything-but": "initializing"}]
anything-but + prefix Alan değeri dize ile başlamaz "state": [{"anything-but": {"prefix": "init"}}]
numeric Alan değeri sayısal bir aralıkta yer alır "c-count": [{"numeric": [">", 0, "<=", 5]}]
cidr IP adresi bir CIDR bloğu içinde yer alır (yalnızca IPv4) "source-ip": [{"cidr": "10.0.0.0/24"}]
exists Alan olayda vardır veya yoktur "state": [{"exists": false}]
Boş dize Alan boş dizeye eşittir "eventVersion": [""]
Null Alan null değerindedir "responseElements": [null]

Eşleşme nasıl çalışır

EventBridge, kalıpları iki mantıksal operatör kullanarak değerlendirir:

  • Anahtarlar arasında AND: Kalıptaki tüm anahtarlar eşleşmelidir. Bir kalıp hem source hem de type belirtiyorsa olayın her ikisiyle de eşleşmesi gerekir.

  • Bir dizideki değerler arasında OR: Her anahtarın değeri bir dizidir. Dizi birden fazla değer içeriyorsa herhangi bir değer eşleştiğinde olay eşleşmiş olur.

Ek eşleşme kuralları:

  • Olay, kalıpta belirtilen her alanı içermelidir. Olaydaki ek alanlar yoksayılır.

  • Eşleşme karakter karakter ve büyük/küçük harfe duyarlıdır. EventBridge, değerlendirme sırasında dizeleri değiştirmez.

  • Tüm değerler geçerli JSON olmalıdır: çift tırnak içinde dizeler (""), tırnaksız anahtar sözcükler (true, false, null) veya sayısal değerler.

Tam değer eşleşmesi

Bir alanın belirli bir değere eşit olduğu olayları eşleştirin. Değeri bir dizi içine alın.

Aşağıdaki kalıp, source alanının acs.oss olduğu olayları eşleştirir:

{
    "source": [
        "acs.oss"
    ]
}

Örnek olay (eşleşen):

{
    "id": "7adc8c1a-645d-4476-bdef-5d6fb57f****",
    "source": "acs.oss",
    "specversion": "1.0",
    "type": "oss:ObjectCreated:PostObject",
    "datacontenttype": "application/json",
    "dataschema": "http://example.com/test.json",
    "subject": "acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
    "time": "2020-08-17T16:04:46.149Asia/Shanghai",
    "data": {
        "name": "test",
        "scope": 100
    }
}

Önek eşleşmesi

Bir alan değerinin belirtilen bir dizeyle başladığı olayları eşleştirin. prefix operatörünü kullanın.

Aşağıdaki kalıp, source alanının acs. ile başladığı olayları eşleştirir:

{
    "source": [
        {
            "prefix": "acs."
        }
    ]
}

OSS paket adı önekine göre filtreleme

EventBridge olay kalıpları, OSS paket adlarını eşleştirmek için joker karakter * kullanımını desteklemez. * kullanırsanız bu karakter değişmez bir karakter olarak değerlendirilir ve eşleşme başarısız olur. OSS paket adlarını öneke göre eşleştirmek için prefix operatörünü [{"prefix": "value"}] biçiminde bir dizi içine alın. Dizi olmayan {"prefix": "value"} biçimi eşleşmeyi sağlayamaz.

OSS paket adı önekine göre olayları filtrelemek için iki geçerli yol vardır:

**Örnek 1: data.oss.bucket.name alanına göre eşleştirme**

{
    "source": ["acs.oss"],
    "data": {
        "oss": {
            "bucket": {
                "name": [
                    {
                        "prefix": "corenetic"
                    }
                ]
            }
        }
    }
}

**Örnek 2: subject alanına göre eşleştirme**

{
    "source": ["acs.oss"],
    "subject": [
        {
            "prefix": "acs:oss:cn-hangzhou:1654575930909665:corenetic"
        }
    ]
}

subject alanı acs:oss:{region}:{accountId}:{bucketName}/{objectKey} biçimini izler. subject alanının bir önekini eşleştirmek, olayları OSS paket adına göre filtrelemenizi sağlar.

Sonek eşleşmesi

Bir alan değerinin belirtilen bir dizeyle bittiği olayları eşleştirin. suffix operatörünü kullanın.

Aşağıdaki kalıp önek ve sonek koşullarını birleştirir. subject değeri belirtilen önekle başlarsa VEYA .txt ile biterse VEYA .jpg ile biterse olay eşleşir:

{
    "subject": [
        {
            "prefix": "acs:oss:cn-hangzhou:1234567:xls-papk/"
        },
        {
            "suffix": ".txt"
        },
        {
            "suffix": ".jpg"
        }
    ]
}
Aynı dizideki birden fazla değer OR mantığıyla değerlendirilir. Dizideki tek bir koşul bile sağlanırsa olay eşleşir.

İçerik eşleşmesi

Bir alan değerinin belirtilen bir alt dizeyi içerdiği olayları eşleştirin. contains operatörünü kullanın.

Tek alt dize

Aşağıdaki kalıp, type alanının Normal içerdiği olayları eşleştirir:

{
    "type": [
        {
            "contains": "Normal"
        }
    ]
}

"type": "UserNormalEvent" içeren bir olay eşleşir. "type": "UserErrorEvent" içeren bir olay eşleşmez.

Birden fazla alt dize (OR)

Aşağıdaki kalıp, type alanının Normal veya Error içerdiği olayları eşleştirir:

{
    "type": [
        {
            "contains": "Normal"
        },
        {
            "contains": "Error"
        }
    ]
}

"type": "UserNormalEvent" içeren bir olay eşleşir. "type": "UserErrorEvent" içeren bir olay da eşleşir. "type": "UserOtherEvent" içeren bir olay eşleşmez.

Olay kalıpları, filtreleme için düzenli ifadeleri desteklemez. Bir alan değerinin belirli bir dize içerdiği olayları eşleştirmek için bunun yerine contains operatörünü kullanın.

Aşağıdaki kalıp, data.content alanının com.example.service içerdiği olayları eşleştirir:

{
    "data": {
        "content": [
            {
                "contains": "com.example.service"
            }
        ]
    }
}

Bu kalıp, bir günlük mesajında yer alan kısmi sınıf yolu veya paket adıyla (örneğin com.example.service) olayları filtrelemek için kullanışlıdır. Aynı alana yönelik tam değer eşleşmesi, alan değeri dizeyle tam olarak eşleşmediği sürece başarısız olur.

Hariç tutma eşleşmesi (anything-but)

Bir alan değerinin belirtilen değerlere eşit OLMADIĞI olayları eşleştirin. anything-but operatörü dizeleri, sayıları, dizileri ve önek tabanlı hariç tutmaları destekler.

Tek bir dizeyi hariç tutma

Aşağıdaki kalıp, data.state alanının initializing olmadığı olayları eşleştirir:

{
    "data": {
        "state": [
            {
                "anything-but": "initializing"
            }
        ]
    }
}

Tek bir sayıyı hariç tutma

Aşağıdaki kalıp, data.x-limit alanının 123 olmadığı olayları eşleştirir:

{
    "data": {
        "x-limit": [
            {
                "anything-but": 123
            }
        ]
    }
}
Birden fazla hariç tutmayı AND mantığıyla birleştirmek için aynı kalıptaki farklı alanlara anything-but koşulları uygulayın. Olayın eşleşmesi için her bir hariç tutmayı karşılaması gerekir.

Birden fazla dizeyi hariç tutma

Aşağıdaki kalıp, data.state alanının ne stopped ne de overloaded olduğu olayları eşleştirir:

{
    "data": {
        "state": [
            {
                "anything-but": [
                    "stopped",
                    "overloaded"
                ]
            }
        ]
    }
}

"state": "terminated" içeren bir olay eşleşir. "state": "stopped" içeren bir olay eşleşmez.

Birden fazla sayıyı hariç tutma

Aşağıdaki kalıp, data.x-limit alanının 100, 200 veya 300 olmadığı olayları eşleştirir:

{
    "data": {
        "x-limit": [
            {
                "anything-but": [
                    100,
                    200,
                    300
                ]
            }
        ]
    }
}

Öneke göre hariç tutma

Aşağıdaki kalıp, data.state alanının init ile başlamadığı olayları eşleştirir:

{
    "data": {
        "state": [
            {
                "anything-but": {
                    "prefix": "init"
                }
            }
        ]
    }
}

"state": "pending" içeren bir olay eşleşir. "state": "initializing" içeren bir olay eşleşmez.

Belirli bir olay kaynağını hariç tutma

Aşağıdaki kalıp, Elastic Compute Service (ECS) kaynağından gelmeyen olayları eşleştirir:

{
    "source": [
        {
            "anything-but": [
                "acs.ecs"
            ]
        }
    ]
}

Tüm Alibaba Cloud hizmet olaylarını hariç tutma

Aşağıdaki kalıp, acs. önekiyle başlayan tüm kaynakları hariç tutarak yalnızca özel uygulamalardan gelen olayları eşleştirir:

{
    "source": [
        {
            "anything-but": {
                "prefix": "acs."
            }
        }
    ]
}

Sayısal eşleşme

Sayısal bir alanın belirli bir değere eşit olduğu veya bir aralıkta yer aldığı olayları eşleştirin. numeric operatörünü bir veya daha fazla karşılaştırma operatörüyle birlikte kullanın: =, >, <, <=. Bir aralık belirtmek için iki operatörü eşleştirin.

Aşağıdaki kalıp şu koşulları sağlayan olayları eşleştirir:

  • data.c-count 0'dan büyük ve 5'e eşit veya küçüktür

  • data.d-count 10'dan küçüktür

  • data.x-limit 301,8'e eşittir

{
    "data": {
        "c-count": [
            {
                "numeric": [
                    ">",
                    0,
                    "<=",
                    5
                ]
            }
        ],
        "d-count": [
            {
                "numeric": [
                    "<",
                    10
                ]
            }
        ],
        "x-limit": [
            {
                "numeric": [
                    "=",
                    301.8
                ]
            }
        ]
    }
}
Önemli

Sayısal eşleşme, -1,0e9 ile +1,0e9 arasındaki değerleri destekler; hassasiyet 15 basamak ve 6 ondalık basamakla sınırlıdır. Değerler JSON sayısal biçiminde olmalıdır.

IP adresi eşleşmesi

Bir IP adresi alanının bir CIDR bloğu içinde yer aldığı olayları eşleştirin. cidr operatörünü data nesnesindeki bir alanda kullanın. Yalnızca IPv4 adresleri desteklenir.

Aşağıdaki kalıp, data.source-ip alanının 10.0.0.0/24 alt ağında olduğu olayları eşleştirir:

{
    "data": {
        "source-ip": [
            {
                "cidr": "10.0.0.0/24"
            }
        ]
    }
}

"source-ip": "10.0.0.123" içeren bir olay eşleşir. "source-ip": "192.168.0.123" içeren bir olay eşleşmez.

Null ve boş dize eşleşmesi

Boş dize

Bir alanın boş dizeye ("") eşit olduğu olayları eşleştirin:

{
    "data": {
        "eventVersion": [
            ""
        ]
    }
}

Null değeri

Bir alanın null olduğu olayları eşleştirin:

{
    "data": {
        "responseElements": [
            null
        ]
    }
}
Null değeri ile boş dize farklıdır. "" ile eşleşen bir kalıp null ile eşleşmez ve null ile eşleşen bir kalıp "" ile eşleşmez.

Alan varlığı eşleşmesi

data nesnesinde bir alanın var olup olmamasına göre olayları eşleştirin. exists operatörünü kullanın.

Aşağıdaki kalıp, data.state alanının bulunmadığı olayları eşleştirir:

{
    "data": {
        "state": [
            {
                "exists": false
            }
        ]
    }
}

Alanın bulunduğu olayları eşleştirmek için "exists": true ayarlayın.

Dizi eşleşmesi

Kalıp değerleri dizilerdir. Bir olay alanı da bir dizi olduğunda EventBridge, iki dizinin herhangi bir ortak öğeye sahip olup olmadığını (küme kesişimi) denetler. Kesişim boş değilse olay eşleşir.

Aşağıdaki kalıp, subject alanının belirtilen üç değerden birine eşit olduğu olayları eşleştirir:

{
    "subject": [
        "acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
        "acs:oss:cn-hangzhou:1112223:xls-papk/game_apk/123.jpg",
        "acs:oss:cn-hangzhou:4455667:xls-papk/game_apk/123.jpg"
    ]
}

Olayın subject alanı üç değerden herhangi biriyle eşleşen tek bir dize ise olay eşleşir. Olayın subject alanı bir dizi ise en az bir öğe kalıp dizisiyle örtüşüyorsa olay eşleşir.

Birleştirilmiş koşullar

Kesin filtreler oluşturmak için tek bir kalıpta birden fazla operatörü birleştirin. EventBridge, tüm anahtarlara AND mantığını uygular.

Aşağıdaki kalıp önek, hariç tutma, CIDR ve sayısal eşleştirmeyi birleştirir:

{
    "source": [
        {
            "prefix": "acs."
        }
    ],
    "data": {
        "state": [
            {
                "anything-but": "initializing"
            }
        ],
        "source-ip": [
            {
                "cidr": "10.0.0.0/24"
            }
        ],
        "c-count": [
            {
                "numeric": [
                    ">",
                    0,
                    "<=",
                    5
                ]
            }
        ],
        "d-count": [
            {
                "numeric": [
                    "<",
                    10
                ]
            }
        ],
        "x-limit": [
            {
                "anything-but": [
                    100,
                    200,
                    300
                ]
            }
        ]
    }
}

Bir olay yalnızca AŞAĞIDAKİLERİN HEPSİ doğru olduğunda eşleşir:

  • source acs. ile başlar

  • data.state initializing değildir

  • data.source-ip 10.0.0.0/24 aralığındadır

  • data.c-count 0'dan büyüktür ve en fazla 5'tir

  • data.d-count 10'dan küçüktür

  • data.x-limit 100, 200 veya 300 değildir

Sınırlamalar

Öğe Sınır
Sayısal değer aralığı -1,0e9 ile +1,0e9
Sayısal hassasiyet En fazla 15 basamak, 6 ondalık basamak
IP adresi eşleşmesi Yalnızca IPv4