Sdílet prostřednictvím


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 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í triggerů 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 provést Microsoft.EventGrid/eventSubscriptions/ akci. 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.
  • 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ě 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í triggeru události úložiště odpovídající oprávnění řízení přístupu na základě role (Azure RBAC) k účtu úložiště. Nejsou vyžadována žádná další oprávnění. Instanční objekt pro Službu Azure Data Factory a Azure Synapse Analytics nepotřebuje speciální oprávnění k účtu úložiště ani 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 pro tato omezení vyhnete problémům s aktivačními událostmi.
  • Jako aktivační mechanismus z jímek toku dat nedoporučujeme triggery přijetí souborů. Toky dat provádějí řadu úloh přejmenovávání souborů a náhodného prohazování souborů v cílové složce, které můžou neúmyslně aktivovat událost přijetí souboru před dokončením zpracování dat.

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

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 kanálu 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 triggery vyberte Zvolit aktivační událost a pak vyberte + Nový.

  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 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 ends with Vlastnosti Blob path begins 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 ke složce. 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 jedná se o jedinou shodu se vzorem povoleným 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 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í triggeru 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í 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é, 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 triggeru události úložiště

  10. Pokud chcete k tomuto triggeru připojit kanál, přejděte na plátno kanálu a vyberte Aktivovat>nový nebo 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 spuštění triggeru. 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.

    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í. fileName A folderPath 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 mapují v příkladu na parametry sourceFolder kanálu, sourceFilekteré lze použít v celém kanálu jako @pipeline().parameters.sourceFolder a @pipeline().parameters.sourceFilev uvedené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ě. String ID Azure Resource Manageru Ano.
events 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 Bez ohledu na to, jestli objekty blob s nulovým bajtem aktivují spuštění kanálu. Ve výchozím nastavení je tato možnost nastavena na truehodnotu . Logická hodnota true nebo false Ne.

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. Uživatelské blobPathBeginsWithrozhraní automaticky přidá /blobs/ mezi složku a název kontejneru ve formátu JSON triggeru.

Vlastnost Příklad Popis
Blob path begins with /containername/ Přijímá události 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 objektu blob pojmenovaného file.txt ve složce v foldername kontejneru containername .
Blob path ends with file.txt Přijímá události objektu blob pojmenovaného file.txt v 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 objektu blob pojmenovaného file.txt ve složce v libovolném foldername 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ření nové aktivační události ú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ě

Dva znatelné popisky z pracovních postupů:

  • Data Factory a Azure Synapse Analytics nesměruje 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, jestli má účet Azure, který je přihlášený, a pokouší se vytvořit trigger 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í kanálu triggeru události úložiště

Tento pracovní postup vysoké úrovně popisuje, jak kanály triggerů událostí úložiště běží prostřednictvím Event Gridu. U Azure Synapse Analytics je tok dat stejný a kanály Azure Synapse Analytics, které v následujícím diagramu přebírají roli služby Data Factory.

Diagram znázorňující pracovní postup spuštění kanálu aktivujícího událost úložiště

Tři znatelné popisky v pracovním postupu souvisejí s kanály aktivujícími událostmi v rámci služby:

  • 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. Tento přístup 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ě.

    • Pokud máte v kanálu aktivita Copy nebo jinou aktivitu ke zpracování dat v účtu úložiště, služba provede přímý kontakt 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 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ě.