Criar um gatilho de evento personalizado para executar um pipeline no Azure Data Factory
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
A arquitetura orientada a eventos é um padrão comum de integração de dados que envolve produção, deteção, consumo e reação a eventos. Os cenários de integração de dados geralmente exigem que os clientes do Azure Data Factory acionem pipelines quando determinados eventos ocorrem. A integração nativa do Data Factory com a Grade de Eventos do Azure agora abrange tópicos personalizados. Você envia eventos para um tópico da Grade de Eventos. O Data Factory assina o tópico, ouve e, em seguida, aciona pipelines de acordo.
A integração descrita neste artigo depende da Grade de Eventos do Azure. Certifique-se de que a sua subscrição está registada no fornecedor de recursos da Grelha de Eventos. Para obter mais informações, veja Resource providers and types (Tipos e fornecedores de recursos). Você deve ser capaz de fazer a Microsoft.EventGrid/eventSubscriptions/
ação. Esta ação faz parte da função interna EventGrid EventSubscription Contributor .
Importante
Se você estiver usando esse recurso no Azure Synapse Analytics, verifique se sua assinatura também está registrada em um provedor de recursos do Data Factory. Caso contrário, você receberá uma mensagem informando que "a criação de uma Assinatura de Evento falhou".
Se você combinar parâmetros de pipeline e um gatilho de evento personalizado, poderá analisar e fazer referência a cargas úteis personalizadas data
em execuções de pipeline. Como o data
campo em uma carga de evento personalizada é uma estrutura de chave-valor JSON de forma livre, você pode controlar execuções de pipeline controladas por eventos.
Importante
Se uma chave referenciada na parametrização estiver faltando na carga útil do evento personalizado, trigger run
falhará. Você recebe uma mensagem informando que a expressão não pode ser avaliada porque a keyName
propriedade não existe. Neste caso, não pipeline run
é acionado pelo evento.
Configurar um tópico personalizado na Grade de Eventos
Para usar o gatilho de evento personalizado no Data Factory, você precisa primeiro configurar um tópico personalizado na Grade de Eventos.
Vá para a Grade de Eventos e crie o tópico você mesmo. Para obter mais informações sobre como criar o tópico personalizado, consulte Tutoriais do portal de grade de eventos e tutoriais da CLI do Azure.
Nota
O fluxo de trabalho é diferente de um gatilho de evento de armazenamento. Aqui, o Data Factory não configura o tópico para você.
O Data Factory espera que os eventos sigam o esquema de eventos da Grade de Eventos. Certifique-se de que as cargas úteis do evento têm os seguintes campos:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Usar o Data Factory para criar um gatilho de evento personalizado
Aceda ao Data Factory e inicie sessão.
Alterne para a guia Editar . Procure o ícone de lápis.
Selecione Gatilho no menu e, em seguida, selecione Novo/Editar.
Na página Adicionar gatilhos, selecione Escolher gatilho e, em seguida, selecione + Novo.
Em Tipo, selecione Eventos personalizados.
Selecione seu tópico personalizado na lista suspensa de assinatura do Azure ou insira manualmente o escopo do tópico do evento.
Nota
Para criar ou modificar um gatilho de evento personalizado no Data Factory, você precisa usar uma conta do Azure com o controle de acesso baseado em função do Azure (RBAC do Azure) apropriado. Nenhuma outra permissão é necessária. A entidade de serviço do Data Factory não requer permissão especial para sua Grade de Eventos. Para obter mais informações sobre controle de acesso, consulte a seção Controle de acesso baseado em função.
As
Subject begins with
propriedades eSubject ends with
permitem filtrar eventos de gatilho. Ambas as propriedades são opcionais.Use + Novo para adicionar tipos de evento para filtrar. A lista de gatilhos de eventos personalizados usa uma relação OR. Quando um evento personalizado com uma
eventType
propriedade corresponde a uma na lista, uma execução de pipeline é acionada. O tipo de evento não diferencia maiúsculas de minúsculas. Por exemplo, na captura de tela a seguir, o gatilho corresponde a todos oucopysucceeded
eventoscopycompleted
que têm um assunto que começa com fábricas.Um gatilho de evento personalizado pode analisar e enviar uma carga personalizada
data
para seu pipeline. Você cria os parâmetros do pipeline e, em seguida, preenche os valores na página Parâmetros . Use o formato@triggerBody().event.data._keyName_
para analisar a carga útil de dados e passar valores para os parâmetros do pipeline.Para uma explicação pormenorizada, consultar:
- Metadados de gatilho de referência em pipelines
- Variáveis do sistema no gatilho de evento personalizado
Depois de inserir os parâmetros, selecione OK.
Filtragem avançada
Os gatilhos de eventos personalizados oferecem suporte a recursos avançados de filtragem, semelhantes à filtragem avançada da Grade de Eventos. Esses filtros condicionais permitem que os pipelines sejam acionados com base nos valores da carga útil do evento. Por exemplo, você pode ter um campo no evento payload chamado Department, e o pipeline só deve ser acionado se Department for igual a Finance. Você também pode especificar uma lógica complexa, como o campo de data na lista [1, 2, 3, 4, 5], o campo de mês que não está na lista [11, 12] e se o campo de tag contiver [Ano fiscal de 2021, Ano Fiscal2021 ou Ano Fiscal de 2021].
A partir de hoje, os gatilhos de eventos personalizados suportam um subconjunto de operadores de filtragem avançados na Grade de Eventos. As seguintes condições de filtro são suportadas:
NumberIn
NumberNotIn
NumberLessThan
NumberGreaterThan
NumberLessThanOrEquals
NumberGreaterThanOrEquals
BoolEquals
StringContains
StringBeginsWith
StringEndsWith
StringIn
StringNotIn
Selecione + Novo para adicionar novas condições de filtro.
Os gatilhos de eventos personalizados também obedecem às mesmas limitações da Grade de Eventos, como:
- 5 filtros avançados e 25 valores de filtro em todos os filtros por gatilho de evento personalizado.
- 512 caracteres por valor de cadeia de caracteres.
- 5 valores para
in
enot in
operadores. - As teclas não podem ter o
.
caractere (ponto) nelas, por exemplo,john.doe@contoso.com
. Atualmente, não há suporte para caracteres de escape nas chaves. - A mesma chave pode ser usada em mais de um filtro.
O Data Factory depende da versão mais recente de disponibilidade geral (GA) da API de Grade de Eventos. À medida que novas versões de API chegam ao estágio GA, o Data Factory expande seu suporte para operadores de filtragem mais avançados.
Esquema do JSON
A tabela a seguir fornece uma visão geral dos elementos de esquema relacionados a gatilhos de eventos personalizados.
Elemento JSON | Description | Type | Valores permitidos | Necessário |
---|---|---|---|---|
scope |
A ID de recurso do Azure Resource Manager do tópico Grade de Eventos. | String | Azure Resource Manager ID | Sim. |
events |
O tipo de eventos que fazem com que esse gatilho seja acionado. | Matriz de cadeias | Sim, espera-se pelo menos um valor. | |
subjectBeginsWith |
O subject campo deve começar com o padrão fornecido para o gatilho disparar. Por exemplo, as fábricas só disparam o gatilho para assuntos de eventos que começam com fábricas. |
String | N.º | |
subjectEndsWith |
O subject campo deve terminar com o padrão fornecido para o gatilho disparar. |
String | N.º | |
advancedFilters |
Lista de blobs JSON, cada um especificando uma condição de filtro. Cada blob especifica key , operatorType e values . |
Lista de blobs JSON | N.º |
Controlo de acesso baseado em funções
O Data Factory usa o RBAC do Azure para proibir o acesso não autorizado. Para funcionar corretamente, o Data Factory requer acesso a:
- Ouça os acontecimentos.
- Inscreva-se para receber atualizações de eventos.
- Acione pipelines vinculados a eventos personalizados.
Para criar ou atualizar com êxito um gatilho de evento personalizado, você precisa entrar no Data Factory com uma conta do Azure que tenha acesso apropriado. Caso contrário, a operação falhará com a mensagem "Acesso negado".
O Data Factory não requer permissão especial para sua instância de Grade de Eventos. Também não é necessário atribuir permissão de função RBAC especial do Azure à entidade de serviço do Data Factory para a operação.
Especificamente, você precisa de Microsoft.EventGrid/EventSubscriptions/Write
permissão em /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics
.
- Quando você cria no data factory (no ambiente de desenvolvimento, por exemplo), a conta do Azure conectada precisa ter a permissão anterior.
- Quando você publica por meio da integração contínua e da entrega contínua, a conta usada para publicar o modelo do Azure Resource Manager na fábrica de teste ou produção precisa ter a permissão anterior.
Conteúdos relacionados
- Obtenha informações detalhadas sobre a execução do gatilho.
- Saiba como fazer referência a metadados de gatilho em execuções de pipeline.