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ímcoDoNotDelete
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.
Přepněte na kartu Upravit ve službě Data Factory nebo na kartě Integrace ve službě Azure Synapse Analytics.
V nabídce vyberte Aktivační událost a pak vyberte Nový/Upravit.
Na stránce Přidat triggery vyberte Zvolit aktivační událost a pak vyberte + Nový.
Vyberte typ triggeru Události úložiště.
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í.
Blob path begins with
VlastnostiBlob 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
aBlob path begins 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/
a2018/april/shoes.csv
. Toto pole nelze vybrat, pokud není vybraný kontejner.Blob path begins 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ázvemorders
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říkladapril/shoes.csv
aktivuje událost u libovolného souboru pojmenovanéhoshoes.csv
ve složce volanéapril
v libovolném kontejneru.
Všimněte si, že
Blob path begins with
aBlob 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é.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.
Vyberte, jestli trigger ignoruje objekty blob s nulovými bajty.
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.
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.
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.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
AfolderPath
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á hodnotusample-data/event-testing
a@triggerBody().fileName
má hodnotumoviesDB.csv
. Tyto hodnoty se mapují v příkladu na parametrysourceFolder
kanálu,sourceFile
které lze použít v celém kanálu jako@pipeline().parameters.sourceFolder
a@pipeline().parameters.sourceFile
v uvedeném pořadí.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 true hodnotu . |
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é blobPathBeginsWith
rozhraní 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.
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.
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ě.
Související obsah
- Další informace o aktivačních událostech najdete v tématu Spouštění kanálů a triggery.
- Pokud chcete odkazovat na metadata aktivačních událostí v kanálu, přečtěte si téma Referenční metadata triggeru při spuštění kanálu.