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


Értesítések küldése Microsoft Teams-csatornára egy Azure Data Factory- vagy Synapse Analytics-folyamatból

Gyakran szükséges értesítéseket küldeni egy folyamat végrehajtása közben vagy után. Az értesítés proaktív riasztást biztosít, és csökkenti a reaktív monitorozás szükségességét a problémák felderítéséhez.  Megtudhatja , hogyan küldhet e-mail-értesítéseket olyan logikai alkalmazásokkal , amelyeket egy adat-előállító vagy a Synapse-folyamat meghívhat. Számos vállalat is egyre inkább a Microsoft Teamst használja együttműködésre. Ez a cikk bemutatja, hogyan konfigurálhatja a folyamatriasztások értesítéseit a Microsoft Teamsben. 

Előfeltételek

Mielőtt értesítéseket küldhet a Teamsnek a folyamatokból, létre kell hoznia egy bejövő webhookot a Teams-csatornához. Ha ehhez új Teams-csatornát kell létrehoznia, tekintse meg a Teams dokumentációját.  

  1. Nyissa meg a Microsoft Teamst, és lépjen az Alkalmazások lapra. Keressen rá a "Bejövő webhook" kifejezésre, és válassza ki a Bejövő webhook összekötőt.

    Shows the Incoming Webhook app under the Apps tab in Teams.

  2. A "Hozzáadás a csapathoz" gombot választva adja hozzá az összekötőt ahhoz a csapat- vagy csapatcsatorna-névhelyhez, ahol értesítéseket szeretne küldeni.

    Highlights the "Add to a team" button for the Incoming Webhook app.

  3. Írja be vagy válassza ki a csapat vagy csapat csatorna nevét, ahol el szeretné küldeni az értesítéseket.

    Shows the team selection prompt on the Incoming Webhook app configuration dialog in Teams. Type the "Team or Team channel name"

  4. Válassza az "Összekötő beállítása" gombot az előző lépésben kiválasztott csapat- vagy csapatcsatornanév Bejövő webhook beállításához.

    Shows the team selection prompt on the Incoming Webhook app configuration dialog in Teams. Highlights the Team and the "Set up a connector" button

  5. Nevezze el a webhookot megfelelőnek, és tetszés szerint töltsön fel egy ikont az üzenetek azonosításához. Ezután válassza a "Létrehozás" gombot a Bejövő webhook létrehozásához.

    Highlights the name property, optional image upload, and "Create" button in the Incoming Webhook options page.  

  6. Másolja ki a létrehozáskor létrehozott Webhook URL-címet, és mentse későbbi használatra a folyamatban. Ezután válassza a "Kész" gombot a telepítés befejezéséhez.

    Shows the new webhook URL on the Incoming Webhook options page after creation.

  7. Az értesítés abban a csatornában jelenik meg, ahol hozzáadja a webhook-összekötőt.

    Shows the notification in the Teams channel where you added the webhook connector.

A Teams-csatornán futó értesítések folyamatból való küldéséhez szükséges lépések:

  1. Válassza a Bal oldali panel Szerző lapját.

  2. Válassza a + (plusz) gombot, majd válassza az Új folyamat lehetőséget.

    Shows the "New pipeline" menu in the Azure Data Factory Studio.

  3. Az "Általános" alatt található Tulajdonságok panelen adja meg a NotifiyTeamsChannelPipeline nevet. Ezután a jobb felső sarokban található Tulajdonságok ikonra kattintva összecsukja a panelt.

    Shows the "Properties" panel.

    Shows the "Properties" panel hidden.

  4. A "Konfigurációk" panelen válassza a Paraméterek lehetőséget, majd válassza az + Új gombot, amely a folyamat következő paramétereit határozza meg.

    Name Type Alapértelmezett érték
    subscription String Specify subscription id for the pipeline
    resourceGroup String Specify resource group name for the pipeline
    runId String @activity('Specify name of the calling pipeline').output['pipelineRunId']
    név String @activity('Specify name of the calling pipeline').output['pipelineName']
    triggerTime String @activity('Specify name of the calling pipeline').ExecutionStartTime
    status String @activity('Specify name of the calling pipeline').Status
    message String @activity('Specify name of the calling pipeline').Error['message']
    executionEndTime String @activity('Specify name of the calling pipeline').ExecutionEndTime
    runDuration String @activity('Specify name of the calling pipeline').Duration
    teamWebhookUrl String Specify Team Webhook URL

    Shows the "Pipeline parameters".

    Megjegyzés:

    Ezek a paraméterek a figyelési URL-cím létrehozásához használhatók. Tegyük fel, hogy nem ad meg érvényes előfizetést és erőforráscsoportot (ugyanahhoz az adat-előállítóhoz, amelyhez a folyamatok tartoznak). Ebben az esetben az értesítés nem tartalmaz érvényes folyamatfigyelési URL-címet, de az üzenetek továbbra is működni fognak. Ezen paraméterek hozzáadásával megakadályozhatja, hogy ezeket az értékeket mindig egy másik folyamatból adja át. Ha metaadat-alapú megközelítéssel szeretné vezérelni ezeket az értékeket, akkor ennek megfelelően módosítania kell őket.

    Tipp.

    Javasoljuk, hogy adja hozzá az aktuális Data Factory-előfizetés azonosítóját, erőforráscsoportját és a Teams webhook URL-címét (az előfeltételekre hivatkozva) a megfelelő paraméterek alapértelmezett értékéhez.

  5. A "Konfigurációk" panelen válassza a Változók lehetőséget, majd válassza az + Új gombot, amely a folyamat következő változóit határozza meg.

    Name Type Alapértelmezett érték
    messageCard String

    Shows the "Pipeline variables".

  6. Keressen rá a "Változó beállítása" kifejezésre a folyamat "Tevékenységek" paneljén, és húzza a Változó beállítása tevékenységet a folyamatvászonra.

  7. Ha még nincs kijelölve, válassza a Változó beállítása tevékenységet a vásznon, és az "Általános" fület a részletek szerkesztéséhez.

  8. Az "Általános" lapon adja meg a Változó beállítása tevékenység nevének JSON-sémájának beállítását.

    Shows the "Set variable" activity general tab.

  9. A "Változók" lapon válassza a MessageCard változót a Név tulajdonsághoz, és adja meg a következő JSON értéket az Érték tulajdonsághoz:

    {
        "@type": "MessageCard",
        "@context": "http://schema.org/extensions",
        "themeColor": "0076D7",
        "summary": "Pipeline status alert message​​​​",
        "sections": [
            {
                "activityTitle": "Pipeline execution alert​​​​",
                "facts": [
                    {
                        "name": "Subscription Id:",
                        "value": "@{pipeline().parameters.subscription}"
                    },
                    {
                        "name": "Resource Group:",
                        "value": "@{pipeline().parameters.resourceGroup}"
                    },
                    {
                        "name": "Data Factory Name:",
                        "value": "@{pipeline().DataFactory}"
                    },
                    {
                        "name": "Pipeline RunId:",
                        "value": "@{pipeline().parameters.runId}"
                    },
                    {
                        "name": "Pipline Name:",
                        "value": "@{pipeline().Pipeline}"
                    },
                    {
                        "name": "Pipeline Status:",
                        "value": "@{pipeline().parameters.status}"
                    },
                    {
                        "name": "Execution Start Time (UTC):",
                        "value": "@{pipeline().parameters.triggerTime}"
                    },
                    {
                        "name": "Execution Finish Time (UTC):",
                        "value": "@{pipeline().parameters.executionEndTime}"
                    },
                    {
                        "name": "Execution Duration (s):",
                        "value": "@{pipeline().parameters.runDuration}"
                    },
                    {
                        "name": "Message:",
                        "value": "@{pipeline().parameters.message}"
                    },
                    {
                        "name": "Notification Time (UTC):",
                        "value": "@{utcnow()}"
                    }
                ],
                "markdown": true
            }
        ],
        "potentialAction": [
            {
                "@type": "OpenUri",
                "name": "View pipeline run",
                "targets": [
                    {
                        "os": "default",
                        "uri": "@{concat('https://synapse.azure.com/monitoring/pipelineruns/',pipeline().parameters.runId,'?factory=/subscriptions/',pipeline().parameters.subscription,'/resourceGroups/',pipeline().parameters.resourceGroup,'/providers/Microsoft.DataFactory/factories/',pipeline().DataFactory)}"
                    }
                ]
            }
        ]
    }
    

    Shows the "Set variable" activity variables tab.

  10. Keressen rá a "Web" kifejezésre a folyamat "Tevékenységek" paneljén, és húzzon egy webes tevékenységet a folyamatvászonra.

  11. Hozzon létre egy függőségi feltételt a webes tevékenységhez, hogy csak akkor fusson, ha a Változó beállítása tevékenység sikeres. A függőség létrehozásához jelölje ki a változó beállítása tevékenység jobb oldalán található zöld fogópontot, húzza át, és csatlakoztassa a webes tevékenységhez.

  12. Ha még nincs kijelölve, jelölje ki az új webes tevékenységet a vásznon, és az "Általános" fület a részletek szerkesztéséhez.

  13. Az "Általános" panelen adja meg a Teams Webhook url-címének meghívását a webes tevékenység nevéhez.

    Shows the "Web" activity general pane.

  14. A "Gépház" panelen állítsa be a következő tulajdonságokat az alábbiak szerint:

    Tulajdonság Érték
    URL @pipeline().parameters.teamWebhookUrl
    Metódus POST
    Törzs @json(variables('messageCard'))

    Shows the "Web" activity settings pane.

  15. Most már készen áll a NotifiyTeamsChannelPipeline folyamat ellenőrzésére, hibakeresésére és közzétételére.

    • A folyamat érvényesítéséhez válassza az Érvényesítés elemet az eszköztáron.
    • A folyamat hibakereséséhez válassza a Hibakeresés elemet az eszköztáron. A folyamat futásának állapotát az ablak alján található "Kimenet" lapon tekintheti meg.
    • Miután a folyamat sikeresen lefutott, a felső eszköztáron válassza az Összes közzététele lehetőséget. Ez a művelet közzéteszi a Data Factoryben létrehozott entitásokat. Várjon, amíg megjelenik a Sikeres közzététel üzenet.

    Shows the "Validate, Debug, Publish" buttons to validate, debug, and then publish your pipeline.

Mintahasználat

Ebben a mintahasználati forgatókönyvben létrehozunk egy főfolyamatot három folyamatvégzéssel . Az első folyamatvégzési tevékenység meghívja az ETL-folyamatot, a fennmaradó két végrehajtási folyamat pedig meghívja a "NotifiyTeamsChannelPipeline" folyamatot, hogy releváns sikeres vagy sikertelen értesítéseket küldjön a Teams-csatornának az ETL-folyamat végrehajtási állapotától függően.

  1. A Data Factory bal oldali panelén válassza a Szerző lap, a Synapse Studio bal oldali paneljének Integrálása lapját. Ezután válassza a + (plusz) gombot, majd válassza a Folyamat lehetőséget egy új folyamat létrehozásához.

  2. A Tulajdonságok területen az "Általános" panelen adja meg a MasterPipeline nevet. Ezután a jobb felső sarokban található Tulajdonságok ikonra kattintva összecsukja a panelt.

  3. Keresse meg a folyamatot a folyamat "Tevékenységek" paneljén, és húzza a folyamatvászonra három Folyamat végrehajtása tevékenységet.

  4. Ha még nincs kijelölve, válassza ki az első Folyamat végrehajtása tevékenységet a vásznon, és az "Általános" panelt a részleteinek szerkesztéséhez.

    • A Folyamat végrehajtása tevékenység Név tulajdonsága esetében azt javasoljuk, hogy használja a meghívott ETL-folyamat nevét, amelyhez értesítéseket szeretne küldeni. Például a LoadDataPipeline nevet használtuk a folyamatvégrehajtási tevékenység nevére, mert ez a meghívott folyamat neve.
    • A "Gépház" panelen válasszon ki egy meglévő folyamatot, vagy hozzon létre egy újat az Meghívott folyamat tulajdonság + Új gomb használatával. Esetünkben például a LoadDataPipeline-folyamatot választottuk ki a "Meghívott folyamat" tulajdonsághoz. Válasszon más beállításokat, és konfigurálja a folyamat paramétereit a konfiguráció elvégzéséhez szükséges módon.

    Shows the "Execute pipeline" activity general pane for "LoadDataPipeline" pipeline.

    Shows the "Execute pipeline" activity setting pane for "LoadDataPipeline" pipeline.

  5. Válassza ki a második Folyamat végrehajtása tevékenységet a vásznon, és az "Általános" panelt választva szerkesztheti annak részleteit.

    • Adja meg az OnSuccess-értesítést a végrehajtási folyamat tevékenységének nevéhez.

    • A "Gépház" panelen válassza a NotifiyTeamsChannelPipeline folyamatot, amelyet korábban hoztunk létre a Meghívott folyamat tulajdonsághoz. Szükség szerint testre szabhatja a paramétereket a tevékenység típusa alapján. Például testre szabtam a paramétereket az alábbiak szerint:

      Név Érték
      subscription 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      név @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      status @activity('LoadDataPipeline').Status
      message Pipeline - LoadDataPipeline ran with success.
      executionEndTime @activity('LoadDataPipeline').ExecutionEndTime
      runDuration @activity('LoadDataPipeline').Duration
      teamWebhookUrl https://microsoft.webhook.office.com/webhookb2/1234abcd-1x11-2ff1-ab2c-1234d0699a9e@72f988bf-32b1-41af-91ab-2d7cd011db47/IncomingWebhook/8212f66ad80040ab83cf68b554d9232a/17d524d0-ed5c-44ed-98a0-35c12dd89a6d
    • Hozzon létre egy függőségi feltételt a második folyamatfuttatási tevékenységhez, hogy csak akkor fusson, ha az első folyamat-végrehajtási tevékenység sikeres. A függőség létrehozásához válassza ki az első Folyamat végrehajtása tevékenység jobb oldalán található zöld fogópontot, húzza át, és csatlakoztassa a második folyamatvégző tevékenységhez.

    Shows the second "Execute pipeline" activity "OnSuccess Notification" general pane for "NotifiyTeamsChannelPipeline" pipeline.

    Shows the second "Execute pipeline" activity "OnSuccess Notification" setting pane for "NotifiyTeamsChannelPipeline" pipeline.

  6. Válassza ki a harmadik Folyamat végrehajtása tevékenységet a vásznon, és az "Általános" panelt választva szerkesztheti a részleteket.

    • Adja meg az OnFailure-értesítést a végrehajtási folyamat tevékenységének nevéhez.

    • A "Gépház" panelen válassza a NotifiyTeamsChannelPipeline folyamatot a Meghívott folyamat tulajdonsághoz. Szükség szerint testre szabhatja a paramétereket a tevékenység típusa alapján. Most például az alábbiak szerint szabtam testre a paramétereket:

      Név Érték
      subscription 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      név @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      status @activity('LoadDataPipeline').Status
      message @activity('LoadDataPipeline').Error['message']
      executionEndTime @activity('LoadDataPipeline').ExecutionEndTime
      runDuration @activity('LoadDataPipeline').Duration
      teamWebhookUrl https://microsoft.webhook.office.com/webhookb2/1234abcd-1x11-2ff1-ab2c-1234d0699a9e@72f988bf-32b1-41af-91ab-2d7cd011db47/IncomingWebhook/8212f66ad80040ab83cf68b554d9232a/17d524d0-ed5c-44ed-98a0-35c12dd89a6d
    • Hozzon létre egy függőségi feltételt a harmadik folyamatvégzési tevékenységhez, hogy csak akkor fusson, ha az első Folyamat végrehajtása tevékenység meghiúsul. A függőség létrehozásához jelölje ki az első Folyamat végrehajtása tevékenység jobb oldalán található piros fogópontot, húzza át, és csatlakoztassa a harmadik folyamatvégző tevékenységhez.

    • Ellenőrizze, hibakeresés után tegye közzé a MasterPipeline-folyamatot .

    Shows the third "Execute pipeline" activity "OnFailure Notification" general pane for "NotifiyTeamsChannelPipeline" pipeline.

    Shows the third "Execute pipeline" activity "OnFailure Notification" settings pane for "NotifiyTeamsChannelPipeline" pipeline.

  7. Futtassa a folyamatot az értesítések fogadásához a Teamsben. Az alábbiakban például a mintaértesítések szerepelnek, amikor a folyamat sikeresen futott, és mikor hiúsult meg.

    Shows on success pipeline notifications in a Teams channel.

    Shows on failure pipeline notifications in a Teams channel.

  8. A folyamatfuttatás megtekintéséhez válassza a "Folyamatfuttatás megtekintése" gombot.

Dinamikus üzenetek hozzáadása rendszerváltozókkal és -kifejezésekkel

Rendszerváltozókkal és -kifejezésekkel dinamikussá teheti az üzeneteket. For example:

  • @activity("CopyData").output.errors[0].Message

  • @activity("DataFlow").error.Message

A fenti kifejezések a megfelelő hibaüzeneteket fogják visszaadni egy hibából, amely értesítésként küldhető el egy Teams-csatornán. A témakörről további információt a Copy tevékenység kimeneti tulajdonságokról szóló cikkben talál.

Javasoljuk továbbá, hogy tekintse át a Microsoft Teams által támogatott értesítési hasznos adat sémát , és szabja testre a fenti sablont az igényeinek megfelelően.

E-mailek küldése folyamatból