Notatka
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.
W tym artykule dowiesz się, jak skonfigurować aplikacje, procesy lub przepływy pracy CI/CD w oparciu o zdarzenia usługi Azure Machine Learning. Można na przykład skonfigurować wiadomości e-mail z powiadomieniem o niepowodzeniu lub uruchomienia potoku uczenia maszynowego po wykryciu określonych warunków przy użyciu Azure Event Grid.
Usługa Azure Machine Learning zarządza całym cyklem życia procesu uczenia maszynowego, w tym trenowanie modelu, wdrażanie modelu i monitorowanie. Za pomocą usługi Event Grid można reagować na zdarzenia Azure Machine Learning, takie jak ukończenie przebiegów trenowania i rejestracja i wdrażanie modeli, przy użyciu nowoczesnych architektur bezserwerowych. Następnie możesz subskrybować i odbierać zdarzenia, takie jak zmiana stanu uruchomienia, zakończenie przebiegu, rejestracja modelu i wdrożenie modelu w obszarze roboczym.
Użyj usługi Event Grid dla akcji sterowanych zdarzeniami:
- Wysyłaj wiadomości e-mail po niepowodzeniu i ukończeniu przebiegu
- Używanie funkcji platformy Azure po zarejestrowaniu modelu
- Przesyłanie strumieniowe zdarzeń z Azure Machine Learning do różnych punktów końcowych
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Wymagania wstępne
Aby korzystać z usługi Event Grid, musisz mieć dostęp współautora lub właściciela do obszaru roboczego usługi Azure Machine Learning, dla którego tworzysz zdarzenia.
Zarejestruj dostawcę zasobów
Microsoft.EventGridw swojej subskrypcji Azure. Ta rejestracja jest wymagana przed utworzeniem subskrypcji zdarzeń.az provider register --namespace Microsoft.EventGrid --waitJeśli planujesz użyć przykładu usługi Logic Apps, zarejestruj również dostawcę
Microsoft.Logic.az provider register --namespace Microsoft.Logic --waitJeśli planujesz postępować zgodnie z przykładem interfejsu wiersza polecenia, zainstaluj
eventgridrozszerzenie Azure CLI.az extension add --name eventgridJeśli planujesz skorzystać z przykładu CLI, w którym miejscem docelowym jest Event Hub, potrzebujesz istniejącej przestrzeni nazw usługi Event Hubs i centrum zdarzeń. Jeśli chcesz utworzyć centrum zdarzeń, zobacz Tworzenie centrum zdarzeń .
Model i typy zdarzeń
Usługa Azure Event Grid odczytuje zdarzenia ze źródeł, takich jak usługa Azure Machine Learning i inne usługi platformy Azure. Wysyła te zdarzenia do programów obsługi zdarzeń, takich jak Azure Event Hubs, Azure Functions, Logic Apps i inne. Na poniższym diagramie pokazano, jak usługa Event Grid łączy źródła i programy obsługi, ale nie jest to pełna lista obsługiwanych integracji.
Aby uzyskać więcej informacji na temat źródeł zdarzeń i procedur obsługi zdarzeń, zobacz Co to jest usługa Event Grid?.
Typy zdarzeń dla usługi Azure Machine Learning
Azure Machine Learning udostępnia zdarzenia w różnych punktach cyklu życia uczenia maszynowego:
| Typ zdarzenia | Opis |
|---|---|
Microsoft.MachineLearningServices.RunCompleted |
Wywoływane po zakończeniu przebiegu eksperymentu uczenia maszynowego |
Microsoft.MachineLearningServices.ModelRegistered |
Wywoływane, gdy nowy model lub wersja modelu zostaną pomyślnie zarejestrowane |
Microsoft.MachineLearningServices.ModelDeployed |
Wywoływane, gdy co najmniej jeden model zostanie pomyślnie wdrożony w punkcie końcowym |
Microsoft.MachineLearningServices.RunStatusChanged |
Wywoływane przy zmianie statusu uruchomienia |
Filtrowanie i subskrybowanie zdarzeń
Azure Event Grid publikuje te zdarzenia. W witrynie Azure Portal, programie PowerShell lub interfejsie wiersza polecenia platformy Azure można łatwo subskrybować zdarzenia, określając co najmniej jeden typ zdarzenia i warunki filtrowania.
Podczas konfigurowania zdarzeń zastosuj filtry, aby uruchamiać je tylko na podstawie określonych danych zdarzenia. W poniższym przykładzie, w przypadku zdarzeń zmiany stanu uruchomienia można filtrować według typów uruchomień. Zdarzenie jest wyzwalane tylko po spełnieniu kryteriów. Aby uzyskać więcej informacji na temat danych zdarzeń, na których można filtrować, zobacz schemat usługi Azure Machine Learning Event Grid.
Kontrola dostępu oparta na rolach platformy Azure (Azure RBAC) chroni subskrypcje wykorzystywane na potrzeby zdarzeń usługi Azure Machine Learning. Tylko współautor lub właściciel obszaru roboczego mogą tworzyć, aktualizować i usuwać subskrypcje zdarzeń. Filtry można zastosować do subskrypcji zdarzeń podczas tworzenia subskrypcji zdarzeń lub później.
Przejdź do witryny Azure Portal, wybierz nową subskrypcję lub istniejącą.
Wybierz pozycję Zdarzenia w okienku po lewej stronie, a następnie wybierz pozycję + Subskrypcja zdarzeń.
Wybierz kartę Filtry i przewiń w dół do pozycji Filtry zaawansowane. W polu Klucz i Wartość podaj typy właściwości, według których chcesz filtrować. W tym miejscu są widoczne wyzwalacze zdarzeń, jeśli typ uruchomienia to uruchomienie potoku lub uruchomienie kroku potoku.
Filtruj według typu zdarzenia: subskrypcja zdarzeń może określać co najmniej jeden typ zdarzeń usługi Azure Machine Learning.
Filtruj według podmiotu zdarzenia: usługa Azure Event Grid obsługuje filtry podmiotu oparte na dopasowaniach zaczynających się od i kończących się na, dzięki czemu zdarzenia o pasującym podmiocie są dostarczane subskrybentowi. Różne zdarzenia uczenia maszynowego mają inny format tematu.
Typ zdarzenia Format tematu Przykładowy temat Microsoft.MachineLearningServices.RunCompletedexperiments/{ExperimentId}/runs/{RunId}experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94Microsoft.MachineLearningServices.ModelRegisteredmodels/{modelName}:{modelVersion}models/sklearn_regression_model:3Microsoft.MachineLearningServices.ModelDeployedendpoints/{serviceId}endpoints/my_sklearn_aksMicrosoft.MachineLearningServices.RunStatusChangedexperiments/{ExperimentId}/runs/{RunId}experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94Zaawansowane filtrowanie: usługa Azure Event Grid obsługuje również zaawansowane filtrowanie na podstawie opublikowanego schematu zdarzeń. Szczegóły schematu zdarzeń usługi Azure Machine Learning można znaleźć w schemacie zdarzeń usługi Azure Event Grid dla usługi Azure Machine Learning. W przypadku zdarzenia
Microsoft.MachineLearningServices.ModelRegistered, aby filtrować według wartości tagu modelu:--advanced-filter data.ModelTags.key1 StringIn value1Aby dowiedzieć się więcej o sposobie stosowania filtrów, zobacz Filtrowanie zdarzeń dla usługi Event Grid.
Korzystanie ze zdarzeń usługi Machine Learning
Aplikacje obsługujące zdarzenia usługi Machine Learning powinny postępować zgodnie z kilkoma zalecanymi rozwiązaniami:
- Ponieważ wiele subskrypcji może kierować zdarzenia do obsługi przez ten sam program obsługi zdarzeń, nie zakładaj, że zdarzenia pochodzą z konkretnego źródła. Sprawdź temat komunikatu, aby upewnić się, że pochodzi z oczekiwanego obszaru roboczego uczenia maszynowego.
- Podobnie sprawdź, czy typ zdarzenia to typ zdarzenia, który można przetworzyć. Nie zakładaj, że wszystkie otrzymane zdarzenia to oczekiwane typy.
- Ponieważ komunikaty mogą docierać poza kolejnością i z pewnym opóźnieniem, użyj pól ETag, aby sprawdzić, czy informacje o obiektach są nadal aktualne. Ponadto użyj pól programu Sequencer, aby zrozumieć kolejność zdarzeń dla dowolnego określonego obiektu.
- Ignoruj pola, których nie rozumiesz. Ta praktyka pomaga zapewnić odporność na nowe funkcje, które mogą zostać dodane w przyszłości.
- Operacje usługi Azure Machine Learning, które zakończyły się niepowodzeniem lub zostały anulowane, nie wyzwalają zdarzenia. Na przykład, jeśli wdrożenie modelu zakończy się niepowodzeniem, zdarzenie Microsoft.MachineLearningServices.ModelDeployed nie zostanie wyzwolone. Podczas projektowania aplikacji należy wziąć pod uwagę taki tryb awarii. Zawsze możesz użyć zestawu SDK Azure Machine Learning, interfejsu wiersza polecenia lub portalu, aby sprawdzić stan operacji i zrozumieć szczegółowe przyczyny niepowodzenia.
Usługa Azure Event Grid umożliwia tworzenie luźno powiązanych procedur obsługi komunikatów, które mogą być wyzwalane przez zdarzenia z usługi Azure Machine Learning. Oto kilka istotnych przykładów programów obsługi komunikatów:
- Azure Functions
- Aplikacje logiki Azure
- Azure Event Hubs
- Potok danych usługi Azure Data Factory
- Ogólne webhooki, które można hostować na platformie Azure lub w innym miejscu
Konfigurowanie w portalu Azure
Otwórz witrynę Azure Portal i przejdź do obszaru roboczego usługi Azure Machine Learning.
Na pasku po lewej stronie wybierz pozycję Zdarzenia , a następnie wybierz pozycję Subskrypcje zdarzeń.
Wybierz typ zdarzenia do przetwarzania.
Wybierz punkt końcowy, aby opublikować zdarzenie. Na poniższym zrzucie ekranu wybranym punktem końcowym jest Event hub:
Po potwierdzeniu wyboru wybierz pozycję Utwórz. Po skonfigurowaniu te zdarzenia są wysyłane na endpoint.
Aby potwierdzić utworzenie subskrypcji, wybierz w swoim obszarze roboczym pozycje Zdarzenia>Subskrypcje zdarzeń i sprawdź, czy nowa subskrypcja pojawia się na liście.
Skonfiguruj za pomocą interfejsu CLI
Możesz zainstalować najnowszą Azure CLI lub użyć Azure Cloud Shell dostarczonej w ramach subskrypcji Azure. Upewnij się, że zainstalujesz rozszerzenie eventgrid, zgodnie z opisem w sekcji Wymagania wstępne.
W poniższym przykładzie pokazano, jak wybrać subskrypcję Azure i utworzyć nową subskrypcję zdarzeń dla Azure Machine Learning:
# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"
# Subscribe to the machine learning workspace. This example uses EventHub as a destination.
az eventgrid event-subscription create --name {eventGridFilterName} \
--source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
--endpoint-type eventhub \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
--included-event-types Microsoft.MachineLearningServices.ModelRegistered \
--subject-begins-with "models/mymodelname"
Aby potwierdzić, że subskrypcja została utworzona pomyślnie, uruchom polecenie:
az eventgrid event-subscription show \
--name {eventGridFilterName} \
--source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName}
Przykłady
Przykład: Wysyłanie alertów e-mail
Użyj Azure Logic Apps, aby skonfigurować wiadomości e-mail dla wszystkich zdarzeń. Dostosuj za pomocą warunków i określ odbiorców, aby umożliwić współpracę i lepszą orientację między współpracującymi zespołami.
W witrynie Azure Portal przejdź do obszaru roboczego usługi Azure Machine Learning i wybierz kartę Zdarzenia na pasku po lewej stronie. Tutaj wybierz pozycję Aplikacje logiki.
Zaloguj się do interfejsu użytkownika aplikacji logiki i wybierz pozycję Machine Learning service jako typ tematu.
Wybierz zdarzenie, dla którego chcesz otrzymywać powiadomienia. Na przykład poniższy zrzut ekranu przedstawia RunCompleted.
Następnie dodaj krok umożliwiający korzystanie z tego zdarzenia i wyszukiwanie wiadomości e-mail. Istnieje kilka różnych kont poczty, których można użyć do odbierania zdarzeń. Możesz również skonfigurować warunki wysyłania alertu e-mail.
Wybierz pozycję Wyślij wiadomość e-mail i wypełnij parametry. W temacie uwzględnij typ zdarzenia i temat , aby ułatwić filtrowanie zdarzeń. Możesz również dołączyć do treści wiadomości link do strony obszaru roboczego dla uruchomień.
Aby zapisać tę akcję, wybierz pozycję Zapisz jako w lewym rogu strony.
Aby sprawdzić, czy alert działa, wywołaj zdarzenie spełniające warunki — na przykład ukończ przebieg treningowy — i potwierdź, że wiadomość e-mail dotrze do wskazanych adresatów.
Następne kroki
Aby dowiedzieć się więcej o usłudze Event Grid i wypróbować zdarzenia Azure Machine Learning, zobacz: