Partilhar via


Atividade do Azure Function 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 atividade do Azure Function permite executar o Azure Functions em um pipeline do Azure Data Factory ou 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ê planeja executar.

Criar uma atividade do Azure Function com a interface do usuário

Para usar uma atividade do Azure Function em um pipeline, conclua as seguintes etapas:

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

  2. Selecione a nova atividade Azure Function no canvas se ainda não estiver selecionada, e o separador Definições , para editar os detalhes.

    Captura de ecrã da interface de utilizador de uma atividade da Função Azure.

  3. Se ainda não tiver um serviço ligado a uma função Azure definido, selecione Novo para criar um novo. No novo painel de serviço vinculado do Azure Function, escolha a url existente do Aplicativo de Função do Azure e forneça uma Chave de Função.

    Captura de ecrã do novo painel de criação de serviços ligados a funções do Azure.

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

Serviço vinculado do Azure Function

O tipo de retorno da função do Azure deve ser um JObject válido. (Lembra-te que o JArraynão é um JObject.) Qualquer tipo de retorno diferente de JObject falha e gera o erro do utilizador: Conteúdo de Resposta não é um JObject válido.

A tecla de função fornece acesso seguro ao nome da função, cada uma tem chaves únicas separadas ou uma chave mestra dentro de uma aplicação de funções. A identidade gerenciada fornece acesso seguro a todo o aplicativo de função. O usuário precisa fornecer a chave para acessar o nome da função. Para obter mais informações, consulte a documentação da função para obter mais detalhes sobre a tecla de acesso da função

Propriedade Descrição Obrigatório
Tipo A propriedade type deve ser definida como: AzureFunction Sim
URL do aplicativo de função URL para o aplicativo Azure Function. O formato é https://<accountname>.azurewebsites.net. Esta URL é o valor na seção URL ao visualizar a sua Aplicação de Funções no portal do Azure Sim
Tecla de função Chave de acesso para a Função do Azure. Selecione a secção Gerenciar para a função respetiva e copie ou a Tecla de Função ou a Tecla Anfitrião. Saiba mais aqui: Trabalhar com chaves de acesso Sim
Autenticação O método de autenticação usado para chamar a Função do Azure. Os valores suportados são Identidade gerida atribuída pelo Sistema ou 'anónimo'. Sim
ID do Recurso O ID da aplicação (cliente) da Função do Azure. Mude para a secção de Autenticação para a respetiva função e obtenha o ID da Aplicação (cliente) sob Provedor de identidade. Esta propriedade é exibida quando utiliza a identidade gerida atribuída pelo sistema. Para obter mais informações, consulte Configurar o Serviço de Aplicativo ou o aplicativo Azure Functions para usar o logon do Microsoft Entra. Não*

/* A resourceId propriedade é necessária quando utiliza autenticação de identidade gerida atribuída pelo sistema.

Autenticação de identidade gerenciada atribuída pelo sistema

Pode utilizar a autenticação SAMI (Identidade Gerida Atribuída pelo Sistema) de duas maneiras:

  • Defina o ID do recurso para https://management.azure.com. A Data Factory liga-se à Function App usando a sua identidade gerida atribuída pelo sistema e executa a function app com autenticação anónima.

  • Para ambientes seguros onde não pretende usar autenticação anónima, configure um Nome Principal do Serviço (SPN) como ID de Recursos. O SPN deve ser configurado corretamente na Function App:

    1. Crie um novo registo de aplicação como identidade de entidade de serviço.

    2. Na tua aplicação de funções, vai à secção de Autenticação em Definições e cria um fornecedor de Identidade.

    3. Adicione o ID da aplicação do principal de serviço na aplicação cliente Permitida, e o ID do objeto do principal de serviço nas aplicações de objeto Permitidas. Se os pedidos forem permitidos apenas de inquilinos específicos, adicione o ID do inquilino da identidade gerida na última caixa.

      Captura de ecrã do registo da aplicação, mostrando quais as caixas a preencher com o ID da aplicação e o ID do objeto.

Atividade do Azure Function

Propriedade Descrição Valores permitidos Obrigatório
Nome Nome da atividade no fluxo de trabalho Cadeia (de carateres) Sim
Tipo O tipo de atividade é "AzureFunctionActivity" Cadeia (de carateres) Sim
Serviço associado O serviço vinculado do Azure Function para o Aplicativo de Função do Azure correspondente Referência de serviço vinculado Sim
Nome da função Nome da função no Aplicativo de Função do Azure que essa atividade chama Cadeia (de carateres) Sim
Método Método de API REST para a chamada de função String Tipos suportados: "GET", "POST", "PUT" Sim
Cabeçalho Cabeçalhos que são enviados para a solicitação. Por exemplo, para definir o idioma e digitar em uma solicitação: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } String (ou expressão cujo tipo de resultado é string) Não
Corpo Corpo que é enviado juntamente com o pedido para o método API da função String (ou expressão com tipo de resultado de string) ou objeto. Necessário para os métodos PUT/POST

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

Roteamento e consultas

A Atividade de Função do Azure dá suporte ao encaminhamento. Por exemplo, se a sua Função do Azure tiver o ponto de extremidade https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret>, então o functionName a ser usado na Atividade da Função do Azure será <functionName>/<value>. Você pode parametrizar esta função para fornecer o functionName desejado em tempo de execução.

Nota

O functionName para Durable Functions deve ser retirado da propriedade route da vinculação da função em sua definição JSON, para incluir suas informações de roteamento. Simplesmente usar o functionName sem o detalhe da rota incluído resulta numa falha porque a "Function App" não pode ser encontrada.

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

Funções de tempo de espera e de execução prolongada

O Azure Functions expira após 230 segundos, functionTimeout independentemente da configuração que você definiu nas configurações. Para mais informações, consulte este artigo. Para contornar esse comportamento, siga um padrão assíncrono ou use funções duráveis. O benefício das Funções Duráveis é que elas oferecem o seu próprio mecanismo de rastreamento de estado, de modo que o utilizador não precise implementar o seu próprio rastreamento de estado.

Saiba mais sobre funções duráveis neste artigo. Você pode configurar uma Atividade de Função do Azure para chamar a Função Durável, que retornará uma resposta com um URI diferente, como este exemplo. Como statusQueryGetUri 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 url campo definido como @activity('<AzureFunctionActivityName>').output.statusQueryGetUri. Quando a Função Durável termina, a saída da função é a saída da Atividade Web.

Exemplo

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 apoiadas em Pipelines e atividades.