Odesílání oznámení do kanálu Microsoft Teams z kanálu Azure Data Factory nebo Synapse Analytics
Často je potřeba odesílat oznámení během nebo po spuštění kanálu. Oznámení poskytuje proaktivní upozorňování a snižuje potřebu reaktivního monitorování, aby se zjistily problémy. Dozvíte se, jak odesílat e-mailová oznámení pomocí aplikací logiky, které může vyvolat datová továrna nebo kanál Synapse. Mnoho podniků také stále častěji využívá Microsoft Teams ke spolupráci. Tento článek ukazuje, jak nakonfigurovat oznámení z upozornění kanálu do Microsoft Teams.
Požadavky
Než budete moct odesílat oznámení do Teams z kanálů, musíte vytvořit příchozí webhook pro kanál Teams. Pokud potřebujete pro tento účel vytvořit nový kanál Teams, projděte si dokumentaci k Teams.
Otevřete Microsoft Teams a přejděte na kartu Aplikace. Vyhledejte příchozí webhook a vyberte konektor příchozího webhooku.
Vyberte tlačítko Přidat do týmu a přidejte konektor na web s názvem týmu nebo kanálu týmu, kam chcete odesílat oznámení.
Zadejte nebo vyberte název kanálu týmu nebo týmu, kam chcete oznámení odeslat.
Výběrem tlačítka Nastavit konektor nastavte příchozí webhook pro název kanálu týmu nebo týmu, který jste vybrali v předchozím kroku.
Webhook pojmenujte podle potřeby a volitelně nahrajte ikonu pro identifikaci vašich zpráv. Potom výběrem tlačítka Vytvořit vytvořte příchozí webhook.
Zkopírujte adresu URL webhooku vygenerovanou při vytváření a uložte ji pro pozdější použití v kanálu. Potom výběrem tlačítka Hotovo dokončete nastavení.
Oznámení se zobrazí v kanálu, kam přidáte konektor webhooku.
Postup odesílání oznámení v kanálu Teams z kanálu:
V levém podokně vyberte kartu Autor .
Vyberte tlačítko + (plus) a pak vyberte Nový kanál.
V podokně Vlastnosti v části Obecné zadejte NotifyTeamsChannelPipeline pro Název. Potom panel sbalte kliknutím na ikonu Vlastnosti v pravém horním rohu.
V podokně Konfigurace vyberte Parametry a pak vyberte + Nové tlačítko definovat následující parametry pro váš kanál.
Name Type Výchozí hodnota předplatné 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
stav String
@activity('Specify name of the calling pipeline').Status
zpráva 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
Poznámka:
Tyto parametry se používají k vytvoření adresy URL monitorování. Předpokládejme, že nezadáte platné předplatné a skupinu prostředků (stejnou datovou továrnu, do které kanály patří). V takovém případě oznámení nebude obsahovat platnou adresu URL monitorování kanálu, ale zprávy budou i nadále fungovat. Přidáním těchto parametrů navíc zabráníte tomu, aby se tyto hodnoty vždy předávaly z jiného kanálu. Pokud máte v úmyslu tyto hodnoty řídit pomocí přístupu řízeného metadaty, měli byste je odpovídajícím způsobem upravit.
Tip
Doporučujeme přidat aktuální ID předplatného služby Data Factory, skupinu prostředků a adresu URL webhooku Teams (viz požadavky) pro výchozí hodnotu relevantních parametrů.
V podokně Konfigurace vyberte Proměnné a pak vyberte tlačítko + Nový definovat následující proměnné pro váš kanál.
Name Type Výchozí hodnota messageCard String
V podokně Aktivity vyhledejte "Nastavit proměnnou" a přetáhněte aktivitu Nastavit proměnnou na plátno kanálu.
Pokud ještě není vybraná, vyberte na plátně aktivitu Nastavit proměnnou a její podrobnosti můžete upravit na kartě Obecné.
Na kartě Obecné zadejte pro název aktivity Nastavit proměnnou schéma JSON.
Na kartě Proměnné vyberte proměnnou messageCard pro vlastnost Name a jako vlastnost Value zadejte následující JSON:
{ "@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": "Pipeline 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)}" } ] } ] }
V podokně Aktivity vyhledejte "Web" a přetáhněte webovou aktivitu na plátno kanálu.
Vytvořte podmínku závislosti pro webovou aktivitu, aby se spustila pouze v případě , že aktivita Nastavit proměnnou proběhne úspěšně. Pokud chcete tuto závislost vytvořit, vyberte zelený úchyt na pravé straně aktivity Nastavit proměnnou , přetáhněte ji a připojte ji k webové aktivitě.
Vyberte novou webovou aktivitu na plátně, pokud ještě není vybraná, a její kartu Obecné můžete upravit.
V podokně Obecné zadejte adresu URL webhooku Invoke Teams pro název webové aktivity.
V podokně Nastavení nastavte následující vlastnosti takto:
Vlastnost hodnota Adresa URL @pipeline().parameters.teamWebhookUrl
metoda POST
Text @json(variables('messageCard'))
Všechno nastavené a teď jste připraveni ověřit, ladit a pak publikovat kanál NotifyTeamsChannelPipeline .
- Vyberte Ověřit z panelu nástrojů a kanál ověřte.
- K ladění kanálu vyberte na panelu nástrojů Ladit. Stav spuštění kanálu můžete zobrazit na kartě Výstup v dolní části okna.
- Po úspěšném spuštění kanálu vyberte na horním panelu nástrojů možnost Publikovat vše. Tato akce publikuje entity, které jste vytvořili ve službě Data Factory. Počkejte, dokud se nezobrazí zpráva Publikování proběhlo úspěšně.
Ukázkové využití
V tomto ukázkovém scénáři použití vytvoříme hlavní kanál se třemi aktivitami spuštění kanálu . První aktivita kanálu Spuštění vyvolá kanál ETL a zbývající dvě aktivity spuštění kanálu vyvolá kanál NotifyTeamsChannelPipeline, který odešle relevantní oznámení o úspěchu nebo selhání kanálu Teams v závislosti na stavu spuštění kanálu ETL.
V levém podokně ve službě Data Factory nebo v levém podokně v nástroji Synapse Studio vyberte kartu Vytvořit. Dále vyberte tlačítko + (plus) a pak vyberte Kanál a vytvořte nový kanál.
Na panelu Obecné v části Vlastnosti zadejte MasterPipeline pro Název. Potom panel sbalte kliknutím na ikonu Vlastnosti v pravém horním rohu.
Vyhledejte kanál v podokně Aktivity kanálu a přetáhněte tři aktivity Spuštění kanálu na plátno kanálu.
Pokud ještě není vybraná, vyberte na plátně nejprve aktivitu Spustit kanál a jeho podokno Obecné a upravte jeho podrobnosti.
- Pro vlastnost Name aktivity Spustit kanál doporučujeme použít název vyvolaného kanálu ETL, pro který chcete odesílat oznámení. Například pro název aktivity spuštění kanálu jsme použili LoadDataPipeline, protože se jedná o název našeho vyvolaného kanálu.
- V podokně Nastavení vyberte existující kanál nebo vytvořte nový pomocí tlačítka + Nový pro vyvolánou vlastnost kanálu . V našem případě jsme například vybrali kanál LoadDataPipeline pro vlastnost Vyvoláný kanál. Vyberte další možnosti a podle potřeby nakonfigurujte všechny parametry kanálu pro dokončení konfigurace.
Na plátně vyberte druhou aktivitu spustit kanál a jeho podrobnosti můžete upravit v podokně Obecné.
Zadejte oznámení OnSuccess pro název aktivity spuštění kanálu .
V podokně Nastavení vyberte Kanál NotifyTeamsChannelPipeline , který jsme vytvořili dříve, pro vyvolání vlastnosti kanálu . Upravte parametry podle potřeby na základě typu aktivity. Například jsem upravil(a) parametry takto:
Jméno Hodnota předplatné 11111111-0000-aaaa-bbbb-0000000000
resourceGroup contosorg
runId @activity('LoadDataPipeline').output['pipelineRunId']
name @activity('LoadDataPipeline').output['pipelineName']
triggerTime @activity('LoadDataPipeline').ExecutionStartTime
stav @activity('LoadDataPipeline').Status
zpráva 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
Vytvořte podmínku závislosti pro druhou aktivitu spuštění kanálu , aby se spustila pouze v případě, že první aktivita kanálu spuštění proběhne úspěšně. Pokud chcete tuto závislost vytvořit, vyberte zelený popisovač na pravé straně první aktivity kanálu spuštění, přetáhněte ji a připojte ji k druhé aktivitě kanálu spuštění .
Vyberte na plátně třetí aktivitu spustit kanál a jeho podrobnosti můžete upravit v podokně Obecné.
Zadejte oznámení OnFailure pro název aktivity spuštění kanálu .
V podokně Nastavení vyberte Kanál NotifyTeamsChannelPipeline pro vyvolánou vlastnost kanálu . Upravte parametry podle potřeby na základě typu aktivity. Například tentokrát jsem upravil(a) parametry následujícím způsobem:
Jméno Hodnota předplatné 11111111-0000-aaaa-bbbb-0000000000
resourceGroup contosorg
runId @activity('LoadDataPipeline').output['pipelineRunId']
name @activity('LoadDataPipeline').output['pipelineName']
triggerTime @activity('LoadDataPipeline').ExecutionStartTime
stav @activity('LoadDataPipeline').Status
zpráva @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
Vytvořte podmínku závislosti pro třetí aktivitu spuštění kanálu , aby se spustila pouze v případě, že první aktivita spuštění kanálu selže. Pokud chcete tuto závislost vytvořit, vyberte červený popisovač na pravé straně první aktivity kanálu spuštění, přetáhněte ji a připojte ji k třetí aktivitě kanálu spuštění .
Ověřte, laďte a publikujte kanál MasterPipeline .
Spusťte kanál pro příjem oznámení v Teams. Níže jsou například ukázková oznámení, když se kanál úspěšně spustil a když selhal.
Výběrem tlačítka Zobrazit spuštění kanálu zobrazíte spuštění kanálu.
Přidání dynamických zpráv pomocí systémových proměnných a výrazů
K dynamickému vytváření zpráv můžete použít systémové proměnné a výrazy . Příklad:
@activity("CopyData").output.errors[0].Message
@activity("DataFlow").error.Message
Výše uvedené výrazy vrátí relevantní chybové zprávy z selhání, které je možné odeslat jako oznámení v kanálu Teams. Další informace o tomto tématu najdete v článku o výstupních vlastnostech aktivita Copy.
Doporučujeme vám také zkontrolovat schéma datové části oznámení podporované v Microsoft Teams a dále přizpůsobit výše uvedenou šablonu vašim potřebám.