Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Często konieczne jest wysyłanie powiadomień podczas lub po wykonaniu potoku. Powiadomienie zapewnia proaktywne alerty i zmniejsza potrzebę reaktywnego monitorowania w celu wykrycia problemów. Dowiesz się, jak wysyłać powiadomienia e-mail przy użyciu aplikacji logiki, które mogą wywoływać potok fabryki danych lub usługi Synapse. Wiele przedsiębiorstw coraz częściej używa usługi Microsoft Teams do współpracy. W tym artykule pokazano, jak skonfigurować powiadomienia z alertów potoku do usługi Microsoft Teams.
Wymagania wstępne
Aby można było wysyłać powiadomienia do usługi Teams z potoków, musisz utworzyć przychodzący element webhook dla kanału usługi Teams. Jeśli chcesz utworzyć nowy kanał usługi Teams w tym celu, zapoznaj się z dokumentacją usługi Teams.
Otwórz aplikację Microsoft Teams i przejdź do karty Aplikacje. Wyszukaj ciąg "Przychodzący element webhook" i wybierz łącznik przychodzącego elementu webhook.
Wybierz przycisk "Dodaj do zespołu", aby dodać łącznik do witryny Nazwy kanału zespołu lub zespołu, w której chcesz wysyłać powiadomienia.
Wpisz lub wybierz nazwę kanału Team lub Team, w którym chcesz wysłać powiadomienia.
Wybierz przycisk "Skonfiguruj łącznik", aby skonfigurować element webhook przychodzący dla nazwy kanału zespołu lub zespołu wybranej w poprzednim kroku.
Nazwij element webhook odpowiednio i opcjonalnie przekaż ikonę, aby zidentyfikować wiadomości. Następnie wybierz przycisk "Utwórz", aby utworzyć przychodzący element webhook.
Skopiuj adres URL elementu webhook wygenerowany podczas tworzenia i zapisz go do późniejszego użycia w potoku. Następnie wybierz przycisk "Gotowe", aby ukończyć konfigurację.
Powiadomienie jest widoczne w kanale, w którym dodajesz łącznik elementu webhook.
Kroki wysyłania powiadomień w kanale usługi Teams z potoku:
Wybierz kartę Autor w okienku po lewej stronie.
Wybierz przycisk + (plus), a następnie wybierz pozycję Nowy potok.
W okienku "Właściwości" w obszarze "Ogólne" określ wartość NotifyTeamsChannelPipeline w polu Nazwa. Następnie zwiń panel, klikając ikonę Właściwości w prawym górnym rogu.
W okienku "Konfiguracje" wybierz pozycję Parametry, a następnie wybierz przycisk + Nowy zdefiniuj następujące parametry dla potoku.
Nazwisko Type Wartość domyślna subskrypcja 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
wiadomość 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
Uwaga
Te parametry służą do konstruowania adresu URL monitorowania. Załóżmy, że nie udostępniasz prawidłowej subskrypcji i grupy zasobów (tej samej fabryki danych, do której należą potoki). W takim przypadku powiadomienie nie będzie zawierać prawidłowego adresu URL monitorowania potoku, ale komunikaty będą nadal działać. Ponadto dodanie tych parametrów pomaga zapobiec konieczności zawsze przekazywania tych wartości z innego potoku. Jeśli zamierzasz kontrolować te wartości za pomocą podejścia opartego na metadanych, należy odpowiednio je zmodyfikować.
Napiwek
Zalecamy dodanie bieżącego identyfikatora subskrypcji usługi Data Factory, grupy zasobów i adresu URL elementu webhook usługi Teams (zapoznaj się z wymaganiami wstępnymi) dla wartości domyślnej odpowiednich parametrów.
W okienku "Konfiguracje" wybierz pozycję Zmienne, a następnie wybierz przycisk + Nowy zdefiniuj następujące zmienne dla potoku.
Nazwisko Type Wartość domyślna messageCard String
Wyszukaj ciąg "Ustaw zmienną" w okienku "Działania" potoku i przeciągnij działanie Ustaw zmienną na kanwę potoku.
Wybierz działanie Ustaw zmienną na kanwie, jeśli nie zostało jeszcze wybrane, a jej karta "Ogólne", aby edytować jego szczegóły.
Na karcie "Ogólne" określ wartość Ustaw schemat JSON dla pozycji Nazwadziałania Ustaw zmienną .
Na karcie "Zmienne" wybierz zmienną messageCard dla właściwości Name i wprowadź następujący kod JSON dla właściwości Value :
{ "@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)}" } ] } ] }
Wyszukaj ciąg "Web" w okienku "Działania" potoku i przeciągnij działanie internetowe na kanwę potoku.
Utwórz warunek zależności dla działania sieci Web , aby był uruchamiany tylko wtedy, gdy działanie Ustaw zmienną powiedzie się. Aby utworzyć tę zależność, wybierz zielony uchwyt po prawej stronie działania Ustaw zmienną , przeciągnij ją i połącz z działaniem sieci Web .
Wybierz nowe działanie sieci Web na kanwie, jeśli nie zostało jeszcze wybrane, a jej karta "Ogólne", aby edytować jego szczegóły.
W okienku "Ogólne" określ wartość Invoke Teams Webhook Url (Wywołaj adres URL elementu webhook usługi Teams) jako Nazwę działania internetowego.
W okienku "Ustawienia" ustaw następujące właściwości w następujący sposób:
Właściwości wartość URL @pipeline().parameters.teamWebhookUrl
Method POST
Treść @json(variables('messageCard'))
Wszystko gotowe do zweryfikowania, debugowania, a następnie opublikowania potoku NotifyTeamsChannelPipeline .
- Wybierz na pasku narzędzi pozycję Weryfikuj, aby zweryfikować potok.
- Aby debugować potok, wybierz na pasku narzędzi pozycję Debuguj. Stan uruchomienia potoku można zobaczyć na karcie "Dane wyjściowe" w dolnej części okna.
- Po pomyślnym uruchomieniu potoku na górnym pasku narzędzi wybierz pozycję Opublikuj wszystko. Ta akcja publikuje jednostki utworzone w usłudze Data Factory. Poczekaj na wyświetlenie komunikatu Pomyślnie opublikowano.
Przykładowe zastosowanie
W tym przykładowym scenariuszu użycia utworzymy potok główny z trzema działaniami Wykonywania potoku . Pierwsze działanie Execute Pipeline (Wykonywanie potoku) spowoduje wywołanie potoku ETL, a pozostałe dwa działania potoku Execute Pipeline wywoła potok "NotifyTeamsChannelPipeline", aby wysłać odpowiednie powiadomienia o powodzeniu lub niepowodzeniu do kanału usługi Teams w zależności od stanu wykonania potoku ETL.
Wybierz kartę Tworzenie w okienku po lewej stronie w usłudze Data Factory lub kartę Integracja w okienku po lewej stronie w programie Synapse Studio. Następnie wybierz przycisk + (plus), a następnie wybierz pozycję Potok , aby utworzyć nowy potok.
W panelu "Ogólne" w obszarze Właściwości określ wartość MasterPipeline w polu Nazwa. Następnie zwiń panel, klikając ikonę Właściwości w prawym górnym rogu.
Wyszukaj potok w okienku "Działania" potoku i przeciągnij trzy działania Execute Pipeline na kanwę potoku.
Wybierz pierwsze działanie Wykonaj potok na kanwie, jeśli nie zostało jeszcze wybrane, a jego okienko "Ogólne", aby edytować jego szczegóły.
- W polu Nazwa właściwości działania Execute Pipeline (Wykonywanie potoku ) zalecamy użycie nazwy wywoływanego potoku ETL, dla którego chcesz wysyłać powiadomienia. Na przykład użyliśmy parametru LoadDataPipeline jako nazwydziałania Execute Pipeline , ponieważ jest to nazwa wywoływanego potoku.
- W okienku "Ustawienia" wybierz istniejący potok lub utwórz nowy przy użyciu przycisku + Nowy dla właściwości Wywoływany potok . Na przykład w naszym przypadku wybrano potok LoadDataPipeline dla właściwości "Wywoływany potok". Wybierz inne opcje i skonfiguruj wszystkie parametry potoku zgodnie z wymaganiami, aby ukończyć konfigurację.
Wybierz drugie działanie Wykonaj potok na kanwie i jest to okienko "Ogólne", aby edytować jego szczegóły.
Określ wartość OnSuccess Notification w polu Nazwa działania Execute Pipeline (Wykonywanie potoku).
W okienku "Ustawienia" wybierz pozycję NotifyTeamsChannelPipeline potoku, który został utworzony wcześniej dla właściwości Wywołany potok . Dostosuj parametry zgodnie z wymaganiami na podstawie typu działania. Na przykład parametry zostały dostosowane w następujący sposób:
Nazwa/nazwisko Wartość subskrypcja 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
wiadomość 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
Utwórz warunek zależności dla drugiego działania Wykonaj potok , tak aby był uruchamiany tylko wtedy, gdy pierwsze działanie Execute Pipeline powiedzie się. Aby utworzyć tę zależność, wybierz zielony uchwyt po prawej stronie pierwszego działania Wykonaj potok, przeciągnij go i połącz go z drugim działaniem Wykonaj potok .
Wybierz trzecie działanie Wykonaj potok na kanwie i jest to okienko "Ogólne", aby edytować jego szczegóły.
Określ wartość OnFailure Notification w polu Nazwa działania Execute Pipeline (Wykonywanie potoku).
W okienku "Ustawienia" wybierz pozycję NotifyTeamsChannelPipeline potoku dla właściwości Wywoływany potok . Dostosuj parametry zgodnie z wymaganiami na podstawie typu działania. Na przykład dostosowaliśmy parametry tym razem w następujący sposób:
Nazwa/nazwisko Wartość subskrypcja 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
wiadomość @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
Utwórz warunek zależności dla trzeciego działania Wykonaj potok , aby był uruchamiany tylko wtedy, gdy pierwsze działanie Execute Pipeline zakończy się niepowodzeniem. Aby utworzyć tę zależność, wybierz czerwony uchwyt po prawej stronie pierwszego działania Wykonaj potok, przeciągnij go i połącz go z trzecim działaniem Wykonaj potok .
Zweryfikuj, debuguj, a następnie opublikuj potok MasterPipeline .
Uruchom potok, aby otrzymywać powiadomienia w usłudze Teams. Na przykład poniżej przedstawiono przykładowe powiadomienia, gdy mój potok został uruchomiony pomyślnie i kiedy zakończył się niepowodzeniem.
Wybierz przycisk "Wyświetl uruchomienie potoku", aby wyświetlić przebieg potoku.
Dodawanie komunikatów dynamicznych ze zmiennymi systemowymi i wyrażeniami
Możesz użyć zmiennych systemowych i wyrażeń, aby komunikaty są dynamiczne. Na przykład: .
@activity("CopyData").output.errors[0].Message
@activity("DataFlow").error.Message
Powyższe wyrażenia zwracają odpowiednie komunikaty o błędach z błędu, które można wysłać jako powiadomienie w kanale usługi Teams. Aby uzyskać więcej informacji na temat tego tematu, zobacz artykuł działanie Kopiuj właściwości danych wyjściowych.
Zachęcamy również do przejrzenia schematu ładunku powiadomień obsługiwanych przez usługę Microsoft Teams i dalszego dostosowywania powyższego szablonu do Twoich potrzeb.