AWS Türkçe Blog

HAQM EventBridge Olay Veri Yolları için hesaplar arası hedefleri duyuruyoruz

Orijinal Makale: Link

HAQM EventBridge olay veri yolları için hesaplar arası hedefleri desteklediğini duyuruyor. Bu yeni özellik, olayları doğrudan HAQM Simple Queue Service (HAQM SQS), AWS Lambda ve HAQM Simple Notification Service (HAQM SNS) gibi başka hesaplarda bulunan hedeflere göndermenize olanak tanıyor.

Daha önce, EventBridge bir hesaptaki olay veri yolundan başka bir hesaptaki olay veri yoluna hesaplar arası olay iletimini destekliyordu. Duyurulan yeni EventBridge özelliği bu yeteneği genişletiyor ve kaynak olay veri yolunu, diğer hesaplardaki tüm EventBridge destekli hedeflere, yalnızca olay veri yollarına değil, doğrudan olay iletecek şekilde yapılandırmanıza olanak tanıyor. Bu, hedef hesapta ek bir olay veri yoluna olan ihtiyacı ortadan kaldırıyor.

Genel Bakış

EventBridge ile oluşturulan olay odaklı mimariler, asenkron ve gevşek bağlı kalırken, şirket departmanları ve iş alanları genelinde çözümler oluşturmanıza olanak tanır. Çözümler büyüdükçe, olayları hesap sınırları arasında göndermeniz gerekebilir.

Örneğin, birden fazla hesapta barındırılan ve güvenlikle ilgili olayları merkezi bir hesapta barındırılan bir HAQM SQS kuyruğuna ileten bir dizi olay veri yolunuz olabilir. Bu olaylar daha sonra asenkron işleme ve analiz için kullanılabilir.

Daha önce, EventBridge kuralları aynı hesapta hedefler tanımlamanıza izin veriyordu. Hesaplar arası olay iletimini destekleyen tek hedef türü başka bir olay veri yoluydu. Olayları hesap sınırları arasında göndermek istiyorsanız, hem kaynak hem de hedef hesaplarda olay veri yolları oluşturmanız gerekiyordu. Ardından, kaynak olay veri yolunda olayları hedef veri yoluna göndermek için bir kural ve hedef olay veri yolunda olayı hedef hesaptaki istenen hedefe iletmek için başka bir kural yapılandır. Alternatif olarak, bir Lambda fonksiyonu veya SNS konusu(topic), olayları hesaplar arasında göndermek için bir köprü mekanizması olarak kullanılabilirdi.

Aşağıdaki diyagram, yeni özellikten önce hesaplar arası olay iletim mimarisinin neye benzediğini gösteriyor. Olayları bir hesaptan diğerine göndermek için başka bir olay veri yolu, SNS konusu veya Lambda fonksiyonu gibi bir “köprü” bileşeni gerekliydi.

Delivering cross-account events from source bus to target bus.

Şekil 1: Kaynak veri yolundan hedef veri yoluna hesaplar arası olayların iletilmesi

Bu yeni EventBridge özelliği ile, kaynak olay veri yolundan farklı hesaplardaki istenen hedeflere doğrudan olaylar iletebilirsiniz. Bu, mimariyi ve izin modelini basitleştirir. Ayrıca, kaynaktan hedeflere giden yol boyunca olayları işleyen daha az bileşen olması sayesinde olay odaklı çözümlerinizdeki gecikmeyi azaltır.

Delivering cross-account events to target directly.

Şekil 2: Hesaplar arası olayları doğrudan hedefe iletme

Hesaplar arası olay iletimi için EventBridge iletim kuralı hedeflerini yapılandırma

Hesaplar arası olay iletimini etkinleştirirken güvenliği göz önünde bulundurmalısınız. Kaynak ve hedef arasında karşılıklı güven(mutual trust) oluşturmanız gerekir. Kaynak olay veri yolu kurallarının, belirli hedeflere olay göndermelerine izin veren bir AWS Identity and Access Management (IAM) rolüne sahip olması gerekir. Bu, iletim kuralı hedeflerine bir yürütme rolü ekleyerek sağlanır.

Farklı hesaplarda barındırılan olay iletim hedeflerinin, kaynak hesapta kullanılan yürütme rolünden olay almaya açıkça izin veren bir kaynak erişim politikası eklenmiş olması gerekir. Bu gereksinim nedeniyle, hesaplar arası olay iletimini yalnızca HAQM SQS kuyrukları, HAQM SNS konuları ve AWS Lambda fonksiyonları gibi kaynak erişim politikalarını destekleyen hedefler için etkinleştirebilirsiniz.

Kaynak hesapta bir IAM rolü ve hedef hesapta bir kaynak politikasına sahip olmak, hangi sorumluların PutEvents eylemini hangi koşullar altında kullanabileceği üzerinde ayrıntılı kontrol sahibi olmanızı sağlar. Organizasyonunuzda kimlerin olay gönderip alabileceğini belirleyen organizasyonel sınırları ayarlamak için hizmet kontrol politikaları (SCP’ler) tanımlayabilirsiniz.

Aşağıdaki diyagramda gösterildiği gibi, A Ekibinin kaynak hesaba (Hesap A) sahip olduğunu düşünün. A Ekibi, kaynak olay veri yolunu, yürütme rolünü, kuralları ve hedefleri ayarlamaktan sorumludur. B ve C Ekipleri hedef hesaplara sahiptir (sırasıyla Hesap B ve Hesap C). Her iki ekip de kendi hedef hesaplarını yönetir. Örneğin, SQS kuyrukları gibi iletim hedefleri oluşturma ve kaynak hesaptaki olay veri yolundan gelen olayları kabul etmek için izinler verme. Bu yaklaşım, A Ekibinin diğer ekipler için merkezi kaynak olay veri yolunu yönetmesine ve B ile C Ekiplerinin kendi hedeflerine kimlerin olay gönderebileceğini kontrol etmesine olanak tanır. Bu, genel kontrol ve yönetişim açısından yüksek düzeyde kontrol sağlar.

A cross-team collaboration sending events from source account to target account targets.

Şekil 3: Kaynak hesaptan hedef hesap hedeflerine olay gönderen ekipler arası işbirliği

Aşağıdaki örnek, bir SQS kuyruğuna hesaplar arası olay iletimini ayarlamayı açıklamaktadır. Aynı tekniği Lambda fonksiyonları veya SNS konuları gibi diğer hedef türleri için de uygulayabilirsiniz.

Kavramsal mimari düzen ve kaynak oluşturma sırası için aşağıdaki diyagrama bakın.

Permissions required for cross-account event delivery.

Şekil 4: Hesaplar arası olay iletimi için gereken izinler

Kaynak olay veri yolunun zaten var olduğunu varsayarsak, hesaplar arası olay iletimini ayarlamak için üç genel adım vardır:

  1. Hedef hesap – SQS kuyruğu gibi bir iletim hedefi oluşturun.
  2. Kaynak hesap – hesaplar arası olay iletimi için bir kural yapılandırın. Hedef SQS kuyruğu ARN’sini kural hedefi olarak ayarlayın ve hedef SQS Kuyruğuna mesaj göndermek için izinlere sahip bir yürütme rolü ekleyin.
  3. Hedef hesap – hedef SQS kuyruğuna, kaynak olay veri yolu yürütme rolünün olay göndermesine izin veren bir kaynak politikası uygulayın.

Hesaplar arası teslimi uygulamada gösterme

Bu GitHub deposundaki talimatları izleyerek AWS Serverless Application Model (AWS SAM) kullanarak örneği AWS hesaplarınızda sağlayabilirsiniz. Kaynak hesaptaki bir olay veri yolu kuralı, olayları doğrudan hedef hesaptaki bir SQS kuyruğuna, bir Lambda fonksiyonuna ve bir SNS konusuna gönderir. Örneğin çalışması için iki hesaba sahip olmanız gerekir.

The sample project architecture, delivering events cross-account to Lambda, SQS, and SNS.

Şekil 5: Örnek proje mimarisi, olayları hesaplar arası Lambda, SQS ve SNS’ye iletiyor.

SnsSubscriptionEmail değeri olarak geçerli bir e-posta adresi girdiğinizden emin olun ve hedef yığın dağıtıldıktan sonra e-posta aboneliğinizi onaylayın.

Dağıtımdan sonra, kaynak hesapta EventBridge konsolunu açın. Adında “SourceEventBus” bulunan yeni oluşturulan olay veri yoluna gidin. Aşağıdaki ekran görüntüsünde gösterildiği gibi örnek olaylar yayınlamak için Olay Gönder işlevini kullanın. Olaylarınızın Kaynağının “test” olarak ayarlandığından emin olun.

Sending test event.

Şekil 6: Test olayı gönderme

Olayların üç hesaplar arası hedefe başarıyla iletildiğini doğrulayın. Hedef hesabı farklı bir tarayıcıda veya gizli pencerede açın:

  1. SQS konsoluna gidin. Adında “TargetSqsQueue” bulunan yeni oluşturulan kuyruğu açın.
  2. Mesaj Gönder ve Al seçeneğini seçin, ardından Mesajları Sorgula seçeneğini seçin. Önceki adımda gönderilen olayları görebilirsiniz.Receiving test event with SQS.Şekil 7: SQS ile test olayı alma
  3. HAQM CloudWatch Logs‘a gidin. Adında “TargetLambdaFunction” bulunan yeni oluşturulan Lambda fonksiyonu için Log Grubunu açın. Önceki adımda gönderilen olayları gösterir.
    Receiving test event with Lambda.Şekil 8: Lambda ile test olayı alma
  4. E-postanızı kontrol edin. Örnek kod dağıtımı sırasında SNS konu aboneliğini onayladıysanız, önceki adımda gönderilen olayları gösterir.Receiving test event with SNS.Şekil 9: SNS ile test olayı alma

Sonuç

Yeni EventBridge özelliği, olayları hesap sınırları arasında doğrudan hedeflere iletmenize olanak tanır. Bu yetenek, olay odaklı mimarilerinizi basitleştirmenize yardımcı olur ve olaylarınızın olay veri yollarından hedeflerine giderken işleyen bileşen sayısını azaltarak gecikmeyi iyileştirir.

Hesaplar arası olay iletim maliyetleri hakkında daha fazla bilgi edinmek için EventBridge fiyatlandırma sayfasına bakabilirsiniz.

Ek belgeler için HAQM EventBridge belgelerine bakın. Bu blogda kullanılan örnek kodu bu GitHub deposundan alabilirsiniz.

Daha fazla sunucusuz öğrenme kaynağı için Serverless Land‘i ziyaret edebilirsiniz.