Azure Function no Power Apps: passo a passo para uma integração personalizada

Por Fernando Viana e Sá
Azure Function no Power Apps: passo a passo para uma integração personalizada

Em muitos projetos com Power Apps, chega um momento em que o conector pronto não resolve tudo. Às vezes você precisa validar um dado, consultar uma API externa ou simplesmente devolver uma resposta mais simples para o app.

Uma forma prática de resolver isso é usando Azure Function.

Neste exemplo, vamos mostrar um caso básico: o usuário informa um código no Power Apps, a Azure Function recebe esse valor e devolve uma resposta simples com status e mensagem.

A ideia aqui não é criar uma arquitetura complexa, mas sim mostrar o conceito funcionando de forma clara.

O cenário do exemplo

Vamos imaginar um aplicativo em Power Apps com um campo onde o usuário digita um código de cliente.

Ao clicar em um botão, o app chama uma Azure Function. Essa função verifica se o código foi informado e devolve uma resposta como:

  • código válido;
  • mensagem de sucesso;
  • nome fictício do cliente.

Esse é um exemplo simples, mas suficiente para demonstrar como o Power Apps pode consumir uma lógica externa.

Estrutura da solução

O fluxo será este:

Power Apps → Azure Function → resposta em JSON → Power Apps

Passo 1: criar a Azure Function

No portal do Azure, crie uma Function App e depois uma função do tipo HTTP Trigger.

Para este exemplo, a função pode receber um parâmetro chamado code e retornar uma resposta simples.

Exemplo em C#:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using System.Text.Json;

namespace PowerAppsDemo;

public class ValidateCustomerCode
{
    private readonly ILogger<ValidateCustomerCode> _logger;

    public ValidateCustomerCode(ILogger<ValidateCustomerCode> logger)
    {
        _logger = logger;
    }

    [Function("ValidateCustomerCode")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req)
    {
        _logger.LogInformation("ValidateCustomerCode function processed a request.");

        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        var data = JsonSerializer.Deserialize<CustomerRequest>(requestBody);

        if (string.IsNullOrWhiteSpace(data?.code))
        {
            return new BadRequestObjectResult(new
            {
                isValid = false,
                message = "Código não informado"
            });
        }

        return new OkObjectResult(new
        {
            isValid = true,
            customerName = "Cliente Exemplo",
            message = "Código validado com sucesso"
        });
    }
}

public class CustomerRequest
{
    public string? code { get; set; }
}

O que essa função faz?

Ela recebe um JSON com o campo code.
Se o valor não for enviado, retorna erro.
Se o valor existir, devolve uma resposta simples de sucesso.

Tela de visão geral de um Azure Function App chamado powerapps-customercheck no portal do Azure, mostrando status em execução, região Brazil South, plano Flex Consumption, memória de 2048 MB e domínio padrão do aplicativo.
Editor do Visual Studio Code exibindo o arquivo ValidateCustomerCode.cs de uma Azure Function em C#, com uma função HTTP POST chamada ValidateCustomerCode que valida um código de cliente e retorna resposta JSON.

Passo 2: testar a Function

Depois de publicar a função, copie a URL gerada pelo Azure e faça um teste.

Você pode testar com Postman ou pela própria área de teste do Azure.

Exemplo de body:

{
  "code": "CLI-1001"
}

Resposta esperada:

{
  "isValid": true,
  "customerName": "Cliente Exemplo",
  "message": "Código validado com sucesso"
}

Esse é um ótimo ponto para print no artigo:

  • tela da Function no Azure;
  • teste da requisição;
  • retorno JSON.
Tela do Postman realizando uma requisição POST para http://localhost:7071/api/ValidateCustomerCode
com corpo JSON contendo o código CLI-1001, retornando resposta 200 OK com validação bem-sucedida e nome do cliente.
Portal do Azure na aba Functions do Function App powerapps-customercheck, listando a função ValidateCustomerCode com gatilho HTTP, status habilitado e link de monitoramento.

Passo 3: criar o Custom Connector

No Power Apps, acesse Custom Connectors e crie um novo conector.

Você pode configurar manualmente ou importar uma definição OpenAPI, mas para um exemplo básico, o caminho manual já resolve bem.

Preencha:

Informações básicas

  • Nome do conector
  • Host da Azure Function
  • Base URL

Segurança

Se estiver usando a Function Key, configure a autenticação conforme a necessidade do ambiente.

Definição

Crie uma ação do tipo POST apontando para a sua Function.

Por exemplo:

  • Summary: Validar código do cliente
  • Operation ID: ValidateCustomerCode

Request

Adicione um body com o campo:

  • code → tipo string

Response

Mapeie os campos retornados:

  • isValid
  • customerName
  • message

Esse momento também rende bons prints:

  • tela inicial do Custom Connector;
  • configuração da action;
  • definição do request;
  • exemplo da response.
Tela de configuração geral de um Custom Connector no Power Platform, com descrição para validar código do cliente via Azure Function, esquema HTTPS, host configurado e base URL /api.
Tela de configuração de segurança de um Custom Connector no Power Platform, usando autenticação do tipo API Key, com parâmetro de rótulo api_key, nome do parâmetro code e localização na query string.
Tela de definição e teste de um Custom Connector chamado CustomerValidationConnector, exibindo a especificação Swagger/OpenAPI à esquerda e, à direita, a ação POST /ValidateCustomerCode para validar código do cliente.

Passo 4: usar o conector no Power Apps

Com o conector publicado, abra seu aplicativo no Power Apps e adicione:

  • um Text Input para o código;
  • um Botão para validar;
  • uma Label para mostrar a resposta.

Supondo:

  • campo de texto: txtCustomerCode
  • conector: CustomerValidationConnector

No botão, use algo assim:

Set(
    varValidation,
    CustomerValidationConnector.ValidateCustomerCode(
        {
            code: txtCustomerCode.Text
        }
    )
)

Depois, em uma label, você pode exibir:

varValidation.message

E em outra:

varValidation.customerName

Se quiser, pode até mudar a cor de um ícone com base no retorno:

If(varValidation.isValid, Color.Green, Color.Red)

Aqui você já consegue vários prints interessantes:

  • tela do app com campo e botão;
  • fórmula do botão;
  • resultado sendo exibido na label.
Tela do Power Apps mostrando a chamada ao conector personalizado CustomerValConn.ValidateCustomerCode e a interface do app com campo de código do cliente preenchido com CLI-1001, botão Validar e mensagem de sucesso com o nome Cliente Exemplo.

Conclusão

Usar Azure Function no Power Apps é uma forma simples e eficiente de criar integrações personalizadas. Mesmo em um cenário básico, já fica claro como essa abordagem ajuda a deixar o app mais limpo e a lógica mais organizada.

Para quem quer mostrar um exemplo prático em artigo, apresentação ou demonstração, esse fluxo é ideal: fácil de montar, fácil de entender e visualmente bom para capturas de tela.

A Trinapse ajuda sua empresa a criar integrações sob medida no Power Apps com Azure Function, unindo simplicidade, escalabilidade e valor de negócio.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast