Aracılığıyla paylaş


Azure İşlevleri ile olay çoğaltma görevleri ve uygulamaları

İpucu

Olaylarınızın yüklerini dikkate almanız ve bunları dönüştürmeniz, toplamanız, zenginleştirmeniz veya azaltmanız gereken durum bilgisi olan tüm çoğaltma görevleri için Azure İşlevleri yerine Azure Stream Analytics'i kullanın.

Olay çoğaltma ve bölgeler arası federasyon makalesinde açıklandığı gibi, olay akışlarının Event Hubs çiftleri ile Event Hubs ile diğer olay akışı kaynakları ve hedefleri arasında durum bilgisi olmayan çoğaltması Azure İşlevleri.

Azure İşlevleri, olay çoğaltma ve federasyon görevleri de dahil olmak üzere sunucusuz uygulamaları yapılandırmak ve çalıştırmak için ölçeklenebilir ve güvenilir bir yürütme ortamıdır.

Bu genel bakışta, Azure İşlevleri'in bu tür uygulamalar için yerleşik özellikleri, dönüştürme görevleri için uyarlayıp değiştirebileceğiniz kod blokları ve Event Hubs ve diğer Azure Mesajlaşma hizmetleriyle ideal bir şekilde tümleştirilecek şekilde Azure İşlevleri bir uygulamayı yapılandırma hakkında bilgi edineceksiniz. Birçok ayrıntı için bu makale Azure İşlevleri belgelerine işaret edecektir.

Çoğaltma görevi nedir?

Çoğaltma görevi bir kaynaktan olayları alır ve bir hedefe iletir. Çoğu çoğaltma görevi, olayları değişmeden iletir ve kaynak ve hedef protokoller farklıysa meta veri yapıları arasında eşleme gerçekleştirir.

Çoğaltma görevleri genellikle durum bilgisizdir; başka bir deyişle, bir görevin sıralı veya paralel yürütmelerinde durum veya diğer yan etkileri paylaşmaz. Bu aynı zamanda toplu işlem ve zincirleme için de geçerlidir. Bu, her ikisi de bir akışın mevcut durumunun üzerine uygulanabilir.

Bu, çoğaltma görevlerini genellikle durum bilgisi olan ve Azure Stream Analytics gibi analiz çerçevelerinin ve hizmetlerinin etki alanı olan toplama görevlerinden farklı hale getirir.

Azure İşlevleri'da çoğaltma uygulamaları ve görevleri

Azure İşlevleri bir çoğaltma görevi, yapılandırılmış bir kaynaktan giriş iletileri alan bir tetikleyici ve kaynaktan kopyalanan iletileri yapılandırılmış bir hedefe ileten bir çıkış bağlaması kullanılarak uygulanır.

Tetikle Çıktı
Azure Event Hubs tetikleyicisi Azure Event Hubs çıkış bağlaması
Azure Service Bus tetikleyicisi Azure Service Bus çıkış bağlaması
Azure IoT Hub tetikleyicisi Azure IoT Hub çıkış bağlaması
Azure Event Grid tetikleyicisi Azure Event Grid çıkış bağlaması
Azure Kuyruk Depolama tetikleyicisi Azure Kuyruk Depolama çıkış bağlaması
Apache Kafka tetikleyicisi Apache Kafka çıkış bağlaması
RabbitMQ tetikleyicisi RabbitMQ çıkış bağlaması
Azure Notification Hubs çıkış bağlaması
Azure SignalR hizmet çıkış bağlaması
Twilio SendGrid çıkış bağlaması

Çoğaltma görevleri, diğer Azure İşlevleri uygulamalarla aynı dağıtım yöntemleri aracılığıyla çoğaltma uygulamasına dağıtılır. Aynı uygulamada birden çok görev yapılandırabilirsiniz.

Azure İşlevleri Premium ile, birden çok çoğaltma uygulaması App Service Planı olarak adlandırılan aynı temel kaynak havuzunu paylaşabilir. Bu, .NET'te yazılan çoğaltma görevlerini, örneğin Java'da yazılmış çoğaltma görevleriyle kolayca birlikte kullanabileceğiniz anlamına gelir. Apache Camel gibi yalnızca Java için kullanılabilen belirli kitaplıklardan yararlanmak istiyorsanız ve diğer çoğaltma görevleriniz için genellikle farklı bir dil ve çalışma zamanı tercih etseniz bile, bunlar belirli bir tümleştirme yolu için en iyi seçenekse bu önemlidir.

Kullanılabilir olduğunda, tek tek olayları veya iletileri teslim eden tetikleyiciler yerine toplu iş odaklı tetikleyicileri tercih etmelisiniz ve Azure İşlevi'nin parametre bağlama ifadelerine güvenmek yerine her zaman tam olay veya ileti yapısını edinmeniz gerekir.

İşlevin adı, bağlandığınız kaynak ve hedef çiftini yansıtmalı ve uygulama yapılandırma dosyalarındaki bağlantı dizesi veya diğer yapılandırma öğelerine başvurulara bu ada sahip ön ek oluşturmanız gerekir.

Veri ve meta veri eşleme

Bir giriş tetikleyicisi ve çıkış bağlama çiftine karar verdikten sonra, tetikleyicinizin türü ve çıktı aynı olmadığı sürece farklı olay veya ileti türleri arasında bazı eşlemeler yapmanız gerekir.

Event Hubs ile Service Bus arasında iletileri kopyalayan basit çoğaltma görevleri için kendi kodunuzu yazmanız gerekmez, ancak çoğaltma örnekleriyle birlikte sağlanan bir yardımcı program kitaplığına dayanabilirsiniz.

Yeniden deneme ilkesi

Çoğaltma işlevinin her iki tarafındaki kullanılabilirlik olayı sırasında veri kaybını önlemek için yeniden deneme ilkesini sağlam olacak şekilde yapılandırmanız gerekir. Yeniden deneme ilkesini yapılandırmak için yeniden denemeler hakkındaki Azure İşlevleri belgelerine bakın.

Örnek depodaki örnek projeler için seçilen ilke ayarları, veri kaybını önlemek için sonsuz yeniden denemelerle 5 saniye ile 15 dakika arasında yeniden deneme aralıklarıyla üstel geri alma stratejisi yapılandırmaktadır.

Azure İşlevleri için yeniden deneme ilkelerinin genel kullanıma sunulan (GA) sürümü yalnızca Event Hubs ve Zamanlayıcı tetikleyicilerini destekler. Diğer tüm tetikleyiciler için önizleme desteği kaldırıldı.

Çoğaltma uygulaması konağı ayarlama

Çoğaltma uygulaması, bir veya daha fazla çoğaltma görevi için bir yürütme konağıdır.

Bu, tüketim planında veya Azure İşlevleri Premium planında (önerilen) çalışacak şekilde yapılandırılmış bir Azure İşlevleri uygulamasıdır. Tüm çoğaltma uygulamaları sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik altında çalıştırılmalıdır.

Bağlı Azure Resource Manager (ARM) şablonları aşağıdakilerle bir çoğaltma uygulaması oluşturur ve yapılandırılır:

  • Çoğaltma ilerleme durumunu izlemek ve günlükler için bir Azure Depolama hesabı.
  • Sistem tarafından atanan yönetilen kimlik.
  • İzleme için Azure İzleyici ve Application Insights tümleştirmesi.

Azure sanal ağına (VNet) bağlı Event Hubs'a erişmesi gereken çoğaltma uygulamalarının Azure İşlevleri Premium planını kullanması ve aynı sanal ağa eklenecek şekilde yapılandırılması gerekir; bu da kullanılabilir seçeneklerden biridir.

Dağıtma Görselleştirme
Azure İşlevleri Tüketim Planı Azure'a Dağıt Görselleştirme
premium planı Azure İşlevleri Azure'a Dağıt Görselleştirme
VNet ile Premium Planı Azure İşlevleri Azure'a Dağıt Görselleştirme

Örnekler

Örnek deposu, Event Hubs ve/veya Service Bus varlıkları arasında olayları kopyalayan çoğaltma görevlerinin birkaç örneğini içerir.

Olay hub'ları arasında olay verilerini kopyalamak için Event Hubs çıkış bağlaması olan bir Event Hubs Tetikleyicisi kullanırsınız:

[FunctionName("telemetry")]
[ExponentialBackoffRetry(-1, "00:00:05", "00:05:00")]
public static Task Telemetry(
    [EventHubTrigger("telemetry", ConsumerGroup = "$USER_FUNCTIONS_APP_NAME.telemetry", Connection = "telemetry-source-connection")] EventData[] input,
    [EventHub("telemetry-copy", Connection = "telemetry-target-connection")] EventHubClient outputClient,
    ILogger log)
{
    return EventHubReplicationTasks.ForwardToEventHub(input, outputClient, log);
}

Service Bus varlıkları arasında iletileri kopyalamak için Service Bus tetikleyicisini ve çıkış bağlamasını kullanırsınız:

[FunctionName("jobs-transfer")]
[ExponentialBackoffRetry(-1, "00:00:05", "00:05:00")]
public static Task JobsTransfer(
    [ServiceBusTrigger("jobs-transfer", Connection = "jobs-transfer-source-connection")] Message[] input,
    [ServiceBus("jobs", Connection = "jobs-target-connection")] IAsyncCollector<Message> output,
    ILogger log)
{
    return ServiceBusReplicationTasks.ForwardToServiceBus(input, output, log);
}

Yardımcı yöntemler Event Hubs ile Service Bus arasında çoğaltmayı kolaylaştırabilir:

Source Target Girdi Noktası
Event Hubs Event Hubs Azure.Messaging.Replication.EventHubReplicationTasks.ForwardToEventHub
Olay Hub'ları Hizmet Veri Yolu Azure.Messaging.Replication.EventHubReplicationTasks.ForwardToServiceBus
Service Bus Olay Hub'ları Azure.Messaging.Replication.ServiceBusReplicationTasks.ForwardToEventHub
Hizmet Veri Yolu Service Bus Azure.Messaging.Replication.ServiceBusReplicationTasks.ForwardToServiceBus

İzleme

Çoğaltma uygulamanızı nasıl izleyebileceğinizi öğrenmek için lütfen Azure İşlevleri belgelerinin izleme bölümüne bakın.

Çoğaltma görevlerini izlemek için özellikle kullanışlı bir görsel araç, yakalanan izleme bilgilerinden otomatik olarak oluşturulan ve çoğaltma görev kaynağı ile hedef aktarımlarının güvenilirliğini ve performansını keşfetmeye olanak tanıyan Application Insights Uygulama Haritası'dır.

Anında tanılama içgörüleri için günlük ayrıntılarının düşük gecikme süreli görselleştirmesini sağlayan Canlı Ölçümler portalı aracıyla çalışabilirsiniz.

Sonraki adımlar