Nasıl ayarlanır ve Azure Event Grid'i Event tabanlı Mimariler için Nasıl Kullanılır
Azure Event Grid'e Giriş
Azure Grid, veriminin veya üçüncü taraf sistemleriyle tamamen yönetilen bir etkinliktir. Bu decoupling, sistemlere daha dirençli, ölçeklenebilir ve gerçek zamanlı olarak değişiklikler yapabilmelerini sağlar. Event Grid, Azure hizmetleri, özel uygulamalar veya üçüncü taraf sistemler - geniş bir kullanım koşulları ile uygun hale getirmek için altyapıdan gelen bir şekilde iletişim kurmak.
Bu kılavuzda, Azure Event Grid'i kurmak ve kullanmak için tam bir süreç boyunca yürüyeceğiz. Konular, yapılandırma abonelikleri, olayları nasıl oluşturacağınızı ve güvenilirlik, güvenlik ve izleme için en iyi uygulamaları öğreneceksiniz.Sonunda, Azure'da yerleşik çözümler için sağlam bir temele sahip olacaksınız.
Event-Driven Mimarlıklarını Anlamak
Geleneksel istek-katıl mimarileri genellikle hizmet arasında sıkı bir darbe yaratır. Bir hizmet, bir değişimin başkalarını bilgilendirdiğinde, her bir alıcının bunları kim tüketeceğini ve bunları bilmeden bir konuyla ilgili olarak bilgi sahibi olmaları gerekir.
Azure Event Grid bu rolde başarır çünkü büyük ölçekli ve güvenilirlik için tasarlanmıştır. Her iki sistem olayı (örneğin, disk depolama yaratımı veya kaynak grubu değişiklikleri gibi) ve özel olayları kendi uygulamalarınızdan alır. Servis otomatik olarak yeniden işlenebilir ve filtrelemeye odaklanabilirsiniz, böylece altyapı tesisatından ziyade iş mantığına odaklanabilirsiniz.
Azure Event Grid'in Anahtar Kavramları
Etkinlikler Etkinlikler Etkinlikler Etkinlikler Etkinlikler
Bir olay, ne olduğunu açıklayan küçük bir veri parçası. Her olay bir konu, olay türü, olay zamanı ve bir veri yükü içeriyor. Örneğin, bir depolama hesabı oluşturma etkinliği konuğu olabilir:0) ve olay türü aynı şema yapısını takip eder.
Topics
Bir konu, olayların gönderildiği son noktadır. Belirli bir kategorideki olaylar için bir isim alanı sağlar. Azure kaynakları için sistem konuları oluşturabilir ( depolama hesabı veya kaynak grubu gibi) veya kendi uygulamalarınız için özel konular. Topics bölgesel kaynaklar, bu yüzden yaratım sırasında bir bölge seçmelisiniz.
Event Aboneliği
Abonelikler hangi olayları almak istediklerini ve nasıl teslim edilmeleri gerektiğini tanımlar. Konu, olay tipi veya veri alanlarına dayanan olayları filtreleyebilirsiniz. Abonelikler ayrıca son nokta türünü belirtir -common seçenekleri webhooks (HTTP uç noktaları), Azure Fonksiyonlarları, Event Hubs, Servis Bus kuyrukları veya konuları ve Azure Logic Apps.
Event Publishers
Olayları bir Event Grid konusuna gönderen herhangi bir hizmet veya uygulama bir yayıncıdır. Yayıncılar aboneleri hakkında bilmeniz gerekmez; sadece konu uç noktasına olayları yayınlar. Azure SDKs, REST API ve CLI yayın olayları için mevcuttur.
Event Tutrs
Olay eller, gelen olayın süreçleri olan bileşendir. Azure Event Grid birkaç eller türünü destekliyor: HTTP POST, Azure Functions, Otomasyon runbooks, Mantık Uygulamaları ve daha fazlası. webhooks için, Event Grid, olayların teslim edilmesinden önce son noktayı doğrulamayı gerektirir.
Adım-Adım Azure Event Grid
Azure Event Grid'i kurmak için pratik adımlarla başlayalım, bir konu oluşturmak ve yayın etkinlikleri yayınlamak için.
1. Bir Event Grid Topic
Azure portalına ([[Dönetici:0) borçluyuz.com[Dönetici: 1 ) ve " Event Grid" için arama. ClickTELFLT:2).) ve seçeneğin üzerinden en iyi şekilde seçilmesi gerekir.
- [FONT:0)Subscription[[[Döncü: 1) Aşağıdaki Azure abonelikleri hangi konu oluşturulacak.
- [FONT:0]Kaynak grubu[[Dönemli bir grup kullanıyor veya kaynakları organize etmek için yeni bir tane yaratıyor.
- [FONT:0]Name[DÜDÜT:1): Konu için küresel olarak benzersiz bir isim. Bu son nokta URL'nin bir parçası haline gelir.
- [FONT:0)Yönetmelik[Döncü: Hizmetlerinize yakın bir Azure bölgesi seçin.
Seçmeli olarak, sistem tarafından yönetilen kimlik veya yönetim için etiketler ekleyebilirsiniz. Geçerlilikten sonra, clickETHFLT:0)For) Kurulum bir dakika veya iki kez hazır, konu son noktası URL'yi ve bir erişim anahtarını veya SAS token konuyla ilgili bölümünde göreceksiniz.
2. Bir Event Aboneliği Oluşturun
Oluşturulan konuyla, olayları almak için en az bir abonelike ihtiyacınız var. Konunun genel sayfasında, tıklamaDANFLT:0) + Event Aboneliği).
- [FONT:0)[[Dönetici: abonelik için tanımlayıcı bir isim.
- [FONT=0] Event Schema[[Dönetici: Event Grid şema veya Cloud Events v1.0 şema. Cloud Events endüstri standardı haline gelir.
- [FONT=0)Bitki Türü[Dönetici: Test için eller türünü seçin, test için [FONTD:2)Webhook[DÜDÜ:3) ve son noktanızın URL'sini sağlayabilirsiniz. Üretim için, bir Azure fonksiyonu veya Mantık App kullanabilirsiniz.
- [FONT:0) Direktifler[Dönemli: Etkinlik türleri üzerinde filtreleme etkinleştirebilirsiniz, konu ile başlar / uçlar veya gelişmiş filtreler (örneğin, veri alanları). Bu, istenmeyen olayları ellerinize ulaşır.
- [FONT=0]Retry Policy[[Dönetici: En fazla teslimat denemesini ve zaman-o-ilesini olaylar için ayarlayın.
- [FONT:0]Dead-Hatering[[DÜT:1): Unutulmayan olayların tükenmeden sonra gönderildiği bir depolama blob konteyneri.
ClickFLT:0)[Dönetici][Dönetici:0)[Dönetici:0) Uygulama[Döneticileri onaylayacak şekilde, olay akışına cevap verecek.
3. Yayıncılık Etkinlikleri
Olayları yayınlamak için, konu uç noktası URL'ye ve bir erişim anahtarına veya SAS token'e ihtiyacınız var. Etkinlik ücreti algFLT:0) Event Grid şeması). İşte Azure CLI kullanarak en az örnek:
az eventgrid event submit \
--endpoint https://your-topic.westus-1.eventgrid.azure.net/api/events \
--subject "custom/test" \
--event-type "MyApp.NewRecord" \
--data '{"id":123,"name":"test"}' \
--key aabbccdd...
Ayrıca REST API, PowerShell veya SDKs (C#, Python, Java, Node.js) sunucusuz ortamlar için Azure işlevleri olayları bir çıkış bağlayıcısı ile yayınlayabilirsiniz.
4. Azure Fonksiyonlarla Etkinlikleri
En yaygın desenlerden biri, bir Azure fonksiyonunu bir olay eller olarak kullanmak. Yeni bir Azure Fonksiyonu App oluşturun ve bir Event Grid tetikleyicisi ekle. işlev JSON olarak olayları alacak.
[FunctionName("ProcessEvent")]
public static void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log)
{
log.LogInformation($"Received event: {eventGridEvent.EventType} with subject {eventGridEvent.Subject}");
// Process the event data
}
İşlev otomatik olarak, Event Grid'in bağlayıcılığı kullanıyorsanız webhook elhakını doğrular. Bu yaklaşım size ölçeklenebilir, sunucusuz olay işlemcisi verir.
Gelişmiş Senaryolar ve Desenler
Temel kurulumun ötesinde, Azure Event Grid sofistike mimarileri destekliyor. İşte birkaç gelişmiş kullanım vakası:
Filtreleme ve Routing
Veri değerlerine dayanan rota olayları ileri filtreleme kullanın. Örneğin, birden çok bölümden gelen olayları alan bir konu olabilir. “HR” olaylar (filter onahiFLT:4) ve “IT” olayları için ayrı abonelikler oluşturabilirsiniz.
Event Grid Domains
Farklı kiracılar veya uygulamalar için birçok konuyu yönetmeniz gerektiğinde, Event Grid Domainler bir hiyerarşik isim alanı sağlayabilir ve her alan çoklu konuları içerebilir ve alan seviyesindeki doğrulama ve izleme yapabilirsiniz. Bu, etkinliğe birden fazla müşteriye hizmet veren SaaS sağlayıcıları için idealdir.
Hybrid and Multi-Cloud Entegrasyon
Event Grid, webhooks kullanarak dış sistemlere bağlanabilir.You can send events to on-premises systems via hybrid connections, or to other cloud servers using public HTTP endpoints. For security, use managed ID and SAS tokens to authenticate calls. Ayrıca, Azure Arc'ı Event Grid ile önceden belirlenmiş kaynakları yönetmek için kullanabilirsiniz.
Azure Logic Apps ile entegrasyon
Mantık Uygulamaları, Event Grid olaylarını bir tetikleyici olarak kullanabilir, düşük kod akışlarını kullanarak deneyebilirsiniz. Örneğin, depolamada yeni bir blob oluşturulduğunda, bir Mantık App otomatik olarak başka bir yere kopyalayabilir, bir e-posta gönderebilir veya bir veritabanı güncelleştirmeye kolaydır.
Üretim için En İyi Uygulamalar
Event Grid çözümünizin güvenilir, güvenli ve maliyet-aktif olmasını sağlamak için, bu en iyi uygulamaları takip edin:
- [FONT:0)Her yol ölü-çaklışları etkinleştirir[Dönetici:0) Eğer gerekliyse teslimat başarısızlıkları ve yeniden işleme olayları teşhis etmenize yardımcı olur.
- [[Döneticileri kimlikleri kimlik doğrulama için kontrol edin[Dönetici:0) Anahtarları depolamak yerine, yayıncınız üzerinde kimlik etkinleştirin (örneğin, bir Azure Fonksiyonu) ve konuya yayınlama izni verir.For aboneler için kimlikleri kullanın.
- [FONT:0] abonelik seviyesindeki Leverage filtreleme . Bu, eller üzerinde iptal sayısını azaltır, maliyet tasarrufu sağlar ve performans geliştirmek için gelişmiş filtreler kullanın.
- [FONT=0) Tasarım idempotent eller[Döneticiler[Döneticiler)[[Döneticiler en az bir kez teslimat garanti eder, eller aynı olayı birden çok kez alabilir. İşleme mantığınızın tekrar tekrar tekrarlamasını sağlayın (örneğin, eşsiz bir olayı kontrol ederek veya bir deduplication mağazası kullanarak).
- [FONT=0) Azure Monitor ile ([Dönetici:0) Takip edilen başarı oranı gibi ölçümler, olayların, geçncy ve ölü sayımları. anomaliler için uyarılar ayarlayın.Daha derin analiz için Log Analytics'e giriş yapmak için tanı ayarlarını yapın.
- [FONT:0) geo-disaster kurtarma için planlayın). Topics bölgeseldir.Eğer çoklu bölgelerde küresel dayanıklılıka ihtiyacınız varsa ve çeşitli bir routing mekanizması kullanın. Azure Event Grid'in ortak olayları veya eleştirel senaryolar için çapraz-bölge replikasyonunu kullanmayı düşünün.
- [[Dönetici:0) Olay küçük yükleri tutar[Dönetici:0) Olayı tutar. Etkinlikler HTTP POST vücutları olarak teslim edilir. Büyük maaş yükü gecikmeli ve maliyetle yalnızca bir referans URL veya kimlik ekleyin ve eller bir depodan ek veriler getirelim.
Güvenlik Önergeleri
Olaya dayalı sistemlerde güvenlik birkaç tabakaya sahiptir:
- [[Döneticileri için bir uyarı[0][Döneticileri kullanın, kimlikleri kullanın veya Azure AD kimlik doğrulamasını konu uç noktası güvence altına almak için; anahtar veya hizmet ana bilgilerini kullanın.
- [[Döneticiler için geçerli olan son nokta geçerlidir[Dönetici: Webhooks kullanarak, Event Grid aboneleri kontrol etmek için geçerli bir elhak gönderir. webhookunuz, yetkisiz bir olaydan kaçınmak için uygun bir şekilde yanıt vermelidir.
- [FONT:0) Ağ güvenliği: Bir VNet üzerinden Event Grid'e erişmek için özel uç noktaları kullanın. Bu, trafik asla halka açık interneti taşımaz. hibrid senaryolar için Azure VPN veya ExpressRoute kullanın.
- [FONT:0)Data şifreleme[[Dönetici: Olaylar geri kalanında şifrelenir ve transitte (TLS 1.2+) Ayrıca şifreleme anahtarlarını kontrol etmek için kendi anahtarınızı (kahkahası) da getirebilirsin.
Maliyet Yönetimi
Azure Event Grid fiyatlandırması, operasyonların sayısına (kitap ve teslimat girişimlerine) ve konu/ ⁇ kaynaklarına dayanmaktadır. Maliyetleri optimize etmek:
- Birden fazla olay türü abonelik seviyesinde tek bir konu ve filtreye birleştirin. Bu, gerekli konuların sayısını azaltır.
- Olay filtrelemesi gereksiz teslimatlardan kaçınmak için agresif kullanın. Her teslimat bir operasyon olarak sayılır.
- Multi-tenant senaryolar için Event Grid Domainleri kullanın - altyapıyı paylaşıyorlar ve ayrı konulardan daha ucuz olabilirler.
- Uygun yeniden deneme politikaları ayarlanabilmektedir. Varsayılan yeniden yapılanlar (30 gün) çok uzun olabilir; SLA'nıza dayanan zaman-yaşam ve azami yenidenlemeleri ayarlama.
Azure Cost Management ile kullanımınızı izleyin ve beklenmedik faturalardan kaçınmak için bütçeler veya uyarılar oluşturun.
İzleme ve Sorun Giderme
Azure Monitor, Event Grid için kapsamlı ölçümler sağlar. Key metrics şunları içerir:
- [FONT:0]Publish Succeed[[Döntilmişler: Etkinlik sayısı başarıyla yayınlandı.
- [FONT:0]Publish Başarısızlık[[Dönem: yayınlanmamış olan olaylar (örneğin, doğrulama hataları).
- [FONT:0)Delivery Succeed[[Döntilmişler: Etkinlikler abonelere başarıyla teslim edildi.
- [FONT:0)Delivery Başarısız[[[Dönemli: Verilemez Olaylar (örneğin, uç nokta ulaşılamaz).
- [FONT:0]Dead Mektupları[Dönemli: Ölü yeniden deneme girişimleri olan olaylar.
Ayrıca konu ve abonelik için tanı girişleri etkinleştirebilirsiniz. Logs, her yayın ve teslimat işlemi hakkında ayrıntıları yakalar, hata kodları ve geçncy dahil. Log Analytics sorguları belirli olay türleri ile ilişkili başarısızlıkları ilişkilendirir.
Ortak sorun giderme adımları:
- Eğer olaylar eller'e ulaşmazsa, abonelik uç noktasını sağlık kontrol edin. Örnek bir olay göndermek için portaldaki “test” yeteneği kullanın.
- Geçerlilik bir webhook için başarısız olursa, uç noktanızı geçerli olan HTTP 200'e geri döndürür. Azure işlevleri için bağlayıcı bu otomatik olarak çalışır.
- Eğer olaylar ölü çıplak ise, orijinal olay ücreti ve hata detayları için ölü bluz konteynerini inceler.
Diğer Azure Hizmetleri ile entegrasyon
Azure Event Grid birçok Azure hizmeti ile yerli olarak çalışır. İşte birkaç ortak entegrasyon:
- [FONT=0) Azure Blob Storage): Otomatik olarak, blobs oluşturululduğunda olayları gönderir veya güncellenir. işleme hatlarının tetiklenmesi için kullanışlı.
- [FONT:0]) Azure DevOps [Döntgen: Tamamlananlar inşa etmek için Reaktör, istek olayları çekmek ve daha fazla CI/CD otomatikleştirmek için.
- [FONT:0) Azure Machine Learning[[Dönetici: Yeni veriler geldiğinde yeniden eğitim veya dağıtım hatları.
- [FONT:0) Azure IoT Hub[[Dönetici: Route cihazı telemetri ve yaşam döngüsü olayları alt işlemeye.
- [FONT:0)Azure Kubernetes Servisi (AKS)): Ampaj otomatik veya uygulama dağıtım için AKS olayları izlemek için Event Grid kullanın.
Event Grid'in gücü, bu parasız hizmetleri minimum kodla bağlama yeteneğinde yatıyor.
Gerçek Dünya Örneği: Serverless Order Processing
Bir müşteri sipariş ettiği bir e-ticaret platformu düşünün, web uygulaması bir olayda bir Event Grid konusuna yayınlar: [[ENDÜ:5|||||||||||||||||||||||||kullanıcı ve öğeler gibi verilerle ilgili olarak.
- [FONT:0)Inventory Service) (Azure Function): Rezervler stokları ve güncellemeler envanter veritabanı.
- [FONT=0)Payment Service) (Logic App): Üçüncü taraf ağ geçidi aracılığıyla ödeme yapar.
- [FONT:0) Hizmet)[değiştir | kaynağı değiştir] (Webhook to SendGrid): Müşteriye e-posta gönderin.
Her abonelik filtreleri olay türü ve konu tarafından, bu yüzden sadece ilgili olayları alırlar. Ödeme hizmeti başarısız olursa, yeniden kurullar denenir; yorucu bir şekilde, olay manuel müdahale için ölü-kahramandır. Tüm sistem ikiye ayrılır: web uygulaması alt uç hizmetleri hakkında bilmeniz gerekmez.
Sınırlar ve Alternatifler
Azure Event Grid güçlü olsa da, bazı kısıtlamalara sahiptir:
- [FONT:0) Boyut sınırı[[Dönetici: En büyük olay boyutu 1 MB (öncüler dahil) Daha büyük maaş yükleri için, disk depolamaya bir referans kullanın.
- [FONT:0]Throughput[[Dönetici: yüksek olsa da, son derece yüksek olan transkript (İkincideki milyonlarca olay), Azure Event Hubs'ı belirli olayları önlemek için dikkate alın.
- [FONT=0)Yadering[[Dönetici: Etkinlik Grid per-toplayıcı sipariş garanti etmez; olaylar siparişden çıkabilir.Eğer sipariş eleştirel ise, Event Hubs veya Service Bus kullanın.
- [FONT:0) En küçük teslimiyet[DÜDÜT:1): Duplicate delivery mümkündür.
Azure Event Grid'i, bar/sub semantics ile basit, sunucusuz bir olay yönlendiricisine ihtiyacınız olduğunda seçin. Etkinlik akışı veya sipariş edilen teslimat için, diğer Azure mesajlaşma hizmetleriyle birleştirin.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Azure Grid, modern etkinlik odaklı uygulamaları bulutta inşa etmek için temel bir hizmettir. Tüketicilerden gelen üreticiler tarafından, ölçeklenebilir, dayanıklı ve kolay üretim hazırlığı sağlar.
Mikro hizmetleri otomatikleştirmek veya gerçek zamanlı bir bildirim sistemi inşa etmek, Event Grid sağlam, maliyet etkin bir olay yönlendirme katmanı sağlar.Küçük başlayın, etkinlik odaklı zihniyeti kucaklayın ve yavaş yavaş yavaş mesaj tabanlı iş akışlarınızı genişletin. daha büyük Azure ekosistemi ile esneklik ve entegrasyon, geliştiriciler ve mimarlar için bir go-to seçeneği sağlar.
Daha fazla okuma için resmi:0)Azure Event Grid belgeleri) ve [[Dönemli şema referansı[Dönetici 3 ).