Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, você aprenderá a configurar aplicativos, processos ou fluxos de trabalho de CI/CD orientados a eventos com base em eventos do Azure Machine Learning. Por exemplo, pode configurar emails de notificação de falhas ou execuções de pipeline de ML quando certas condições são detetadas usando o Azure Event Grid.
O Azure Machine Learning gere todo o ciclo de vida do processo de machine learning, incluindo treino de modelos, implementação de modelos e monitorização. Ao utilizar o Event Grid, pode reagir a eventos do Azure Machine Learning, como a conclusão de execuções de treino e o registo e implementação de modelos, utilizando arquiteturas serverless modernas. Pode então subscrever e consumir eventos como alteração do estado da execução, conclusão da execução, registo de modelos e implementação de modelos dentro de um espaço de trabalho.
Use a Grelha de Eventos para ações orientadas a eventos:
- Enviar e-mails em caso de falha na execução e de conclusão da execução
- Usar uma função do Azure depois que um modelo é registrado
- Transmitir eventos do Azure Machine Learning para vários endpoints
Importante
Os itens assinalados com (pré-visualização) neste artigo estão atualmente em pré-visualização pública. A versão de pré-visualização é fornecida sem um acordo de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Pré-requisitos
Para usar a Grade de Eventos, você precisa de acesso de colaborador ou proprietário ao espaço de trabalho do Azure Machine Learning para o qual você cria eventos.
Registe o fornecedor de recursos do
Microsoft.EventGridna subscrição do Azure que possui. Este registo é obrigatório antes de poder criar subscrições para eventos.az provider register --namespace Microsoft.EventGrid --waitSe planeias usar o exemplo do Logic Apps, regista também o
Microsoft.Logicfornecedor.az provider register --namespace Microsoft.Logic --waitSe planeia seguir o exemplo da CLI, instale a
eventgridextensão CLI do Azure.az extension add --name eventgridSe planeia seguir o exemplo da CLI com o Event Hub como destino, precisa de um namespace e hub existentes no Event Hub. Veja Criar um hub de eventos se precisar de criar um.
O modelo de eventos e tipos
A Grade de Eventos do Azure lê eventos de fontes, como o Azure Machine Learning e outros serviços do Azure. Envia estes eventos para gestores de eventos como Hubs de Eventos do Azure, Funções do Azure, Logic Apps e outros. O diagrama seguinte mostra como o Event Grid liga fontes e handlers, mas não é uma lista abrangente de integrações suportadas.
Para mais informações sobre fontes de eventos e gestores de eventos, consulte O que é a Grade de Eventos?.
Tipos de eventos do Azure Machine Learning
O Azure Machine Learning oferece eventos em vários pontos do ciclo de vida do machine learning:
| Tipo de evento | Descrição |
|---|---|
Microsoft.MachineLearningServices.RunCompleted |
Elevado quando uma experiência de aprendizagem automática termina |
Microsoft.MachineLearningServices.ModelRegistered |
Elevado quando um novo modelo ou versão do modelo é registado com sucesso |
Microsoft.MachineLearningServices.ModelDeployed |
É ativado quando um ou mais modelos são implementados com sucesso num endpoint |
Microsoft.MachineLearningServices.RunStatusChanged |
Acionado quando o estado de uma execução muda |
Filtrar e subscrever os eventos
O Azure Event Grid publica estes eventos. No portal do Azure, PowerShell ou CLI do Azure, você pode se inscrever facilmente em eventos especificando um ou mais tipos de eventos e condições de filtragem.
Ao configurar os seus eventos, aplique filtros para disparar apenas em dados específicos do evento. No exemplo seguinte, para eventos de alteração do estado da execução, pode filtrar por tipos de execução. O evento só é acionado quando os critérios são atendidos. Para obter mais informações sobre os dados de evento que você pode filtrar, consulte o esquema da Grade de Eventos do Azure Machine Learning.
O controlo de acesso baseado em funções do Azure (Azure RBAC) protege subscrições para eventos do Azure Machine Learning. Somente o colaborador ou proprietário de um espaço de trabalho pode criar, atualizar e excluir assinaturas de eventos. Pode aplicar filtros às subscrições do evento, seja durante a criação da subscrição ou numa data posterior.
Vá para o portal do Azure, selecione uma nova assinatura ou uma existente.
Selecione a entrada de Eventos no painel esquerdo e depois selecione + Subscrição de Evento.
Selecione o separador Filtros e desloque-se para baixo até Filtros Avançados. Para Key e Value, forneça os tipos de propriedade pelos quais você deseja filtrar. Aqui pode ver os acionadores de evento quando o tipo de execução é uma execução de pipeline ou uma execução de etapa de pipeline.
Filtrar por tipo de evento: uma assinatura de evento pode especificar um ou mais tipos de evento do Azure Machine Learning.
Filtrar por assunto do evento: O Azure Event Grid suporta filtros de assunto com base em correspondências do tipo começa com e termina com, de modo que os eventos com um assunto correspondente sejam entregues ao subscritor. Diferentes eventos de aprendizado de máquina têm diferentes formatos de assunto.
Tipo de evento Formato do assunto Assunto da amostra 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_38dbaa94Filtragem avançada: a Grade de Eventos do Azure também dá suporte à filtragem avançada com base no esquema de eventos publicado. Os detalhes do esquema de eventos do Azure Machine Learning podem ser encontrados no esquema de eventos da Grade de Eventos do Azure para o Azure Machine Learning. Para o evento
Microsoft.MachineLearningServices.ModelRegistered, filtrar o valor da etiqueta do modelo:--advanced-filter data.ModelTags.key1 StringIn value1Para saber mais sobre como aplicar filtros, consulte Filtrar eventos para Grade de Eventos.
Consumir eventos de aprendizagem automática
Os aplicativos que lidam com eventos de Machine Learning devem seguir algumas práticas recomendadas:
- Como várias subscrições podem encaminhar eventos para o mesmo gestor de eventos, não presuma que os eventos são de uma fonte específica. Verifique o tema da mensagem para garantir que vem do espaço de trabalho de aprendizagem automática que espera.
- Da mesma forma, verifica se o eventType é um que consegues processar. Não presuma que todos os eventos que recebe são do tipo que espera.
- Como as mensagens podem chegar fora de ordem e depois de algum atraso, use os campos etag para entender se suas informações sobre objetos ainda estão atualizadas. Além disso, use os campos sequenciadores para entender a ordem dos eventos em qualquer objeto específico.
- Ignore campos que você não entende. Esta prática ajuda a mantê-lo resiliente face a novas funcionalidades que possam ser adicionadas no futuro.
- Operações falhadas ou canceladas do Azure Machine Learning não desencadeiam nenhum evento. Por exemplo, se a implementação de um modelo falhar, Microsoft.MachineLearningServices.ModelDeployed não é acionado. Considere esse modo de falha ao projetar seus aplicativos. Pode sempre usar o Azure Machine Learning SDK, CLI ou portal para verificar o estado de uma operação e compreender as razões detalhadas da falha.
O Azure Event Grid permite construir manipuladores de mensagens desacoplados, que eventos do Azure Machine Learning podem desencadear. Alguns exemplos notáveis de manipuladores de mensagens incluem:
- Funções do Azure
- Azure Logic Apps
- Hubs de Eventos do Azure
- Azure Data Factory Pipeline (Pipeline do Azure Data Factory)
- Webhooks genéricos, que podes alojar na plataforma Azure ou noutro local
Configurar no portal do Azure
Abra o portal do Azure e vá para seu espaço de trabalho do Azure Machine Learning.
Na barra esquerda, selecione Eventos e, em seguida, selecione Subscrições de Eventos.
Selecione o tipo de evento para consumir.
Selecione o endpoint para publicar o evento. Na captura de ecrã seguinte, Event hub é o ponto de extremidade selecionado:
Quando confirmar a sua seleção, selecione Criar. Após a configuração, estes eventos são enviados para o seu endpoint.
Para confirmar que a subscrição foi criada, selecione Eventos>Eventos Subscrições no seu espaço de trabalho e verifique se a sua nova subscrição aparece na lista.
Configuração com a CLI
Pode instalar a mais recente CLI do Azure, ou usar o Azure Cloud Shell fornecido como parte da sua subscrição do Azure. Certifica-te de que instalas a eventgrid extensão, conforme descrito em Pré-requisitos.
O exemplo seguinte demonstra como selecionar uma subscrição do Azure e criar uma nova subscrição de evento para o 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"
Para confirmar que a subscrição foi criada com sucesso, execute:
az eventgrid event-subscription show \
--name {eventGridFilterName} \
--source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName}
Exemplos
Exemplo: Enviar alertas por e-mail
Utilize Azure Logic Apps para configurar e-mails para todos os seus eventos. Personalize com condições e especifique destinatários para permitir a colaboração e o reconhecimento entre as equipes que trabalham juntas.
No portal do Azure, vá para seu espaço de trabalho do Azure Machine Learning e selecione a guia de eventos na barra esquerda. A partir daqui, selecione Aplicativos lógicos.
Inicie sessão na interface da Logic App e selecione o serviço Machine Learning como tipo de tópico.
Selecione o evento para o qual quer ser notificado. Por exemplo, a captura de ecrã seguinte mostra RunCompleted.
Em seguida, adicione uma etapa para consumir esse evento e pesquise por e-mail. Há várias contas de email diferentes que você pode usar para receber eventos. Você também pode configurar condições sobre quando enviar um alerta por e-mail.
Selecione Enviar um e-mail e preencha os parâmetros. No assunto, inclua o Tipo de Evento e o Tópico para ajudar a filtrar os eventos. Você também pode incluir um link para a página do espaço de trabalho para execuções no corpo da mensagem.
Para salvar essa ação, selecione Salvar como no canto esquerdo da página.
Para verificar se o alerta funciona, acione um evento de qualificação – por exemplo, complete um treino – e confirme que o email chegou aos destinatários especificados.
Próximos passos
Para saber mais sobre o Event Grid e experimentar eventos do Azure Machine Learning, veja: