Share via


Meldingen verzenden naar een Microsoft Teams-kanaal vanuit een Azure Data Factory- of Synapse Analytics-pijplijn

Het is vaak nodig om meldingen te verzenden tijdens of na de uitvoering van een pijplijn. Melding biedt proactieve waarschuwingen en vermindert de noodzaak van reactieve bewaking om problemen te detecteren.  U vindt meer informatie over het verzenden van e-mailmeldingen met behulp van logische apps die een data factory of Synapse-pijplijn kan aanroepen. Veel ondernemingen maken ook steeds vaker gebruik van Microsoft Teams voor samenwerking. In dit artikel wordt beschreven hoe u meldingen van pijplijnwaarschuwingen configureert in Microsoft Teams. 

Vereisten

Voordat u vanuit uw pijplijnen meldingen naar Teams kunt verzenden, moet u een binnenkomende webhook voor uw Teams-kanaal maken. Als u hiervoor een nieuw Teams-kanaal moet maken, raadpleegt u de Documentatie van Teams.  

  1. Open Microsoft Teams en ga naar het tabblad Apps. Zoek naar 'Inkomende webhook' en selecteer de binnenkomende webhookconnector.

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

  2. Selecteer de knop Toevoegen aan een team om de connector toe te voegen aan de team- of teamkanaalnaamsite waar u meldingen wilt verzenden.

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

  3. Typ of selecteer de naam van het team- of teamkanaal waar u de meldingen wilt verzenden.

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

  4. Selecteer de knop Een connector instellen om de binnenkomende webhook in te stellen voor de naam van het team- of teamkanaal dat u in de vorige stap hebt geselecteerd.

    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. Geef de webhook een naam en upload desgewenst een pictogram om uw berichten te identificeren. Selecteer daarna de knop Maken om de binnenkomende webhook te maken.

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

  6. Kopieer de Webhook-URL die wordt gegenereerd bij het maken en sla deze op voor later gebruik in de pijplijn. Selecteer daarna de knop Gereed om de installatie te voltooien.

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

  7. U ziet de melding in het kanaal waar u de webhookconnector toevoegt.

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

Stappen voor het verzenden van meldingen op teams-kanaal vanuit een pijplijn:

  1. Selecteer het tabblad Maken in het linkerdeelvenster.

  2. Selecteer de knop + (plus) en selecteer vervolgens Nieuwe pijplijn.

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

  3. Geef in het deelvenster Eigenschappen onder Algemeen notifiyTeamsChannelPipeline op als naam. Vouw het deelvenster vervolgens samen door op het pictogram Eigenschappen in de rechterbovenhoek te klikken.

    Shows the "Properties" panel.

    Shows the "Properties" panel hidden.

  4. Selecteer parameters in het deelvenster Configuraties en selecteer vervolgens de knop + Nieuw om de volgende parameters voor uw pijplijn te definiëren.

    Name Type Standaardwaarde
    abonnement 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']
    name 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
    bericht 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".

    Notitie

    Deze parameters worden gebruikt om de bewakings-URL samen te stellen. Stel dat u geen geldig abonnement en resourcegroep opgeeft (van dezelfde data factory waartoe de pijplijnen behoren). In dat geval bevat de melding geen geldige URL voor pijplijnbewaking, maar de berichten werken nog steeds. Bovendien helpt het toevoegen van deze parameters ervoor te zorgen dat deze waarden altijd moeten worden doorgegeven vanuit een andere pijplijn. Als u deze waarden wilt beheren via een benadering op basis van metagegevens, moet u deze dienovereenkomstig wijzigen.

    Tip

    U wordt aangeraden de huidige Data Factory-abonnements-id, resourcegroep en de url van de Teams-webhook (raadpleeg de vereisten) toe te voegen voor de standaardwaarde van de relevante parameters.

  5. Selecteer variabelen in het deelvenster Configuraties en selecteer vervolgens de knop + Nieuw om de volgende variabelen voor uw pijplijn te definiëren.

    Name Type Standaardwaarde
    messageCard String

    Shows the "Pipeline variables".

  6. Zoek naar 'Variabele instellen' in het deelvenster Activiteiten van de pijplijn en sleep een activiteit Variabele instellen naar het pijplijncanvas.

  7. Selecteer de activiteit Variabele instellen op het canvas als deze nog niet is geselecteerd en het tabblad Algemeen om de details ervan te bewerken.

  8. Geef op het tabblad Algemeen het JSON-schema instellen op voor de naam van de activiteit Variabele instellen.

    Shows the "Set variable" activity general tab.

  9. Selecteer op het tabblad Variabelen de messageCard-variabele voor de eigenschap Naam en voer de volgende JSON in voor de eigenschap Waarde :

    {
        "@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. Zoek naar 'Web' in het deelvenster Activiteiten van de pijplijn en sleep een webactiviteit naar het pijplijncanvas.

  11. Maak een afhankelijkheidsvoorwaarde voor de webactiviteit , zodat deze alleen wordt uitgevoerd als de activiteit Variabele instellen is geslaagd. Als u deze afhankelijkheid wilt maken, selecteert u de groene greep aan de rechterkant van de activiteit Variabele instellen, sleept u deze en verbindt u deze met de webactiviteit .

  12. Selecteer de nieuwe webactiviteit op het canvas als deze nog niet is geselecteerd en het tabblad Algemeen om de details ervan te bewerken.

  13. Geef in het deelvenster Algemeen de Url van teams-webhook aan voor de naam van de webactiviteit .

    Shows the "Web" activity general pane.

  14. Stel in het deelvenster Instellingen de volgende eigenschappen in:

    Eigenschappen waarde
    URL @pipeline().parameters.teamWebhookUrl
    Wijze POST
    Tekst @json(variables('messageCard'))

    Shows the "Web" activity settings pane.

  15. Klaar en nu bent u klaar om uw NotifiyTeamsChannelPipeline-pijplijn te valideren, fouten op te sporen en vervolgens te publiceren.

    • Selecteer in de werkbalk Valideren om de pijplijn te valideren.
    • Selecteer Fouten opsporen om fouten op te sporen in de pijplijn. U ziet de status van de pijplijnuitvoering op het tabblad Uitvoer onder aan het venster.
    • Zodra de pijplijn kan worden uitgevoerd, selecteert u Alles publiceren in de bovenste werkbalk. Met deze actie worden entiteiten gepubliceerd die u hebt gemaakt in Data Factory. Wacht totdat het bericht Successfully published wordt weergegeven.

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

Voorbeeldgebruik

In dit voorbeeldscenario maken we een hoofdpijplijn met drie Execute Pipeline-activiteiten . De eerste Execute Pipeline-activiteit roept onze ETL-pijplijn aan en de resterende twee Execute Pipeline-activiteiten roepen de pijplijn 'NotifiyTeamsChannelPipeline' aan om relevante geslaagde of mislukte meldingen naar het Teams-kanaal te verzenden, afhankelijk van de uitvoeringsstatus van onze ETL-pijplijn.

  1. Selecteer het tabblad Auteur in het linkerdeelvenster in Data Factory of het tabblad Integreren in het linkerdeelvenster in Synapse Studio. Selecteer vervolgens de knop + (plus) en selecteer Vervolgens Pijplijn om een nieuwe pijplijn te maken.

  2. Geef in het deelvenster Algemeen onder Eigenschappen MasterPipeline op als naam. Vouw het deelvenster vervolgens samen door op het pictogram Eigenschappen in de rechterbovenhoek te klikken.

  3. Zoek naar een pijplijn in het deelvenster Activiteiten en sleep drie pijplijnactiviteiten uitvoeren naar het pijplijncanvas.

  4. Selecteer eerst de activiteit Pijplijn uitvoeren op het canvas als deze nog niet is geselecteerd en het deelvenster Algemeen om de details ervan te bewerken.

    • Voor de eigenschap Name van de activiteit Execute Pipeline wordt u aangeraden de naam te gebruiken van de aangeroepen ETL-pijplijn waarvoor u meldingen wilt verzenden. We hebben bijvoorbeeld LoadDataPipeline gebruikt voor de naam van onze Execute Pipeline-activiteit omdat dit de naam is van de aangeroepen pijplijn.
    • Selecteer in het deelvenster 'Instellingen' een bestaande pijplijn of maak een nieuwe met behulp van de knop + Nieuw voor de eigenschap Aangeroepen pijplijn. In ons geval hebben we bijvoorbeeld LoadDataPipeline-pijplijn geselecteerd voor de eigenschap 'Aangeroepen pijplijn'. Selecteer andere opties en configureer eventuele parameters voor de pijplijn zo nodig om uw configuratie te voltooien.

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

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

  5. Selecteer de tweede execute pipeline-activiteit op het canvas en het deelvenster Algemeen om de details ervan te bewerken.

    • Geef De melding OnSuccess op voor de naam van de uitvoering van de pijplijnactiviteit .

    • Selecteer in het deelvenster 'Instellingen' de optie NotifiyTeamsChannelPipeline-pijplijn, die we eerder hebben gemaakt, voor de eigenschap Aangeroepen pijplijn. Pas de parameters aan zoals vereist op basis van het activiteitstype. Ik heb de parameters bijvoorbeeld als volgt aangepast:

      Naam Weergegeven als
      abonnement 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      name @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      status @activity('LoadDataPipeline').Status
      bericht 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
    • Maak een afhankelijkheidsvoorwaarde voor de tweede Execute Pipeline-activiteit , zodat deze alleen wordt uitgevoerd als de eerste Execute Pipeline-activiteit slaagt. Als u deze afhankelijkheid wilt maken, selecteert u de groene ingang aan de rechterkant van de eerste Execute Pipeline-activiteit , sleept u deze en verbindt u deze met de tweede Execute Pipeline-activiteit .

    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. Selecteer derde Execute Pipeline-activiteit op het canvas en het deelvenster Algemeen om de details ervan te bewerken.

    • Geef OnFailure-melding op voor de naam van de uitvoerpijplijnactiviteit .

    • Selecteer in het deelvenster Instellingen de pijplijn NotifiyTeamsChannelPipeline voor de eigenschap Aangeroepen pijplijn. Pas de parameters aan zoals vereist op basis van het activiteitstype. Ik heb de parameters deze keer bijvoorbeeld als volgt aangepast:

      Naam Weergegeven als
      abonnement 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      name @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      status @activity('LoadDataPipeline').Status
      bericht @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
    • Maak een afhankelijkheidsvoorwaarde voor de derde Execute Pipeline-activiteit , zodat deze alleen wordt uitgevoerd als de eerste Execute Pipeline-activiteit mislukt. Als u deze afhankelijkheid wilt maken, selecteert u de rode greep aan de rechterkant van de eerste Execute Pipeline-activiteit , sleept u deze en verbindt u deze met de derde Execute Pipeline-activiteit .

    • Valideer, debug en publiceer vervolgens uw MasterPipeline-pijplijn .

    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. Voer een pijplijn uit om meldingen te ontvangen in Teams. Hieronder ziet u voorbeeldmeldingen wanneer mijn pijplijn is uitgevoerd en wanneer deze is mislukt.

    Shows on success pipeline notifications in a Teams channel.

    Shows on failure pipeline notifications in a Teams channel.

  8. Selecteer de knop Pijplijnuitvoering weergeven om de pijplijnuitvoering weer te geven.

Dynamische berichten toevoegen met systeemvariabelen en expressies

U kunt systeemvariabelen en expressies gebruiken om uw berichten dynamisch te maken. Bijvoorbeeld:

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

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

De bovenstaande expressies retourneren de relevante foutberichten van een fout, die als melding kunnen worden verzonden op een Teams-kanaal. Zie het artikel Copy-activiteit uitvoereigenschappen voor meer informatie over dit onderwerp.

We raden u ook aan om het door Microsoft Teams ondersteunde payloadschema voor meldingen te bekijken en de bovenstaande sjabloon verder aan te passen aan uw behoeften.

E-mail verzenden vanuit een pijplijn