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

  1. Aceda ao Data Factory e inicie sessão.

  2. Alterne para a guia Editar . Procure o ícone de lápis.

  3. Selecione Gatilho no menu e, em seguida, selecione Novo/Editar.

  4. Na página Adicionar gatilhos, selecione Escolher gatilho e, em seguida, selecione + Novo.

  5. Em Tipo, selecione Eventos personalizados.

    Captura de tela que mostra a criação de um novo gatilho de evento personalizado na interface do usuário do Data Factory.

  6. 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.

  7. As Subject begins with propriedades e Subject ends with permitem filtrar eventos de gatilho. Ambas as propriedades são opcionais.

  8. 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 ou copysucceeded eventos copycompleted que têm um assunto que começa com fábricas.

    Captura de tela que mostra a página Editar gatilho para explicar os tipos de evento e a filtragem de assunto na interface do usuário do Data Factory.

  9. 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:

    Captura de tela que mostra as configurações dos parâmetros do pipeline.

    Captura de tela que mostra a página de parâmetros para fazer referência à carga útil de dados em um evento personalizado.

  10. 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].

Captura de tela que mostra a configuração de filtros avançados para um gatilho de evento do cliente.

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 e not 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, operatorTypee 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.
  • Obtenha informações detalhadas sobre a execução do gatilho.
  • Saiba como fazer referência a metadados de gatilho em execuções de pipeline.