Reakce na události služby Blob Storage
Události služby Azure Storage umožňují aplikacím reagovat na události, jako je vytváření a odstraňování objektů blob. Dělá to bez nutnosti složitého nebo nákladného a neefektivního dotazování služeb. Nejlepší část je, že platíte jenom za to, co používáte.
Události úložiště objektů blob se odsílají pomocí Azure Event Gridu odběratelům, jako jsou Azure Functions, Azure Logic Apps nebo dokonce do vlastního naslouchacího procesu HTTP. Event Grid nabízí spolehlivé doručování událostí do aplikací díky bohatým zásadám opakování a zpracování nedoručených zpráv.
Úplný seznam událostí, které podporuje úložiště objektů blob, najdete v článku o schématu událostí služby Blob Storage.
Mezi běžné scénáře událostí úložiště objektů blob patří zpracování obrázků nebo videa, indexování vyhledávání nebo jakýkoli pracovní postup orientovaný na soubory. Asynchronní nahrávání souborů je vhodné pro události. Pokud změny nejsou časté, ale váš scénář vyžaduje okamžitou odezvu, může být architektura založená na událostech obzvláště efektivní.
Pokud chcete vyzkoušet události úložiště objektů blob, podívejte se na některý z těchto článků rychlého startu:
Pokud chcete použít tento nástroj: | Podívejte se na tento článek: |
---|---|
portál Azure | Rychlý start: Směrování událostí úložiště objektů blob do webového koncového bodu pomocí webu Azure Portal |
PowerShell | Rychlý start: Směrování událostí úložiště do webového koncového bodu pomocí PowerShellu |
Azure CLI | Rychlý start: Směrování událostí úložiště do webového koncového bodu s využitím Azure CLI |
Podrobné příklady reakce na události úložiště objektů blob pomocí funkcí Azure najdete v těchto článcích:
- Kurz: Aktualizace tabulky Databricks Delta pomocí událostí služby Azure Data Lake Storage
- Kurz: Automatizace změny velikosti nahraných obrázků pomocí Event Gridu
Poznámka:
Úložiště (pro obecné účely v1) nepodporuje integraci se službou Event Grid.
Model událostí
Event Grid používá odběry událostí ke směrování zpráv událostí odběratelům. Tento obrázek znázorňuje vztah mezi vydavateli událostí, odběry událostí a obslužnými rutinami událostí.
Nejprve se přihlaste k odběru koncového bodu události. Po aktivaci události pak služba Event Grid odešle data o této události do koncového bodu.
Další informace najdete v článku o schématu událostí služby Blob Storage:
Úplný seznam událostí úložiště objektů blob a způsob aktivace jednotlivých událostí.
Příklad dat, která event Grid odešle pro každou z těchto událostí.
Účel každého páru klíč-hodnota, který se zobrazí v datech.
Filtrování událostí
Události objektů blob je možné filtrovat podle typu události, názvu kontejneru nebo názvu objektu, který byl vytvořen nebo odstraněn. Filtry ve službě Event Grid odpovídají začátku nebo konci předmětu, aby události s odpovídajícím předmětem přešly na odběratele.
Další informace o tom, jak použít filtry, najdete v tématu Filtrování událostí pro Event Grid.
Předmět událostí služby Blob Storage používá formát:
/blobServices/default/containers/<containername>/blobs/<blobname>
Pokud chcete shodovat všechny události pro účet úložiště, můžete nechat filtry předmětu prázdné.
Pokud chcete shodovat události z objektů blob vytvořených v sadě kontejnerů sdílejících předponu, použijte filtr podobný subjectBeginsWith
hle:
/blobServices/default/containers/containerprefix
Pokud chcete shodovat události z objektů blob vytvořených v konkrétním kontejneru, použijte filtr podobný následujícímu subjectBeginsWith
:
/blobServices/default/containers/containername/
Pokud chcete shodovat události z objektů blob vytvořených v konkrétním kontejneru sdílející předponu názvu objektu blob, použijte filtr podobný subjectBeginsWith
hle:
/blobServices/default/containers/containername/blobs/blobprefix
Pokud chcete shodovat události z objektů blob vytvořených v konkrétní příponě kontejneru, použijte subjectEndsWith
filtr, jako je ".log" nebo ".jpg". Další informace najdete v tématu Koncepty služby Event Grid.
Postupy pro využívání událostí
Aplikace, které zpracovávají události úložiště objektů blob, by měly dodržovat několik doporučených postupů:
Vzhledem k tomu, že ke směrování událostí do stejné obslužné rutiny události je možné nakonfigurovat více odběrů, je důležité nepředpokládá, že události pocházejí z určitého zdroje, ale pokud chcete zkontrolovat téma zprávy, abyste měli jistotu, že pochází z očekávaného účtu úložiště.
Podobně zkontrolujte, jestli je eventType jeden, který jste připraveni zpracovat, a nepředpokládáte, že všechny události, které obdržíte, budou typy, které očekáváte.
Zatímco většina zpráv dorazí téměř v reálném čase, neexistuje žádná smlouva o úrovni služeb v době, kterou trvá přijetí zprávy. V některých případech může doručení zprávy trvat několik minut. Vzhledem k tomu, že zprávy můžou dorazit po nějaké prodlevě, použijte pole etag, abyste pochopili, jestli jsou vaše informace o objektech stále aktuální. Informace o použití pole etag najdete v tématu Správa souběžnosti ve službě Blob Storage.
Vzhledem k tomu, že zprávy mohou přijít mimo pořadí, použijte pole sequenceru k pochopení pořadí událostí u libovolného konkrétního objektu. Pole sequenceru je řetězcová hodnota, která představuje logickou sekvenci událostí pro libovolný konkrétní název objektu blob. Pomocí standardního porovnání řetězců můžete porozumět relativní sekvenci dvou událostí ve stejném názvu objektu blob.
Události úložiště zaručují alespoň jedno doručení odběratelům, což zajišťuje, aby se všechny zprávy vysílaly. Kvůli opakovaným pokusům mezi back-endovými uzly a službami nebo dostupností odběrů ale může dojít k duplicitním zprávám. Další informace o doručení a opakování zpráv najdete v tématu Doručování zpráv event Gridu a opakování.
Pole blobType vám umožní pochopit, jaký typ operací je v objektu blob povolený a jaké typy klientské knihovny byste měli použít pro přístup k objektu blob. Platné hodnoty jsou buď
BlockBlob
neboPageBlob
.Pro přístup k objektu
CloudBlockBlob
blob použijte pole url s konstruktory aCloudAppendBlob
konstruktory.Ignorujte pole, kterým nerozumíte. Tento postup vám pomůže udržet odolnost proti novým funkcím, které by mohly být přidány v budoucnu.
Pokud chcete zajistit, aby se událost Microsoft.Storage.BlobCreated aktivovala pouze v případě, že je objekt blob bloku zcela potvrzený, vyfiltrujte událost pro
PutBlob
CopyBlob
PutBlockList
volání rozhraní , neboFlushWithClose
ROZHRANÍ REST API. Tato volání rozhraní API aktivují událost Microsoft.Storage.BlobCreated až po úplném potvrzení dat do objektu blob bloku. Informace o tom, jak vytvořit filtr, najdete v tématu Filtrování událostí pro Event Grid.
Podpora funkcí
Podpora této funkce může mít vliv na povolení protokolu Data Lake Storage Gen2, systému souborů NFS (Network File System) 3.0 nebo protokolu SSH File Transfer Protocol (SFTP). Pokud jste některou z těchto funkcí povolili, podívejte se na podporu funkcí služby Blob Storage v účtech Azure Storage a vyhodnoťte podporu této funkce.
Další kroky
Přečtěte si další informace o Event Gridu a vyzkoušejte události úložiště objektů blob: