Enviar um email com um pipeline do Azure Data Factory ou do Azure Synapse
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Geralmente, é necessário enviar notificações durante ou após a execução de um pipeline. A notificação fornece alertas proativos e reduz a necessidade de monitoramento reativo para descobrir problemas. Este artigo mostra como configurar notificações por email por meio de um pipeline do Azure Data Factory ou do Azure Synapse.
Pré-requisitos
- Assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Fluxo de trabalho do aplicativo lógico padrão. Para disparar o envio de um email desde o pipeline, use os Aplicativos Lógicos do Azure para definir o fluxo de trabalho. Para obter detalhes sobre como criar um fluxo de trabalho de aplicativo lógico Padrão, consulte Criar um exemplo de fluxo de trabalho de aplicativo lógico Padrão.
Criar o fluxo de trabalho de email no seu aplicativo lógico
Criar um recurso de aplicativo lógico Padrão chamado SendEmailFromPipeline
. Adicione o Gatilho de solicitação chamado When an HTTP request is received
e adicione ação do Office 365 Outlook chamada Send an email (V2)
.
Forneça este JSON para a propriedade Request Body JSON Schema
:
{
"properties": {
"dataFactoryName": {
"type": "string"
},
"message": {
"type": "string"
},
"pipelineName": {
"type": "string"
},
"receiver": {
"type": "string"
}
},
"type": "object"
}
O Gatilho de solicitação no designer de fluxo de trabalho deve ter esta aparência:
Para a ação Enviar um email (V2), personalize o modo como deseja formatar o email usando as propriedades do esquema JSON do corpo da solicitação:
Salve o fluxo de trabalho. Navegue até a página Visão geral do fluxo de trabalho. Anote a URL do fluxo de trabalho realçado na imagem abaixo:
Observação
Para localizar a URL do fluxo de trabalho, acesse o próprio fluxo de trabalho, não apenas o aplicativo lógico que o contém. Na página Fluxos de trabalho da instância do aplicativo lógico, escolha o fluxo de trabalho e acesse a página de visão geral dele.
Criar um pipeline para disparar o fluxo de trabalho do aplicativo lógico
Depois de criar o fluxo de trabalho do aplicativo lógico para enviar um email, você poderá dispará-lo por meio de um pipeline usando uma atividade da Web.
Crie um pipeline e localize a atividade da Web na categoria Geral para arrastá-la para a tela de edição.
Selecione a nova atividade Web1 e escolha a guia Configurações.
Forneça a URL do fluxo de trabalho do aplicativo lógico criado anteriormente no campo URL.
Forneça o seguinte JSON para o Corpo:
{ "message" : "This is a custom dynamic message from your pipeline with run ID @{pipeline().RunId}.", "dataFactoryName" : "@{pipeline().DataFactory}", "pipelineName" : "@{pipeline().Pipeline}", "receiver" : "@{pipeline().parameters.receiver}" }
Use expressões dinâmicas para gerar mensagens úteis para eventos nos pipelines. Observe que o formato JSON aqui corresponde ao formato JSON que você definiu no aplicativo lógico, e você poderá personalizá-los conforme necessário.
Selecione a área da tela de fundo do designer de pipeline para selecionar a página de propriedades do pipeline e adicione um novo parâmetro chamado receiver, fornecendo um endereço de email como o Valor padrão.
Neste exemplo, fornecemos o email do destinatário de um parâmetro de pipeline que definimos arbitrariamente. O valor de receiver pode ser obtido de qualquer expressão ou, até mesmo, de fontes de dados vinculadas.
Publique seu pipeline e dispare-o manualmente para confirmar se o email foi enviado conforme o esperado.
Adicionar mensagens dinâmicas com variáveis e expressões do sistema
Você pode usar as variáveis e as expressões do sistema para tornar suas mensagens dinâmicas. Por exemplo:
@activity("CopyData").output.errors[0].Message
@activity("DataFlow").error.Message
As expressões acima retornarão as mensagens de erro relevantes de uma falha da atividade Copy, que poderá ser redirecionada para a atividade da Web que envia o email. Veja o artigo Propriedades de saída da atividade Copy para obter mais detalhes.