← Referenční architektury / reference-architecture / diagrams / storage
Oznámení událostí pro úložiště
Úvod
Cloudflare R2 Úložiště umožňuje vývojářům ukládat velké objemy nestrukturovaných dat bez nákladných poplatků za odchozí přenos dat (egress), které jsou typické pro běžné cloudové úložné služby. Životní cyklus dat v objektovém úložišti obvykle nekončí jejich nahráním, úpravou nebo smazáním. Často je potřeba data dále transformovat, analyzovat nebo nad nimi provádět další zpracování. R2 k tomu poskytuje oznámení o událostech ke správě těchto workflow řízených událostmi.
Tento dokument popisuje, jak používat naši integrovanou serverless Cloudflare Workers nebo externí službu, která sleduje oznámení o změnách dat a odpovídajícím způsobem je zpracovává.
Worker odběratel typu push
Event Notifications fungují tak, že odesílají zprávy do fronta při jakékoli změně vašich dat. Tyto zprávy pak zpracovává přijímající Worker. Consumer Worker je označení pro klienta, který odebírá zprávy z fronty nebo se k ní přihlašuje k odběru. Consumer Worker tyto zprávy přijímá automaticky, takže si můžete definovat, jaké další akce se mají provést.
Můžete si například nakonfigurovat upozornění, které se spustí při nahrání nových obrázků do vašeho R2 bucketu. Toto upozornění pak může automaticky spustit úlohu AI, která s obrázkem provede určitou akci, například jeho převod na text.
Podívejte se na následující příklad následného zpracování založeného na push: když uživatel nahraje do R2 nový objekt, chceme tuto událost zaznamenat a uložit do samostatného R2 bucketu. Tento scénář si můžete vytvořit sami podle tohoto návodu: Protokolujte a ukládejte události nahrávání v R2 pomocí Event Notifications.
- Uživatel nahraje nový objekt přímo do R2.
- Do fronty je odeslána notifikace o události.
- Worker konzumenta obdrží novou práci z fronty.
- Worker vloží záznam události do R2.
HTTP odběratel typu pull
Alternativně můžete navázat odběratel typu pull, kde přes HTTP odebíráte zprávy z fronty z libovolného prostředí. Pull consumer použijte v případě, že potřebujete odebírat zprávy z existující infrastruktury mimo Cloudflare a chcete mít přesnou kontrolu nad rychlostí jejich zpracování.
Konzument typu pull musí explicitně zavolat funkci pro vyzvednutí zpráv z fronty (a následně je potvrdit), a to pouze ve chvíli, kdy je k tomu připraven.
Podívejte se na následující scénář: uživatel v R2 zahájí odstranění. O tomto odstranění je potřeba informovat externí službu, proto byla zřízena fronta založená na pull modelu, ze které si externí služba vyzvedává oznámení.
- Uživatel zahájí odstranění z R2.
- Do fronty je odeslána notifikace o události.
- Externí služba, jakmile je připravena zpracovat požadavek, odešle do fronty požadavek HTTP POST, aby zprávu vyzvedla.
- Fronta odešle zprávu jako odpověď na požadavek POST z kroku 3.
- Externí služba musí potvrdit přijetí zprávy.
Kroky zde vám ukážou, jak nakonfigurovat konzumenta typu pull.
Další příklady použití
- Odešlete e-mail administrátorovi vždy, když jsou z R2 smazány objekty.
- Když se do R2 nahraje video nebo podcast, obsah se automaticky zpracuje pomocí jednoho z modelů umělé inteligence Cloudflare pro automatické rozpoznávání řeči (ASR), který vygeneruje titulky, nebo obsah dokonce přeloží.
- Při odstranění objektu v R2 odstraňte i související záznamy v databázi.