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.
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 | ||
Prémium szintű Azure Functions-csomag | ||
Azure Functions Premium-csomag virtuális hálózattal |
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.