Megosztás a következőn keresztül:


Eseményreplikációs feladatok és alkalmazások az Azure Functions használatával

Tipp.

Az összes olyan állapotalapú replikációs feladat esetében, ahol figyelembe kell vennie az események hasznos adatait, és átalakítania, összesítenie, bővítenie vagy csökkentenie kell azokat, az Azure Functions helyett az Azure Stream Analyticset kell használnia.

Az eseményreplikációval és a régiók közötti összevonási cikkben leírtak szerint az eseménystreamek állapot nélküli replikálása az Event Hubs-párok és az Event Hubs és más eseménystream-források között, és a célok az Azure Functionsre támaszkodnak.

Az Azure Functions egy méretezhető és megbízható végrehajtási környezet kiszolgáló nélküli alkalmazások konfigurálásához és futtatásához, beleértve az eseményreplikációs és összevonási feladatokat.

Ebben az áttekintésben megismerheti az Azure Functions beépített képességeit az ilyen alkalmazásokhoz, megismerheti az átalakítási feladatokhoz adaptálható és módosítható kódblokkokat, valamint azt, hogy hogyan konfigurálhat olyan Azure Functions-alkalmazásokat, amelyek ideális módon integrálhatók az Event Hubs-ral és más Azure Messaging-szolgáltatásokkal. Ez a cikk sok részletben az Azure Functions dokumentációját ismerteti.

Mi az a replikációs feladat?

A replikációs tevékenység eseményeket fogad egy forrástól, és továbbítja őket egy célnak. A legtöbb replikációs feladat változatlanul továbbítja az eseményeket, és legfeljebb megfeleltetést hajt végre a metaadat-struktúrák között, ha a forrás- és a célprotokollok eltérőek.

A replikációs tevékenységek általában állapot nélküliek, ami azt jelenti, hogy nem osztják meg az állapotot vagy más mellékhatásokat a tevékenységek szekvenciális vagy párhuzamos végrehajtása során. Ez a kötegelésre és a láncolásra is igaz, amely a stream meglévő állapotán felül valósítható meg.

Így a replikációs feladatok eltérnek az általánosan állapotalapú összesítési feladatoktól, és olyan elemzési keretrendszerek és szolgáltatások tartománya, mint az Azure Stream Analytics.

Replikációs alkalmazások és feladatok az Azure Functionsben

Az Azure Functionsben a replikációs feladat egy olyan eseményindítóval valósul meg, amely bemeneti üzeneteket szerez be egy konfigurált forrásból, valamint egy kimeneti kötést , amely a forrásból másolt üzeneteket egy konfigurált célhoz továbbítja.

Eseményindító Hozam
Azure Event Hubs-eseményindító Azure Event Hubs kimeneti kötés
Azure Service Bus-eseményindító Azure Service Bus kimeneti kötés
Azure IoT Hub-eseményindító Azure IoT Hub kimeneti kötés
Azure Event Grid-eseményindító Azure Event Grid kimeneti kötés
Azure Queue Storage-eseményindító Azure Queue Storage kimeneti kötés
Apache Kafka-eseményindító Apache Kafka kimeneti kötés
RabbitMQ eseményindító RabbitMQ kimeneti kötés
Azure Notification Hubs kimeneti kötés
Azure SignalR szolgáltatás kimeneti kötése
Twilio SendGrid kimeneti kötés

A replikációs feladatok a replikációs alkalmazásba ugyanazokon az üzembe helyezési módszereken keresztül lesznek üzembe helyezve, mint bármely más Azure Functions-alkalmazás. Több feladatot is konfigurálhat ugyanabba az alkalmazásba.

Az Azure Functions Premium használatával több replikációs alkalmazás is használhatja ugyanazt a mögöttes erőforráskészletet, amelyet App Service-csomagnak hívunk. Ez azt jelenti, hogy könnyedén csoportosíthatja a .NET-ben írt replikációs feladatokat például a Java nyelven írt replikációs feladatokkal. Ez akkor számít, ha olyan kódtárakat szeretne használni, mint például az Apache Camel, amelyek csak a Java számára érhetők el, és ha ezek a legjobb lehetőségek egy adott integrációs útvonalhoz, annak ellenére, hogy általában más nyelvet és futtatókörnyezetet szeretne használni a többi replikációs feladathoz.

Amikor elérhető, érdemes előnyben részesítenie a kötegorientált eseményindítókat az egyes eseményeket vagy üzeneteket kézbesítő eseményindítókkal szemben, és mindig a teljes esemény- vagy üzenetstruktúrát kell beszereznie, nem pedig az Azure-függvény paraméterkötési kifejezéseire támaszkodnia.

A függvény nevének tükröznie kell a csatlakoztatni kívánt forrás és cél párját, és előtagként hivatkoznia kell kapcsolati sztring vagy más konfigurációs elemekre az alkalmazáskonfigurációs fájlokban ezzel a névvel.

Adatok és metaadatok leképezése

Miután eldöntött egy bemeneti eseményindítót és egy kimeneti kötést, végre kell hajtania néhány leképezést a különböző esemény- vagy üzenettípusok között, kivéve, ha az eseményindító típusa és a kimenete megegyezik.

Az Event Hubs és a Service Bus közötti üzeneteket másoló egyszerű replikációs feladatokhoz nem kell saját kódot írnia, hanem egy olyan segédprogramtárra támaszkodhat, amely a replikációs mintákhoz tartozik .

Újrapróbálkozási szabályzat

Ha a replikációs függvény mindkét oldalán szeretné elkerülni az adatvesztést a rendelkezésre állási esemény során, konfigurálnia kell az újrapróbálkozási szabályzatot, hogy robusztus legyen. Tekintse meg az Újrapróbálkozás szabályzat konfigurálásához szükséges újrapróbálkozásokat az Azure Functions dokumentációjában.

A mintaadattárban a példaprojektekhez választott szabályzatbeállítások exponenciális backoff stratégiát konfigurálnak 5 másodperctől 15 percig történő újrapróbálkozási időközökkel, végtelen újrapróbálkozással az adatvesztés elkerülése érdekében.

Az Azure Functions újrapróbálkozási szabályzatainak általánosan elérhető (GA) verziója csak az Event Hubs és az Időzítő eseményindítóit támogatja. Az összes többi eseményindító előzetes verziója el lett távolítva.

Replikációs alkalmazás gazdagépének beállítása

A replikációs alkalmazás egy vagy több replikációs feladat végrehajtási állomása.

Ez egy Azure Functions-alkalmazás, amely úgy van konfigurálva, hogy vagy a használati csomagon fusson, vagy (ajánlott) egy Azure Functions Premium-csomagon. Minden replikációs alkalmazásnak rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás alatt kell futnia.

A csatolt Azure Resource Manager-sablonok létrehoznak és konfigurálnak egy replikációs alkalmazást a következőkkel:

  • Egy Azure Storage-fiók a replikáció előrehaladásának nyomon követéséhez és a naplókhoz.
  • Rendszer által hozzárendelt felügyelt identitás.
  • Az Azure Monitor és az Application Insights integrációja a monitorozáshoz.

Az Azure-beli virtuális hálózathoz (VNethez) kötött Event Hubshoz hozzáféréssel rendelkező replikációs alkalmazásoknak az Azure Functions Premium-csomagot kell használniuk, és konfigurálva kell lenniük arra, hogy ugyanahhoz a virtuális hálózathoz csatolják, ami szintén az egyik elérhető lehetőség.

Üzembe helyezés Vizualizáció
Az Azure Functions használati csomagja Üzembe helyezés az Azure-ban Vizualizáció
Prémium szintű Azure Functions-csomag Üzembe helyezés az Azure-ban Vizualizáció
Azure Functions Premium-csomag virtuális hálózattal Üzembe helyezés az Azure-ban Vizualizáció

Példák

A mintaadattár számos példát tartalmaz olyan replikációs feladatokra, amelyek eseményeket másolnak az Event Hubs és/vagy a Service Bus-entitások között.

Eseményadatok eseményközpontok közötti másolásához egy Event Hubs-eseményindítót használ egy Event Hubs kimeneti kötéssel:

[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);
}

A Service Bus-entitások közötti üzenetek másolásához a Service Bus-eseményindítót és a kimeneti kötést használja:

[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);
}

A segédmetódusok megkönnyítik az Event Hubs és a Service Bus közötti replikálásokat:

Forrás Cél Belépési pont
Event Hubs Event Hubs Azure.Messaging.Replication.EventHubReplicationTasks.ForwardToEventHub
Event Hubs Service Bus Azure.Messaging.Replication.EventHubReplicationTasks.ForwardToServiceBus
Service Bus Event Hubs Azure.Messaging.Replication.ServiceBusReplicationTasks.ForwardToEventHub
Service Bus Service Bus Azure.Messaging.Replication.ServiceBusReplicationTasks.ForwardToServiceBus

Figyelés

A replikációs alkalmazás monitorozásának módjáról az Azure Functions dokumentációjának figyelési szakaszában olvashat.

A replikációs feladatok figyelésére különösen hasznos vizuális eszköz az Application Insights alkalmazástérképe, amely automatikusan generálódik a rögzített figyelési információkból, és lehetővé teszi a replikációs feladat forrásának és a célátvitelek megbízhatóságának és teljesítményének feltárását.

Az azonnali diagnosztikai elemzésekhez használhatja az Élő metrikák portál eszközt, amely alacsony késésű vizualizációt biztosít a naplóadatokról.

Következő lépések