Atividade de função do Azure no Azure Data Factory

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!

Saiba como usar a atividade do Azure Functions para executar uma função do Azure em um pipeline do Azure Data Factory ou do Azure Synapse. Para executar uma função do Azure, você deve criar uma conexão de serviço vinculado. Em seguida, você pode usar o serviço vinculado com uma atividade que especifica a função do Azure que você pretende executar.

Criar uma atividade de função do Azure com a interface do usuário

Para usar uma atividade de função do Azure em um pipeline, conclua as etapas a seguir:

  1. Expanda a seção Função do Azure do painel Atividades do pipeline e arraste uma atividade de função do Azure para a tela do pipeline.

  2. Selecione a nova atividade de função do Azure na tela, se ainda não estiver selecionada, e a guia Configurações para editar os detalhes.

    Shows the UI for an Azure Function activity.

  3. Se você ainda não tiver definido um serviço vinculado da função do Azure, selecione Novo para criar um novo. No painel do serviço vinculado da função do Azure, escolha a URL de Aplicativo de função do Azure existente e forneça uma chave de função.

    Shows the new Azure Function linked service creation pane.

  4. Depois de selecionar o serviço vinculado de função do Azure, forneça o nome da função e outros detalhes para concluir a configuração.

Serviço de função vinculado do Azure

O tipo de retorno da função do Azure deve ser um JObject válido. (Lembre-se de que JArraynão é um JObject.) Qualquer tipo de retorno diferente de JObject falha e gera o erro do usuário O conteúdo da resposta não é um JObject válido.

A Chave de Função fornece acesso seguro ao nome da função com cada uma delas tendo chaves exclusivas ou chave mestra separadas em um aplicativo de funções. A identidade gerenciada fornece acesso seguro a todo o aplicativo de funções. O usuário precisa fornecer a chave para acessar o nome da função. Para saber mais, confira a documentação da função para obter mais detalhes sobre a Chave de acesso de função

Propriedade Descrição Necessário
Type A propriedade type deve ser definida como: AzureFunction Sim
URL do aplicativo de funções URL para o Aplicativo de Funções do Azure. O formato é https://<accountname>.azurewebsites.net. Essa URL é o valor na seção URL ao exibir o Aplicativo de funções no portal do Azure Sim
Chave de função Tecla de acesso para o Azure Function. Clique na seção Gerenciar seção para a função respectiva e copie-a na Tecla de Função ou na Tecla Host. Saiba mais aqui: Gatilhos e associações HTTP do Azure Functions Sim
Autenticação O método de autenticação usado para chamar o Azure Function. Os valores com suporte são 'Identidade gerenciada atribuída pelo sistema' ou 'anônimo'. Sim
ID de Recurso A ID do aplicativo (cliente) da Função do Azure. Alterne para a seção Autenticação da respectiva função e obtenha a ID do aplicativo (cliente) em Provedor de identidade. Essa propriedade será exibida ao usar a identidade gerenciada atribuída pelo sistema. Para obter mais informações, consulte Configurar seu Serviço de Aplicativo ou aplicativo do Azure Functions para usar o logon doMicrosoft Entra. Não

Observação

Ao usar a autenticação anônima, verifique se você desativou sua identidade no lado da Função do Azure.

Atividade do Azure Function

Propriedade Descrição Valores permitidos Necessário
Nome Nome da atividade no pipeline String Sim
Type O tipo de atividade é 'AzureFunctionActivity' String Sim
Serviço vinculado O serviço de função do Azure vinculado para o Aplicativo de funções correspondente do Azure Referência de serviço vinculado Sim
Nome da função Nome da função no Aplicativo de funções do Azure que essa atividade chama String Sim
Método Método da API REST para a chamada de função Tipos de cadeia de caracteres com suporte: "GET", "POST", "PUT" Sim
parâmetro Cabeçalhos que são enviados para a solicitação. Por exemplo, para definir o idioma e o tipo em uma solicitação: "cabeçalhos": { "Accept-Language": "en-us", "Content-Type": "application/json" } Cadeia de caracteres (ou expressão com um resultType de cadeia de caracteres) Não
Corpo Corpo que é enviado junto com a solicitação para o método de API de função Cadeia de caracteres (ou expressão com um resultType de cadeia de caracteres) ou objeto. Necessário para os métodos PUT/POST

Consulte o esquema da carga de solicitação na seção Esquema de carga de solicitação.

Roteamento e consultas

A atividade do Azure Function dá suporte a roteamento. Por exemplo, se a função do Azure tiver o ponto de extremidade https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, o functionName para usar na atividade de função do Azure é <functionName>/<value>. Você pode parametrizar essa função para fornecer as desejadas functionName no tempo de execução.

Observação

functionName for Durable Functions deve ser extraído da propriedade route da associação da função em sua definição JSON, para incluir suas informações de roteamento. Simplesmente usar functionName sem o detalhe de rota incluído resultará em uma falha, pois o aplicativo de funções não pode ser encontrado.

A atividade do Azure Function também dá suporte a consultas. Uma consulta deve ser incluída como parte de functionName. Por exemplo, quando o nome da função é HttpTriggerCSharp e a consulta que você deseja incluir é name=hello, você pode construir o functionName na atividade de função do Azure como HttpTriggerCSharp?name=hello. Essa função pode ser parametrizada para que o valor possa ser determinado no tempo de execução.

Funções de tempo limite e execução longa

O Azure Functions atinge o tempo limite após 230 segundos, independentemente da configuração functionTimeout que você tenha definido. Para obter mais informações, consulte este artigo. Para contornar esse comportamento, siga um padrão assíncrono ou use Durable Functions. A vantagem de Durable Functions é que elas oferecem seu próprio mecanismo de controle de estado, portanto, você não precisa implementar o seu.

Saiba mais sobre as Durable Functions neste artigo. Você pode configurar uma atividade de função do Azure para chamar a Durable Function, que retornará uma resposta com um URI diferente, como este exemplo. Como statusQueryGetUri o retorna o status HTTP 202 enquanto a função está em execução, você pode sondar o status da função usando uma Atividade da Web. Configure uma Atividade da Web com o campo url definido como @activity('<AzureFunctionActivityName>').output.statusQueryGetUri. Quando a Durable Function for concluída, a saída da função será a saída da Atividade da Web.

Amostra

Você pode encontrar um exemplo que usa uma função do Azure para extrair o conteúdo de um arquivo tar aqui.

Saiba mais sobre as atividades com suporte Pipelines e atividades.