INTEGRITY Dokumentace

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.

Obrázek 1: R2 Event Notifications v režimu push
Obrázek 1: R2 Event Notifications v režimu push
  1. Uživatel nahraje nový objekt přímo do R2.
  2. Do fronty je odeslána notifikace o události.
  3. Worker konzumenta obdrží novou práci z fronty.
  4. 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í.

Obrázek 2: R2 Event Notifications v režimu pull
Obrázek 2: R2 Event Notifications v režimu pull
  1. Uživatel zahájí odstranění z R2.
  2. Do fronty je odeslána notifikace o události.
  3. Externí služba, jakmile je připravena zpracovat požadavek, odešle do fronty požadavek HTTP POST, aby zprávu vyzvedla.
  4. Fronta odešle zprávu jako odpověď na požadavek POST z kroku 3.
  5. 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í