Sdílet prostřednictvím


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 (příkazový řádek nástroje Azure) 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:

Poznámka:

Úložiště (pro obecné účely v1) nepodporujeintegraci 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í.

Model Event Grid

Nejprve přiřaďte událost koncovému bodu. Po aktivaci události pak služba Event Grid odešle data o této události do koncového bodu.

Podívejte se na článek Schéma událostí úložiště Blob, kde si můžete prohlédnout:

  • Ú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 objeví 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 spotřebová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ádat, že události pocházejí z určitého zdroje, ale je třeba zkontrolovat předmět zprávy, aby se zajistilo, že pochází z očekávaného účtu úložiště.

  • Podobně zkontrolujte, zda je typ události ten, který máte připravený ke zpracování, a nepředpokládejte, že všechny události, které obdržíte, budou očekávaného typu.

  • 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ě zajišťují doručení alespoň jednou odběratelům a tím zaručují, že všechny zprávy budou doručeny. 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 nebo PageBlob.

  • K přístupu k blobu použijte pole URL s konstruktory CloudBlockBlob a CloudAppendBlob.

  • 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 blokový objekt blob zcela potvrzený, vyfiltrujte událost pro volání REST API CopyBlob, PutBlob, PutBlockList nebo FlushWithClose. Tato volání rozhraní API aktivují událost Microsoft.Storage.BlobCreated až po úplném potvrzení dat do blokového objektu blobu. 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: