Megosztás a következőn keresztül:


Folyamatokat tárolóeseményre válaszul futó eseményindító létrehozása

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk az Azure Data Factoryben vagy az Azure Synapse Analytics-folyamatokban létrehozható tárolási eseményindítókat ismerteti.

Az eseményvezérelt architektúra egy gyakori adatintegrációs minta, amely magában foglalja az éles üzemet, az észlelést, a felhasználást és az eseményekre való reagálást. Az adatintegrációs forgatókönyvek gyakran megkövetelik, hogy az ügyfelek olyan folyamatokat aktiváljanak, amelyeket egy Azure Storage-fiók eseményei aktiválnak, például egy fájl érkezését vagy törlését az Azure Blob Storage-fiókban. A Data Factory és az Azure Synapse Analytics-folyamatok natív módon integrálhatók az Azure Event Gridszel, így folyamatokat indíthat el az ilyen eseményeken.

A tárolási esemény eseményindítóinak szempontjai

A tárolási eseményindítók használatakor vegye figyelembe a következő szempontokat:

  • A cikkben ismertetett integráció az Azure Event Gridtől függ. Győződjön meg arról, hogy az előfizetés regisztrálva van az Event Grid erőforrás-szolgáltatónál. További információkért lásd az erőforrás-szolgáltatókat és a típusaikat ismertető cikket. Meg kell tudnia csinálni a Microsoft.EventGrid/eventSubscriptions/ műveletet. Ez a művelet a EventGrid EventSubscription Contributor beépített szerepkör része.
  • Ha ezt a funkciót használja az Azure Synapse Analyticsben, győződjön meg arról, hogy előfizetését a Data Factory erőforrás-szolgáltatójánál is regisztrálja. Ellenkező esetben megjelenik egy üzenet, amely szerint "egy esemény-előfizetés létrehozása nem sikerült".
  • Ha a Blob Storage-fiók egy privát végpont mögött található, és blokkolja a nyilvános hálózati hozzáférést, hálózati szabályokat kell konfigurálnia a Blob Storage és az Event Grid közötti kommunikáció engedélyezéséhez. Az Event Grid dokumentációját követve tárterület-hozzáférést biztosíthat a megbízható Azure-szolgáltatásokhoz, például az Event Gridhez, vagy konfigurálhatja a virtuális hálózati címtérre leképező Event Grid privát végpontjait az Event Grid dokumentációját követve.
  • A tárolási eseményindító jelenleg csak az Azure Data Lake Storage Gen2 és az általános célú 2. verziójú tárfiókokat támogatja. Ha A Secure File Transfer Protocol (SFTP) tárolási eseményeivel dolgozik, a szűrési szakaszban is meg kell adnia az SFTP Data API-t. Az Event Grid korlátozása miatt a Data Factory csak tárfiókonként legfeljebb 500 táresemény-eseményindítót támogat.
  • Új tárolási eseményindító létrehozásához vagy meglévő módosításához a szolgáltatásba való bejelentkezéshez és a táresemény-eseményindító közzétételéhez használt Azure-fióknak megfelelő szerepköralapú hozzáférés-vezérlési (Azure RBAC) engedéllyel kell rendelkeznie a tárfiókon. Nincs szükség más engedélyekre. Az Azure Data Factory és az Azure Synapse Analytics szolgáltatásnévnek nincs szüksége különleges engedélyre sem a tárfiókra, sem az Event Gridre. A hozzáférés-vezérléssel kapcsolatos további információkért tekintse meg a szerepköralapú hozzáférés-vezérlési szakaszt.
  • Ha Azure Resource Manager-zárolást alkalmazott a tárfiókra, az hatással lehet a blob-eseményindító blobok létrehozására vagy törlésére. A ReadOnly zárolások a létrehozást és a törlést is megakadályozzák, míg a zárolások megakadályozzák a törlést DoNotDelete . Győződjön meg arról, hogy figyelembe veszi ezeket a korlátozásokat, hogy elkerülje az eseményindítókkal kapcsolatos problémákat.
  • Nem javasoljuk, hogy a fájlbetöltési eseményindítók aktiváló mechanizmusként szolgálnak az adatfolyam-fogadóktól. Az adatfolyamok számos fájl átnevezési és partíciófájl-elosztási feladatot hajtanak végre a célmappában, amelyek véletlenül elindíthatnak egy fájl érkezési eseményt az adatok teljes feldolgozása előtt.

Eseményindító létrehozása a felhasználói felülettel

Ez a szakasz bemutatja, hogyan hozhat létre tárolási eseményindítót az Azure Data Factoryben és az Azure Synapse Analytics-folyamat felhasználói felületén (UI).

  1. Váltson a Data Factory Szerkesztés lapjára vagy az Azure Synapse Analytics Integrálás lapjára.

  2. A menüben válassza az Eseményindító, majd az Új/Szerkesztés lehetőséget.

  3. Az Eseményindítók hozzáadása lapon válassza az Eseményindító kiválasztása, majd az + Új lehetőséget.

  4. Válassza ki a Storage eseményindító típusát.

  5. Válassza ki a tárfiókot az Azure-előfizetés legördülő listájából, vagy manuálisan a tárfiók erőforrás-azonosítójával. Válassza ki azt a tárolót, amelyen az eseményeket el szeretné végezni. A tároló kiválasztása kötelező, de az összes tároló kiválasztása sok eseményhez vezethet.

  6. Blob path begins with A Blob path begins with tulajdonságok segítségével megadhatja azokat a tárolókat, mappákat és blobneveket, amelyekhez eseményeket szeretne fogadni. A tárolási eseményindítónak legalább egy ilyen tulajdonságot meg kell határoznia. Különböző mintákat használhat mind Blob path begins with Blob path begins with a tulajdonságokhoz, ahogy a cikk későbbi példáiban is látható.

    • Blob path begins with: A blob elérési útjának egy mappa elérési útjával kell kezdődnie. Az érvényes értékek a következők: 2018/ és 2018/april/shoes.csv. Ez a mező nem jelölhető ki, ha nincs kijelölve tároló.
    • Blob path begins with: A blob elérési útjának fájlnévvel vagy kiterjesztéssel kell végződnie. Az érvényes értékek a következők: shoes.csv és .csv. A tároló- és mappaneveket, ha meg van adva, szegmensekkel /blobs/ kell elválasztani. Egy elnevezett orders tároló például a következő értékkel /orders/blobs/2018/april/shoes.csvrendelkezhet: . Ha bármely tárolóban meg szeretne adni egy mappát, hagyja ki a kezdő / karaktert. Eseményt indít el például april/shoes.csv egy tetszőleges tárolóban lévő mappában elnevezett april shoes.csv fájlon.

    Vegye figyelembe, hogy Blob path begins with Blob path ends with a tárolási eseményindítókban csak a mintaegyezés engedélyezett. Az eseményindító típusa nem támogatja az egyéb helyettesítő karakterek egyeztetését.

  7. Válassza ki, hogy az eseményindító válaszol-e egy Blob által létrehozott eseményre, egy Blob által törölt eseményre vagy mindkettőre. A megadott tárolási helyen minden esemény aktiválja az eseményindítóhoz társított Data Factory- és Azure Synapse Analytics-folyamatokat.

    Képernyőkép egy storage eseményindító létrehozási oldalról.

  8. Adja meg, hogy az eseményindító figyelmen kívül hagyja-e a nulla bájtot tartalmazó blobokat.

  9. Az eseményindító konfigurálása után válassza a Tovább: Adatelőnézet lehetőséget. Ezen a képernyőn a tárolóesemény-eseményindító konfigurációjának megfelelő meglévő blobok láthatók. Győződjön meg arról, hogy adott szűrőkkel rendelkezik. A túl széles szűrők konfigurálása számos létrehozott vagy törölt fájlnak felelhet meg, és jelentősen befolyásolhatja a költségeket. A szűrőfeltételek ellenőrzése után válassza a Befejezés lehetőséget.

    Képernyőkép a táresemény eseményindítójának előnézeti oldalával.

  10. Ha egy folyamatot szeretne csatolni ehhez az eseményindítóhoz, lépjen a folyamatvászonra, és válassza az Trigger New/Edit lehetőséget>. Amikor megjelenik az oldalpanel, válassza az Eseményindító kiválasztása legördülő listát, és válassza ki a létrehozott eseményindítót. Válassza a Tovább elemet : Az adatok előnézete lehetőséget választva ellenőrizheti, hogy a konfiguráció helyes-e. Ezután válassza a Tovább lehetőséget annak ellenőrzéséhez, hogy az adatok előnézete helyes-e.

  11. Ha a folyamat paraméterekkel rendelkezik, az Eseményindító futtatási paraméterei oldalpanelen adhatja meg őket. A tárolási eseményindító rögzíti a blob mappa elérési útját és fájlnevét a tulajdonságokba @triggerBody().folderPath és @triggerBody().fileNamea . A tulajdonságok folyamatbeli értékeinek használatához le kell képeznie a tulajdonságokat a folyamatparaméterekre. Miután a tulajdonságokat paraméterekre képezte le, a folyamat során a kifejezésen keresztül @pipeline().parameters.parameterName elérheti az eseményindító által rögzített értékeket. Részletes magyarázatért tekintse meg a folyamatok referencia-eseményindító metaadatait.

    Képernyőkép a tárolási esemény eseményindítóinak a folyamatparaméterekre való leképezési tulajdonságairól.

    Az előző példában az eseményindító úgy van konfigurálva, hogy aktiváljon, amikor egy .csv végződő blobútvonal jön létre a tároló mintaadataiban található mappaesemény-tesztelésben. A folderPath tulajdonságok rögzítik fileName az új blob helyét. Ha például MoviesDB.csv hozzáadva az elérési út mintaadat-adataihoz/eseményteszteléséhez, @triggerBody().folderPath annak értéke sample-data/event-testing és @triggerBody().fileName értéke moviesDB.csv. Ezek az értékek a példában a folyamat paramétereire sourceFolder vannak leképezve, és sourceFileamelyek a folyamat egészében használhatók, és @pipeline().parameters.sourceFolder amelyek a következőképpen és @pipeline().parameters.sourceFileaz alatt is használhatók.

  12. Miután végzett, válassza a Befejezés lehetőséget.

JSON-séma

Az alábbi táblázat áttekintést nyújt a tárolási eseményindítókhoz kapcsolódó sémaelemekről.

JSON-elem Leírás Típus Megengedett értékek Kötelező
hatálya A tárfiók Azure Resource Manager-erőforrás-azonosítója. Sztring Azure Resource Manager-azonosító Igen.
események Az eseményindítót kiváltó események típusa. Tömb Microsoft.Storage.BlobCreated, Microsoft.Storage.BlobDeleted Igen, az értékek bármilyen kombinációja.
blobPathBeginsWith A blob elérési útjának a trigger indításához megadott mintával kell kezdődnie. Például /records/blobs/december/ csak a tároló alatti mappában lévő december blobok eseményindítója aktiválódik records . Sztring Adjon meg egy értéket legalább egy ilyen tulajdonsághoz: blobPathBeginsWith vagy blobPathEndsWith.
blobPathEndsWith A blob elérési útjának az eseményindító indításához megadott mintával kell végződnie. Például december/boxes.csv csak egy mappában elnevezett boxes blobok esetén aktiválja az eseményindítót december . Sztring Adjon meg egy értéket legalább egy ilyen tulajdonsághoz: blobPathBeginsWith vagy blobPathEndsWith.
ignoreEmptyBlobs Azt jelzi, hogy a nulla bájtos blobok elindítanak-e folyamatfuttatást. Alapértelmezés szerint ez a beállítás a következőre truevan állítva: . Logikai igaz vagy hamis Szám

Példák tárolási eseményindítókra

Ez a szakasz példákat tartalmaz a tárolási eseményindító beállításaira.

Fontos

Az elérési út szegmensét az alábbi példák szerint kell megadnia /blobs/ , amikor tárolót és mappát, tárolót és fájlt, vagy tárolót, mappát és fájlt ad meg. Ehhez blobPathBeginsWitha felhasználói felület automatikusan hozzáadódik /blobs/ a mappa és a tároló neve között az eseményindító JSON-ban.

Tulajdonság Példa Leírás
Blob path begins with /containername/ Eseményeket fogad a tárolóban lévő blobokhoz.
Blob path begins with /containername/blobs/foldername/ A tárolóban és foldername mappában containername lévő blobok eseményeit fogadja.
Blob path begins with /containername/blobs/foldername/subfoldername/ Almappára is hivatkozhat.
Blob path begins with /containername/blobs/foldername/file.txt Eseményeket fogad a tároló alatti containername mappában foldername elnevezett file.txt blobhoz.
Blob path ends with file.txt Eseményeket fogad egy tetszőleges elérési úton elnevezett file.txt blobhoz.
Blob path ends with /containername/blobs/file.txt A tároló containernamealatt elnevezett file.txt blob eseményeit fogadja.
Blob path ends with foldername/file.txt Eseményeket fogad egy olyan blobhoz, amely a foldername tároló alatti mappában van elnevezvefile.txt.

Szerepköralapú hozzáférés-vezérlés

A Data Factory és az Azure Synapse Analytics-folyamatok azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) biztosítják, hogy szigorúan tilos a blobeseményekhez kapcsolódó frissítésekhez, frissítésekre feliratkozni és folyamatokat aktiválni.

  • Új tárolási eseményindító sikeres létrehozásához vagy meglévő frissítéséhez a szolgáltatásba bejelentkezett Azure-fióknak megfelelő hozzáféréssel kell rendelkeznie a megfelelő tárfiókhoz. Ellenkező esetben a művelet a "Hozzáférés megtagadva" üzenettel meghiúsul.
  • A Data Factorynek és az Azure Synapse Analyticsnek nincs szüksége különleges engedélyre az Event Grid-példányhoz, és nem kell külön RBAC-engedélyt rendelnie a Data Factoryhez vagy az Azure Synapse Analytics szolgáltatásnévhez a művelethez.

A következő RBAC-beállítások bármelyike működik a tárolási eseményindítók esetében:

  • Tulajdonosi szerepkör a tárfiókban
  • Közreműködői szerepkör a tárfiókhoz
  • Microsoft.EventGrid/EventSubscriptions/Write a tárfiókra vonatkozó engedély /subscriptions/####/resourceGroups/####/providers/Microsoft.Storage/storageAccounts/storageAccountName

Ezek konkrétan a következők:

  • Amikor az adat-előállítóban (például a fejlesztői környezetben) hoz létre, a bejelentkezett Azure-fióknak rendelkeznie kell az előző engedéllyel.
  • Ha folyamatos integrációval és folyamatos teljesítéssel teszi közzé a közzétételt, az Azure Resource Manager-sablon tesztelési vagy éles üzemben való közzétételéhez használt fióknak rendelkeznie kell az előző engedéllyel.

Annak megértéséhez, hogy a szolgáltatás hogyan teljesíti a két ígéretet, tegyünk egy lépést hátra, és kukkáljunk a színfalak mögött. Az alábbiakban a Data Factory/Azure Synapse Analytics, a Storage és az Event Grid közötti integráció magas szintű munkafolyamatait találja.

Új tárolási eseményindító létrehozása

Ez a magas szintű munkafolyamat azt ismerteti, hogyan működik együtt a Data Factory az Event Griddel egy tárolási eseményindító létrehozásához. Az adatfolyam ugyanaz az Azure Synapse Analyticsben, az Azure Synapse Analytics-folyamatok az alábbi ábrán az adat-előállító szerepét veszik át.

A táresemény-eseményindítók létrehozásának munkafolyamatát bemutató diagram.

Két észrevehető ábrafelirat a munkafolyamatokból:

  • A Data Factory és az Azure Synapse Analytics nem létesít közvetlen kapcsolatot a tárfiókkal. Az előfizetés létrehozására vonatkozó kérést az Event Grid továbbítja és dolgozza fel. A szolgáltatásnak nincs engedélye a tárfiók eléréséhez ehhez a lépéshez.
  • A hozzáférés-vezérlés és az engedélyek ellenőrzése a szolgáltatáson belül történik. Mielőtt a szolgáltatás kérést küld egy tárolási eseményre való feliratkozásra, ellenőrzi a felhasználó engedélyét. Pontosabban azt ellenőrzi, hogy a bejelentkezett Azure-fiók és a tárolási eseményindító létrehozása megkísérli-e a megfelelő hozzáférést a megfelelő tárfiókhoz. Ha az engedélyellenőrzés sikertelen, az eseményindító létrehozása is meghiúsul.

Storage-eseményindító folyamat futtatása

Ez a magas szintű munkafolyamat leírja, hogyan futnak a tárolási eseményindító folyamatok az Event Griden keresztül. Az Azure Synapse Analytics esetében az adatfolyam ugyanaz, az Azure Synapse Analytics-folyamatok pedig a Data Factory szerepét veszik át az alábbi ábrán.

Folyamatfuttatásokat aktiváló tárolási esemény munkafolyamatát bemutató ábra.

A munkafolyamatban három észrevehető ábrafelirat kapcsolódik a szolgáltatáson belüli eseményindító folyamatokhoz:

  • Az Event Grid egy leküldéses modellt használ, amely a lehető leghamarabb továbbítja az üzenetet, amikor a tároló az üzenetet a rendszerbe dobja. Ez a megközelítés eltér az olyan üzenetkezelő rendszerektől, mint a Kafka, ahol lekéréses rendszert használnak.

  • Az eseményindító aktív figyelőként szolgál a bejövő üzenethez, és megfelelően aktiválja a társított folyamatot.

  • Maga a tárolási eseményindító nem létesít közvetlen kapcsolatot a tárfiókkal.

    • Ha a folyamaton belül Copy tevékenység vagy más tevékenységgel dolgoz fel adatokat a tárfiókban, a szolgáltatás közvetlen kapcsolatot létesít a tárfiókkal a társított szolgáltatásban tárolt hitelesítő adatok használatával. Győződjön meg arról, hogy a társított szolgáltatás megfelelően van beállítva.
    • Ha nem hivatkozik a folyamatban lévő tárfiókra, nem kell engedélyt adnia a szolgáltatásnak a tárfiók eléréséhez.