Sdílet prostřednictvím


Vytvořte spoušť, která spouští datový tok v reakci na událost úložiště.

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Návod

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datovou vědu, analýzy v reálném čase, business intelligence a zprávy. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje triggery událostí úložiště, které můžete vytvořit v kanálech Azure Data Factory nebo Azure Synapse Analytics.

Architektura řízená událostmi je běžný model integrace dat, který zahrnuje produkční prostředí, detekci, spotřebu a reakci na události. Scénáře integrace dat často vyžadují, aby zákazníci aktivovali kanály, které se aktivují z událostí v účtu služby Azure Storage, jako je například doručení nebo odstranění souboru v účtu služby Azure Blob Storage. Kanály Data Factory a Azure Synapse Analytics se nativně integrují se službou Azure Event Grid, což umožňuje aktivovat kanály na takových událostech.

Důležité informace o triggerech událostí úložiště

Při použití spouštěčů událostí úložiště zvažte následující body:

  • Integrace popsaná v tomto článku závisí na Azure Event Gridu. Ujistěte se, že je vaše předplatné zaregistrované u poskytovatele prostředků Event Gridu. Další informace najdete v tématu Zprostředkovatelé a typy prostředků. Musíte být schopni akci Microsoft.EventGrid/eventSubscriptions/ provést. Tato akce je součástí EventGrid EventSubscription Contributor předdefinované role.
  • Pokud tuto funkci používáte ve službě Azure Synapse Analytics, ujistěte se, že jste také zaregistrovali své předplatné u poskytovatele prostředků služby Data Factory. V opačném případě se zobrazí zpráva, že "vytvoření odběru událostí selhalo".
  • Pokud se účet Blob Storage nachází za privátním koncovým bodem a blokuje přístup k veřejné síti, musíte nakonfigurovat pravidla sítě tak, aby umožňovala komunikaci ze služby Blob Storage do Event Gridu. Můžete buď udělit přístup k úložišti důvěryhodným službám Azure, jako je Event Grid, podle dokumentace k úložišti, nebo nakonfigurovat privátní koncové body pro Event Grid, které se mapují na adresní prostor virtuální sítě, podle dokumentace ke službě Event Grid.
  • Spouštěč události úložiště aktuálně podporuje pouze účty Azure Data Lake Storage Gen2 a úložiště verze 2 pro obecné účely. Pokud pracujete s událostmi úložiště protokolu SFTP (Secure File Transfer Protocol), musíte také v části filtrování zadat rozhraní SFTP Data API. Kvůli omezení služby Event Grid služba Data Factory podporuje pouze maximálně 500 aktivačních událostí úložiště pro každý účet úložiště.
  • Pokud chcete vytvořit novou aktivační událost úložiště nebo upravit existující, musí mít účet Azure, který používáte k přihlášení ke službě a publikování události úložiště, odpovídající oprávnění pro řízení přístupu na základě role (Azure RBAC) na účtu úložiště. Nejsou vyžadována žádná další oprávnění. Instanční objekt služby Azure Data Factory a Azure Synapse Analytics nepotřebuje speciální oprávnění k účtu úložiště ani ke službě Event Grid. Další informace o řízení přístupu najdete v části Řízení přístupu na základě role.
  • Pokud jste u účtu úložiště použili zámek Azure Resource Manageru, může to mít vliv na schopnost triggeru objektu blob vytvářet nebo odstraňovat objekty blob. ReadOnly Zámek zabraňuje vytvoření i odstranění, zatímco DoNotDelete zámek brání odstranění. Ujistěte se, že zohledníte tato omezení, abyste se vyhnuli jakýmkoli problémům s aktivačními událostmi.
  • Nedoporučujeme používat spouštěče přijetí souborů jako spouštěcí mechanismus z výstupů toků dat. Procesy toku dat vykonávají různorodé úlohy přejmenovávání souborů a přeskupování souborů v cílové složce, které mohou neúmyslně spustit událost přijetí souboru před úplným zpracováním vašich dat.

Vytvoření triggeru pomocí uživatelského rozhraní

V této části se dozvíte, jak vytvořit událostní spouštěč úložiště v uživatelském rozhraní Azure Data Factory a Azure Synapse Analytics.

  1. Přepněte na kartu Upravit ve službě Data Factory nebo na kartě Integrace ve službě Azure Synapse Analytics.

  2. V nabídce vyberte Aktivační událost a pak vyberte Nový/Upravit.

  3. Na stránce Přidat spouštěče vyberte Vybrat spouštěč a pak vyberte + Nový spouštěč.

  4. Vyberte typ triggeru události úložiště.

  5. V rozevíracím seznamu předplatného Azure vyberte svůj účet úložiště, nebo ho zadejte ručně pomocí ID prostředku účtu úložiště. Zvolte kontejner, u kterého chcete události nastat. Výběr kontejneru je povinný, ale výběr všech kontejnerů může vést k velkému počtu událostí.

  6. Blob path begins with Vlastnosti Blob path ends with umožňují zadat kontejnery, složky a názvy objektů blob, pro které chcete přijímat události. Aktivační událost úložiště vyžaduje, aby byla definována alespoň jedna z těchto vlastností. Pro obě Blob path begins with a Blob path ends with vlastnosti můžete použít různé vzory, jak je znázorněno v příkladech dále v tomto článku.

    • Blob path begins with: Cesta k objektu blob musí začínat cestou složky. Platné hodnoty zahrnují 2018/ a 2018/april/shoes.csv. Toto pole nelze vybrat, pokud není vybraný kontejner.
    • Blob path ends with: Cesta k objektu blob musí končit názvem souboru nebo příponou. Platné hodnoty zahrnují shoes.csv a .csv. Názvy kontejnerů a složek, pokud jsou zadány, musí být oddělené segmentem /blobs/ . Kontejner s názvem orders může mít například hodnotu /orders/blobs/2018/april/shoes.csv. Chcete-li zadat složku v libovolném kontejneru, vynecháte úvodní / znak. Například april/shoes.csv aktivuje událost u libovolného souboru pojmenovaného shoes.csv ve složce volané april v libovolném kontejneru.

    Všimněte si, že Blob path begins with a Blob path ends with jsou jediným povoleným porovnáním vzorů v triggeru události úložiště. Jiné typy porovnávání zástupných znaků nejsou pro typ spouště podporovány.

  7. Vyberte, jestli trigger reaguje na událost vytvořenou objektem blob, událost odstraněnou objektem blob nebo obojí. V zadaném umístění úložiště každá událost aktivuje kanály Data Factory a Azure Synapse Analytics přidružené k triggeru.

    Snímek obrazovky znázorňující stránku pro vytvoření spouštěče události úložiště

  8. Vyberte, jestli trigger ignoruje objekty blob s nulovými bajty.

  9. Po nakonfigurování triggeru vyberte Další: Náhled dat. Tato obrazovka zobrazuje existující blob objekty, které odpovídají nastavení spouštěcí události úložiště. Ujistěte se, že máte konkrétní filtry. Konfigurace filtrů, které jsou příliš široké, se můžou shodovat s velkým počtem vytvořených nebo odstraněných souborů a můžou výrazně ovlivnit vaše náklady. Po ověření podmínek filtru vyberte Dokončit.

    Snímek obrazovky znázorňující stránku náhledu událostního spouštěče úložiště

  10. Pokud chcete k tomuto triggeru připojit pipeline, přejděte na plátno pipeline a vyberte Trigger>Nový/Upravit. Jakmile se zobrazí boční podokno, vyberte rozevírací seznam Zvolit aktivační událost a vyberte trigger, který jste vytvořili. Vyberte Další: Náhled dat a potvrďte správnost konfigurace. Potom výběrem možnosti Další ověřte správnost náhledu dat.

  11. Pokud váš kanál obsahuje parametry, můžete je zadat v bočním podokně Parametry spouštěče. Trigger události úložiště zachycuje cestu ke složce a název souboru objektu blob do vlastností @triggerBody().folderPath a @triggerBody().fileName. Pokud chcete použít hodnoty těchto vlastností v kanálu, musíte vlastnosti namapovat na parametry kanálu. Po namapování vlastností na parametry můžete přistupovat k hodnotám zachyceným spouštěčem pomocí výrazu @pipeline().parameters.parameterName v celém zpracovatelském toku. Podrobné vysvětlení najdete v tématu Referenční metadata triggeru v pipelinách.

    Snímek obrazovky znázorňující vlastnosti mapování triggeru události úložiště na parametry kanálu

    V předchozím příkladu je trigger nakonfigurovaný tak, aby se aktivoval, když se v ukázkových datech kontejneru vytvoří cesta k objektu blob končící na .csv ve složce pro testování událostí. folderPath a fileName vlastnosti zachycují umístění nového objektu blob. Například při přidání MoviesDB.csv do cesty sample-data/event-testing@triggerBody().folderPath má hodnotu sample-data/event-testing a @triggerBody().fileName má hodnotu moviesDB.csv. Tyto hodnoty se v příkladu mapují na parametry sourceFolder a sourceFile, které lze používat v celém potrubí jako @pipeline().parameters.sourceFolder a @pipeline().parameters.sourceFile v daném pořadí.

  12. Po dokončení vyberte Dokončit.

Schéma JSON

Následující tabulka obsahuje přehled prvků schématu, které souvisejí s triggery událostí úložiště.

Element JSON Popis Typ Povolené hodnoty Požaduje se
rozsah ID prostředku Azure Resource Manageru účtu úložiště. Řetězec ID správce prostředků Azure Ano.
události Typ událostí, které způsobují aktivaci tohoto triggeru. Pole Microsoft.Storage.BlobCreated, Microsoft.Storage.BlobDeleted Ano, libovolná kombinace těchto hodnot.
blobPathBeginsWith Cesta k blobu musí začínat vzorem zadaným pro spuštění spouštěče. Například /records/blobs/december/ spouští akci pouze pro objekty blob ve složce december uvnitř kontejneru records. Řetězec Zadejte hodnotu alespoň jedné z těchto vlastností: blobPathBeginsWith nebo blobPathEndsWith.
blobPathEndsWith Cesta k blobu musí končit zadaným vzorem, aby byl trigger spuštěn. Například december/boxes.csv aktivuje aktivační událost pouze pro objekty blob pojmenované boxes ve december složce. Řetězec Zadejte hodnotu alespoň jedné z těchto vlastností: blobPathBeginsWith nebo blobPathEndsWith.
ignoreEmptyBlobs Bez ohledu na to, jestli objekty blob s nulovým bajtem aktivují běh pipeline. Ve výchozím nastavení je tato možnost nastavena na truehodnotu . Logická hodnota pravda nebo nepravda Ne.

Příklady triggerů událostí úložiště

Tato část obsahuje příklady nastavení spouštěče událostí úložiště.

Důležité

Musíte zahrnout /blobs/ segment cesty, jak je znázorněno v následujících příkladech, kdykoli zadáte kontejner a složku, kontejner a soubor nebo kontejner, složku a soubor. Uživatelské rozhraní automaticky přidá blobPathBeginsWith mezi složku a název kontejneru v JSON souboru spouštěče.

Vlastnost Příklad Popis
Blob path begins with /containername/ Přijímá události všech typů pro všechny objekty blob v kontejneru.
Blob path begins with /containername/blobs/foldername/ Přijímá události pro všechny objekty blob v kontejneru containername a foldername složce.
Blob path begins with /containername/blobs/foldername/subfoldername/ Můžete také odkazovat na podsložku.
Blob path begins with /containername/blobs/foldername/file.txt Přijímá události pro objekt blob pojmenovaný file.txt ve složce foldername uvnitř kontejneru containername.
Blob path ends with file.txt Přijímá události pro blob pojmenovaný file.txt na libovolné cestě.
Blob path ends with /containername/blobs/file.txt Přijímá události pro objekt blob pojmenovaný file.txt v kontejneru containername.
Blob path ends with foldername/file.txt Přijímá události pro objekt blob pojmenovaný file.txt ve složce foldername v libovolném kontejneru.

Řízení přístupu na základě role

Kanály Data Factory a Azure Synapse Analytics používají řízení přístupu na základě role v Azure (Azure RBAC), aby se zajistilo, že je přísně zakázaný neoprávněný přístup k naslouchání, přihlášení k odběru aktualizací a aktivaci kanálů propojených s událostmi objektů blob.

  • Pokud chcete úspěšně vytvořit novou aktivační událost úložiště nebo aktualizovat existující, musí mít účet Azure přihlášený ke službě odpovídající přístup k příslušnému účtu úložiště. Jinak operace selže se zprávou Přístup byl odepřen.
  • Data Factory a Azure Synapse Analytics nepotřebují žádná zvláštní oprávnění k vaší instanci Event Gridu a pro operaci nemusíte přiřazovat speciální oprávnění RBAC k instančnímu objektu služby Data Factory nebo Azure Synapse Analytics.

Pro triggery událostí úložiště fungují některá z následujících nastavení RBAC:

  • Role vlastníka účtu úložiště
  • Role přispěvatele k účtu úložiště
  • Microsoft.EventGrid/EventSubscriptions/Write oprávnění k účtu úložiště /subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName

Konkrétně:

  • Při vytváření v datové továrně (například ve vývojovém prostředí) musí mít přihlášený účet Azure předchozí oprávnění.
  • Když publikujete prostřednictvím kontinuální integrace a průběžného doručování, musí mít účet použitý k publikování šablony Azure Resource Manageru do testovací nebo produkční továrny předchozí oprávnění.

Abychom pochopili, jak služba poskytuje dva přísliby, pojďme se vrátit zpět a podívat se na pozadí. Tady jsou základní pracovní postupy pro integraci mezi Data Factory nebo Azure Synapse Analytics, úložištěm a Event Gridem.

Vytvořit nový spouštěč událostí úložiště

Tento pracovní postup vysoké úrovně popisuje, jak služba Data Factory komunikuje se službou Event Grid k vytvoření triggeru události úložiště. Tok dat je stejný ve službě Azure Synapse Analytics, přičemž kanály Azure Synapse Analytics přebírají roli datové továrny v následujícím diagramu.

Diagram znázorňující pracovní postup vytvoření triggeru události úložiště

Dvě znatelné poznámky z pracovních postupů:

  • Data Factory a Azure Synapse Analytics nemají přímý kontakt s účtem úložiště. Žádost o vytvoření odběru se místo toho předá a zpracuje službou Event Grid. Služba pro tento krok nepotřebuje žádné oprávnění pro přístup k účtu úložiště.
  • Řízení přístupu a kontrola oprávnění probíhají v rámci služby. Než služba odešle žádost o přihlášení k odběru události úložiště, zkontroluje oprávnění uživatele. Konkrétně kontroluje, zda má přihlášený účet Azure, který se pokouší vytvořit spouštěč události úložiště, odpovídající přístup k příslušnému účtu úložiště. Pokud kontrola oprávnění selže, vytvoření triggeru také selže.

Spuštění potrubí spouštěče události úložiště

Tento pracovní postup vysoké úrovně popisuje, jak potrubí spouštěčů událostí v úložišti běží prostřednictvím systému Event Grid. U Azure Synapse Analytics je tok dat stejný, přičemž potrubí Azure Synapse Analytics v následujícím diagramu přebírají roli Data Factory.

Diagram zobrazující pracovní postup spuštění kanálu spouštěného událostí úložiště.

Tři znatelné upozornění v pracovním postupu souvisejí s procesy vyvolávajícími události v rámci služby.

  • Event Grid používá push model, který zprávu předává co nejdříve, když úložiště zprávu vloží do systému. Tento přístup se liší od systému zasílání zpráv, například Kafka, kde se používá pull systém.

  • Trigger události slouží jako aktivní posluchač příchozím zprávám a správně spouští přidruženou pipelinu.

  • Samotná aktivační událost úložiště nespustí přímý kontakt s účtem úložiště.

    • Pokud máte v kanálu kopírovací aktivitu nebo jinou aktivitu ke zpracování dat v účtu úložiště, služba naváže přímé spojení s účtem úložiště pomocí přihlašovacích údajů uložených v propojené službě. Ujistěte se, že je propojená služba správně nastavená.
    • Pokud v datovém toku neodkazujete na účet úložiště, nemusíte službě udělit oprávnění pro přístup k účtu úložiště.