Vytvoření triggeru, který spouští kanál v reakci na událost úložiště

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

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 datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. 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 služby Data Factory nebo Synapse.

Architektura založená na událostech (EDA) 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 aktivovaly kanály na základě událostí, ke které dochází v účtu úložiště, například doručení nebo odstranění souboru v účtu Azure Blob Storage. Kanály Data Factory a Synapse se nativně integrují se službou Azure Event Grid, což umožňuje aktivovat kanály u takových událostí.

Poznámka:

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 Poskytovatelé a typy prostředků. Musíte být schopni provést akci Microsoft.EventGrid/eventSubscriptions/*. Tato akce je součástí předdefinované role přispěvatele EventGrid EventSubscription.

Důležité

Pokud tuto funkci používáte ve službě Azure Synapse Analytics, ujistěte se, že je vaše předplatné zaregistrované také u poskytovatele prostředků služby Data Factory, nebo se zobrazí chyba s oznámením, že vytvoření odběru událostí selhalo.

Poznámka:

Pokud se účet úložiště objektů blob 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 z úložiště objektů blob do služby Azure Event Grid. Přístup k úložišti můžete udělit 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.

Vytvoření triggeru s uživatelským rozhraním

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

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

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

  3. Na stránce Přidat triggery vyberte Zvolit aktivační událost... a pak vyberte +Nový.

  4. Výběr typu triggeru – Událost úložiště

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

    Poznámka:

    Trigger události úložiště aktuálně podporuje pouze účty úložiště Azure Data Lake Storage Gen2 a účty úložiště pro obecné účely verze 2. Pokud pracujete s událostmi úložiště SFTP, v části filtrování musíte také zadat rozhraní API pro data SFTP. Kvůli omezení služby Azure Event Grid podporuje Azure Data Factory maximálně 500 triggerů událostí úložiště na jeden účet úložiště. Pokud dosáhnete limitu, obraťte se na podporu doporučení a zvyšte limit při vyhodnocování týmem Event Gridu.

    Poznámka:

    Pokud chcete vytvořit novou nebo upravit existující aktivační událost úložiště, musí mít účet Azure použitý k přihlášení ke službě a publikování triggeru události úložiště odpovídající oprávnění pro řízení přístupu na základě role (Azure RBAC) k účtu úložiště. Nevyžaduje se žádné další oprávnění: Instanční objekt pro Službu Azure Data Factory a Azure Synapse nepotřebuje speciální oprávnění k účtu úložiště nebo Event Gridu. Další informace o řízení přístupu najdete v části Řízení přístupu na základě role.

  6. Cesta k objektu blob začíná a cesta k objektu blob končí vlastnostmi , které 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 cestu k objektu blob začíná různými vzory a cesta k objektu blob končí vlastnostmi , jak je znázorněno v příkladech dále v tomto článku.

    • Cesta k objektu blob začíná: Cesta k objektu blob musí začínat cestou ke složce. Platné hodnoty zahrnují 2018/ a 2018/april/shoes.csv. Toto pole nelze vybrat, pokud není vybraný kontejner.
    • Cesta k objektu blob končí: 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 zadané, musí být oddělené segmentem /blobs/ . Například kontejner s názvem "orders" může mít hodnotu /orders/blobs/2018/april/shoes.csv. Pokud chcete 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 s názvem april v libovolném kontejneru.
    • Všimněte si, že cesta k objektu blob začíná a končí na jediném vzoru, který je povolený v triggeru události úložiště. Jiné typy porovnávání zástupných znaků nejsou pro typ triggeru podporované.
  7. Vyberte, jestli trigger bude reagovat 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 Synapse přidružené k triggeru.

    Screenshot of storage event trigger creation page.

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

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

    Screenshot of storage event trigger preview page.

  10. Pokud chcete k tomuto triggeru připojit kanál, přejděte na plátno kanálu a klikněte na Aktivační událost a vyberte Nový/Upravit. Jakmile se zobrazí boční navigace, klikněte na rozevírací seznam Zvolit aktivační událost... a vyberte trigger, který jste vytvořili. Klikněte na Tlačítko Další: Náhled dat potvrďte správnost konfigurace a potom kliknutím na tlačítko Další ověřte správnost náhledu dat.

  11. Pokud má váš kanál parametry, můžete je zadat na navigačním panelu spuštění triggeru na straně parametru. 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 triggerem prostřednictvím výrazu @pipeline().parameters.parameterName v celém kanálu. Podrobné vysvětlení najdete v tématu Referenční metadata triggeru v Kanálech.

    Screenshot of storage event trigger mapping properties to pipeline parameters.

    V předchozím příkladu se aktivační událost nakonfiguruje tak, aby se aktivovala, když se v ukázkových datech kontejneru vytvoří cesta k objektu blob končící na .csv. Vlastnosti folderPath a fileName zachycují umístění nového objektu blob. Pokud je například do cesty sample-data/event-testing přidán soubor MoviesDB.csv, @triggerBody().folderPath má hodnotu sample-data/event-testing a @triggerBody().fileName má hodnotu moviesDB.csv. Tyto hodnoty se mapují v příkladu na parametry sourceFolder kanálu a sourceFile, které lze použít v celém kanálu jako @pipeline().parameters.sourceFolder a @pipeline().parameters.sourceFile v uvedeném pořadí.

  12. Po dokončení klikněte na Dokončit .

Schéma JSON

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

JSON Element Popis Typ Povolené hodnoty Povinní účastníci
Rozsah ID prostředku Azure Resource Manageru účtu úložiště. String ID Azure Resource Manageru 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 objektu blob musí začínat vzorem zadaným pro aktivaci triggeru. Například /records/blobs/december/ aktivuje aktivační událost pouze pro objekty blob ve složce v december kontejneru records . String Zadejte hodnotu alespoň jedné z těchto vlastností: blobPathBeginsWith nebo blobPathEndsWith.
blobPathEndsWith Cesta k objektu blob musí končit vzorem zadaným pro aktivaci triggeru. Například december/boxes.csv aktivuje aktivační událost pouze pro objekty blob pojmenované boxes ve december složce. String Zadejte hodnotu alespoň jedné z těchto vlastností: blobPathBeginsWith nebo blobPathEndsWith.
ignoreEmptyBlobs Určuje, jestli objekty blob s nulovým bajtem aktivují spuštění kanálu. Ve výchozím nastavení je nastavená hodnota true. Logický true nebo false No

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

Tato část obsahuje příklady nastavení triggeru události ú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. V případě blobPathBeginsWith se uživatelské rozhraní automaticky přidá /blobs/ mezi složku a název kontejneru ve formátu JSON triggeru.

Poznámka:

Triggery přijetí souborů se nedoporučuje jako mechanismus aktivace z jímek toku dat. Toky dat provádějí řadu úloh přejmenovávání souborů a prohazování souborů oddílů v cílové složce, které můžou neúmyslně aktivovat událost přijetí souboru před dokončením zpracování dat.

Vlastnost Příklad Popis
Cesta k objektu blob začíná na /containername/ Přijímá události pro všechny objekty blob v kontejneru.
Cesta k objektu blob začíná na /containername/blobs/foldername/ Přijímá události pro všechny objekty blob v kontejneru containername a foldername složce.
Cesta k objektu blob začíná na /containername/blobs/foldername/subfoldername/ Můžete také odkazovat na podsložku.
Cesta k objektu blob začíná na /containername/blobs/foldername/file.txt Přijímá události objektu blob pojmenovaného file.txt ve složce v foldername kontejneru containername .
Cesta k objektu blob končí na file.txt Přijímá události objektu blob pojmenovaného file.txt v libovolné cestě.
Cesta k objektu blob končí na /containername/blobs/file.txt Přijímá události pro objekt blob pojmenovaný file.txt v kontejneru containername.
Cesta k objektu blob končí na foldername/file.txt Přijímá události objektu blob pojmenovaného file.txt ve složce v foldername libovolném kontejneru.

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

Kanály Azure Data Factory a Synapse používají řízení přístupu na základě role Azure (Azure RBAC) k zajištění toho, aby byl přísně zakázán 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 nebo aktualizovat existující trigger události úložiště, 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 s odepřeným přístupem.
  • Azure Data Factory a Azure Synapse nepotřebují žádná zvláštní oprávnění ke službě Event Grid a pro operaci nemusíte přiřazovat zvláštní oprávnění RBAC k instančnímu objektu služby Data Factory nebo Azure Synapse.

Pro trigger události úložiště funguje 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 výše uvedené oprávnění.
  • Při publikování prostřednictvím CI/CD musí mít účet použitý k publikování šablony ARM do testovací nebo produkční továrny výše uvedené oprávnění.

Abychom pochopili, jak služba poskytuje dva přísliby, vraťme se zpět a prohlédni si na pozadí. Tady jsou základní pracovní toky pro integraci mezi Azure Data Factory nebo Azure Synapse, Storage a Event Gridem.

Vytvoření nové aktivační události úložiště

Tento pracovní tok vysoké úrovně popisuje, jak Služba Azure Data Factory komunikuje s Event Gridem a vytváří trigger události úložiště. V případě Azure Synapse je tok dat stejný, přičemž kanály Synapse přebírají roli služby Data Factory v následujícím diagramu.

Workflow of storage event trigger creation.

Dva znatelné popisky z pracovních toků:

  • Azure Data Factory a Azure Synapse nemají přímý kontakt s účtem úložiště. Žádost o vytvoření předplatného se místo toho předává a zpracovává službou Event Grid. Proto služba pro tento krok nepotřebuje žádné oprávnění 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, jestli má účet Azure přihlášený a pokouší se vytvořit trigger události úložiště, má 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í kanálu triggeru události úložiště

Tento pracovní tok vysoké úrovně popisuje, jak služba Event Grid spouští kanál událostí úložiště. V případě Azure Synapse je tok dat stejný, přičemž kanály Synapse přebírají roli služby Data Factory v následujícím diagramu.

Workflow of storage event triggering pipeline runs.

V pracovním postupu souvisejícím s kanály aktivujícími událostmi ve službě existují tři znatelné popisky:

  • Event Grid používá model nabízených oznámení, který zprávu předává co nejdříve, když úložiště zprávu zahodí do systému. To se liší od systému zasílání zpráv, například Kafka, kde se používá systém vyžádané replikace.

  • Trigger události slouží jako aktivní naslouchací proces příchozí zprávě a správně aktivuje přidružený kanál.

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

    • To znamená, že pokud máte v kanálu aktivitu kopírování nebo jinou aktivitu ke zpracování dat v účtu úložiště, služba provede přímý kontakt se službou Storage 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 ale v kanálu neodkazujete na účet úložiště, nemusíte službě udělit oprávnění pro přístup k účtu úložiště.