0Pricing
AWS Solutions Architect · Ders

EventBridge: Olay Veri Yolu ve Kurallar

Olayları özel bir EventBridge veri yoluna yayımlayın, olayları filtreleyip Lambda, SQS veya Step Functions hedeflerine yönlendirmek için olay örüntüsü kuralları yazın.

EventBridge: Olay Veri Yolu ve Kurallar, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

Amazon EventBridge Nedir?

Amazon EventBridge (eski adıyla CloudWatch Events), AWS hizmetlerinden, kendi uygulamalarınızdan ve SaaS sağlayıcılarından gelen olayları kullanarak uygulamaları birbirine bağlamayı kolaylaştıran sunucusuz bir olay veri yoludur. Olaylar JSON nesneleridir; EventBridge bunları olay deseni kurallarına göre bir veya daha fazla hedefe yönlendirir. Noktadan noktaya çalışan SQS'nin aksine EventBridge bir yayınla/abone ol yönlendirme katmanıdır — tek bir olay aynı anda birçok hedefe dağıtılabilir.

Olay Veri Yolları: Default, Özel ve İş Ortağı

EventBridge'de üç tür olay veri yolu bulunur. Default veri yolu, AWS hizmetlerinden gelen olayları (EC2 durum değişiklikleri, S3 olayları, CloudTrail API çağrıları vb.) alır. Özel veri yolları, kendi uygulama olaylarınız için oluşturduğunuz veri yollarıdır — uygulama olaylarınızı AWS hizmeti olaylarından yalıtırlar. İş ortağı veri yolları, önceden oluşturulmuş entegrasyonlar aracılığıyla SaaS sağlayıcılarından (Zendesk, Datadog, GitHub, Shopify) doğrudan olay alır; bunun için yoklama yapan bir Lambda gerekmez.

# Create a custom event bus for your application
aws events create-event-bus --name my-app-bus

# Put a custom event onto the bus
aws events put-events --entries '[{
  "Source": "com.myapp.orders",
  "DetailType": "OrderPlaced",
  "Detail": "{\"orderId\": \"ORD-123\", \"total\": 99.99}",
  "EventBusName": "my-app-bus"
}]'

Olay Deseni Kuralları

Bir olay deseni kuralı, hangi olayların eşleştirileceğini; olay alanlarının herhangi bir bileşimine (source, detail-type, account, region veya detail nesnesinin içindeki alanlara) filtre uygulayan bir JSON deseniyle tanımlar. EventBridge, veri yolundaki her kuralı her olay için değerlendirir. Eşleşen olaylar, kural için yapılandırılmış hedeflere iletilir. Kurallar kural düzeyinde OR, bir desen nesnesinin içinde ise AND mantığıyla çalışır.

# Create a rule that matches EC2 instance state changes to 'stopped'
aws events put-rule \
  --name ec2-stopped-alert \
  --event-bus-name default \
  --event-pattern '{
    "source": ["aws.ec2"],
    "detail-type": ["EC2 Instance State-change Notification"],
    "detail": {
      "state": ["stopped"]
    }
  }' \
  --state ENABLED

Hedefleri Yapılandırma

EventBridge, eşleşen olayları Lambda işlevleri, SQS kuyrukları, SNS konuları, Step Functions durum makineleri, Kinesis Data Streams, API Gateway uç noktaları, ECS görevleri ve hatta başka bir EventBridge veri yolu (hesaplar arası yönlendirme için) dahil olmak üzere 20'den fazla hedef türüne yönlendirebilir. Her kural en fazla 5 hedef içerebilir. EventBridge hedefleri zaman uyumsuz olarak çağırır ve başarısızlık durumunda üstel geri çekilmeyle yeniden dener.

# Add an SNS topic and Lambda function as targets for the rule
aws events put-targets \
  --rule ec2-stopped-alert \
  --event-bus-name default \
  --targets '[{
    "Id": "notify-ops",
    "Arn": "arn:aws:sns:us-east-1:123456789012:ops-alerts"
  }, {
    "Id": "auto-remediate",
    "Arn": "arn:aws:lambda:us-east-1:123456789012:function:RestartEC2"
  }]'

Girdi Dönüşümü

Varsayılan olarak EventBridge, olayın tamamını JSON biçiminde hedefe iletir. Teslimden önce olayı yeniden şekillendirmek için Girdi Dönüşümü özelliğini kullanın — belirli alanları ayıklayabilir, yeni bir JSON nesnesi oluşturabilir veya özel bir dize üretebilirsiniz. Bu özellik, bir Lambda işlevi ya da API uç noktası EventBridge olay sarmalının tamamı yerine belirli bir yük yapısı beklediğinde kullanışlıdır; yalnızca verileri yeniden şekillendirmek için aracı bir Lambda yazma ihtiyacını ortadan kaldırır.

# Input transformer: extract orderId and total from detail
# InputPathsMap extracts values by JSON path
{
  'InputPathsMap': {
    'orderId': '$.detail.orderId',
    'total': '$.detail.total'
  },
  'InputTemplate': '{
    "message": "New order <orderId> for $<total>",
    "channel": "ops"
  }'
}

Zamanlanmış Kurallar (Cron/Rate)

EventBridge kuralları, bir olayla eşleşmek yerine bir zamanlamaya göre de çalıştırılabilir. Sabit aralıklı tetikleyiciler için bir rate ifadesi (ör. rate(5 minutes)), takvim tabanlı zamanlama içinse bir cron ifadesi kullanın. Zamanlanmış kurallar; toplu temizlik işlerini gerçekleştirmek, periyodik raporlar göndermek veya gecelik DMS görevlerini çalıştırmak üzere Lambda işlevlerini tetiklemek için idealdir — EC2 tabanlı cron işleri ihtiyacının yerini alırlar.

# Create a scheduled rule that fires every day at midnight UTC
aws events put-rule \
  --name nightly-cleanup \
  --schedule-expression 'cron(0 0 * * ? *)' \
  --state ENABLED

aws events put-targets \
  --rule nightly-cleanup \
  --targets '[{
    "Id": "cleanup-lambda",
    "Arn": "arn:aws:lambda:us-east-1:123456789012:function:NightlyCleanup"
  }]'

Olay Arşivleme ve Replay

EventBridge, bir veri yolundaki tüm olayları (veya filtrelenmiş bir alt kümeyi) bir olay arşivine arşivleyebilir ve bunları yapılandırılabilir bir süre boyunca saklayabilir. Ardından arşivlenen olayları istediğiniz zaman veri yoluna Replay edebilirsiniz — bu özellik, yeni bir Lambda sürümünü sınamak, bir hedefin olayları kaçırdığı bir hatadan kurtulmak veya geçmiş olaylarla yeni bir hizmetin verilerini tamamlamak için kullanışlıdır. Bu, diğer yayınla/abone ol sistemlerine kıyasla EventBridge'e özgü güçlü bir operasyonel güvenlik ağıdır.

# Create an event archive for the custom bus
aws events create-archive \
  --archive-name my-app-archive \
  --event-source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
  --retention-days 30

# Replay archived events from a specific time window
aws events start-replay \
  --replay-name replay-missed-orders \
  --event-source-arn arn:aws:events:us-east-1:123456789012:archive/my-app-archive \
  --event-start-time 2024-01-10T00:00:00Z \
  --event-end-time 2024-01-10T06:00:00Z \
  --destination '{"Arn": "arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus"}'

Hesaplar ve Bölgeler Arası Yönlendirme

EventBridge, başka bir hesaptaki hedef veri yolunda kaynak tabanlı bir politika oluşturarak hesaplar arası olay yönlendirmesini destekler; bu politika, kaynak hesabın olay göndermesine izin verir. Böylece merkezi bir izleme hesabı tüm iş yükü hesaplarından olay alabilir veya bir platform ekibinin olayları tüketici ekiplerinin veri yollarına yönlendirdiği paylaşımlı bir hizmet veri yolu mimarisi kurulabilir. Bölgeler arası yönlendirme de açık bölgeler arası olay veri yolu hedefleriyle benzer şekilde çalışır.

# Allow a source account (111111111111) to send events to this bus
aws events put-permission \
  --event-bus-name my-central-bus \
  --action events:PutEvents \
  --principal 111111111111 \
  --statement-id allow-source-account

EventBridge Pipes

EventBridge Pipes, bir kaynaktan (SQS, Kinesis, DynamoDB Streams, Kafka) bir hedefe uzanan, arada isteğe bağlı filtreleme ve zenginleştirme işlemleri bulunan noktadan noktaya entegrasyonlar oluşturur (Lambda, Step Functions veya API Gateway aracılığıyla). Pipes, yoklama yapan bir Lambda tüketicisi yazmaktan daha basittir — yoklama, toplu işlem, filtreleme ve yönlendirme işlemlerini otomatik olarak gerçekleştirir. Eksiksiz bir yayınla/abone ol veri yolu olmadan doğrudan kaynaktan hedefe bağlantı gerektiğinde Pipes kullanın.

# Create an EventBridge Pipe from SQS to Lambda
aws pipes create-pipe \
  --name sqs-to-processor \
  --source arn:aws:sqs:us-east-1:123456789012:incoming-orders \
  --target arn:aws:lambda:us-east-1:123456789012:function:ProcessOrder \
  --role-arn arn:aws:iam::123456789012:role/PipeRole \
  --source-parameters '{
    "SqsQueueParameters": {"BatchSize": 10}
  }' \
  --filter-criteria '{
    "Filters": [{"Pattern": "{\"body\": {\"orderType\": [\"PRIORITY\"]}}"}]
  }'

EventBridge ve SNS ile SQS Karşılaştırması

Bu üç hizmet örtüşen özelliklere sahip olsa da farklı kullanım amaçlarına hizmet eder. SNS: abonelere (e-posta, HTTP, SQS, Lambda) gönderim tabanlı dağıtım — filtreleme olmadan basit yayınla/abone ol. SQS: tüketicinin çekme semantiğiyle noktadan noktaya ayrıştırma sağlayan dayanıklı ileti kuyruğu. EventBridge: şema kayıt defteri, arşivleme/Replay, SaaS iş ortakları ve hesaplar arası teslimat özelliklerine sahip, içeriğe dayalı yönlendirme veri yolu — birçok hizmet arasındaki karmaşık olay yönlendirmeleri için en uygunudur. Yalnızca basit dağıtım değil, gelişmiş yönlendirme kurallarına ihtiyacınız olduğunda EventBridge kullanın.

EventBridge Şema Kayıt Defteri

EventBridge Şema Kayıt Defteri, olay veri yollarınızdan geçen olayların yapısını otomatik olarak algılar ve kataloglar. Şemaları OpenAPI 3.0 biçiminde saklar; böylece geliştiriciler hangi olayların kullanılabilir olduğunu keşfedebilir ve olayları türü belirlenmiş nesnelere dönüştüren kod bağlamaları (Java, Python, TypeScript) oluşturabilir. Bu özellik, elle JSON ayrıştırma kodu yazma ihtiyacını ortadan kaldırır ve olay odaklı hizmetlerde tür güvenliğini sağlar. Kendi uygulamalarınızın ürettiği olaylar için özel olay şemalarını elle de kaydedebilirsiniz.

# Enable schema discovery on a custom event bus
aws schemas create-discoverer \
  --source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
  --description 'Auto-discover schemas from app bus'

# List discovered schemas
aws schemas list-schemas \
  --registry-name discovered-schemas

Kısa Kontrol

Bu derste işlenen AWS Solutions Architect (SAA-C03) kavramlarını ne kadar anladığınızı sınayın.

Ders Özeti

Bu derste şunları öğrendiniz: EventBridge, içeriğe dayalı desen kurallarını kullanarak olayları aynı anda birden çok hedefe yönlendirir; arşivleme ve Replay, kod değişikliği yapmadan geçmiş olayları saklamanıza ve yeniden işlemenize olanak tanır; EventBridge Pipes, akış kaynaklarından hedeflere yönetilen işlem hatları sağlar. Sırada, çok adımlı sunucusuz iş akışlarını düzenlemek için Step Functions'ı inceleyeceğiz.

Sıkça Sorulan Sorular

“EventBridge: Olay Veri Yolu ve Kurallar” dersi ücretsiz mi?

Evet — “EventBridge: Olay Veri Yolu ve Kurallar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.

“EventBridge: Olay Veri Yolu ve Kurallar” dersinde ne öğreneceğim?

Olayları özel bir EventBridge veri yoluna yayımlayın, olayları filtreleyip Lambda, SQS veya Step Functions hedeflerine yönlendirmek için olay örüntüsü kuralları yazın. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“EventBridge: Olay Veri Yolu ve Kurallar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. EventBridge: Olay Veri Yolu ve Kurallar
  2. Step Functions: Sunucusuz İş Akışlarını Düzenleme
  3. Gerçek Zamanlı Olay İşleme için Kinesis Data Streams
  4. Koreografi ve Orkestrasyon Örüntüleri
← AWS Solutions Architect Sayfasına Dön