Ola pessoALL,

Quando trabalhamos com Azure Functions, especialmente em funções do tipo TimeTrigger, executadas em horários específicos, frequentemente precisamos invocar a função para testes, mas não queremos aguardar o tempo de execução. Imagine uma função executada apenas uma vez ao mês, não vamos aguardar até o próximo mês para ver a execução correta.

A forma mais comum de executar a função é utilizando o atributo RunOnStartup para executar a função quando rodamos o projeto.
Inclusive eu fiz um post sobre como executar funções especificas no projeto:

Azure Functions: Iniciando apenas uma função
Uma dúvida muito comum para quem trabalha com Azure Functions é como iniciar apenas funções especificas.
Função executada ao iniciar o projeto

O atributo resolve parcialmente o nosso problema com o potencial de gerar outro maior, ao esquecermos de remover o atributo a todo novo deploy a função vai ser executada, o que pode ocasionar comportamentos indesejados do nosso projeto.

Mas mesmo com todo o cuidado de não subirmos o código para produção com o atributo como true ainda temos os casos que precisamos disparar a função para testes e não queremos fazer outro deploy apenas para isso.

Invocando funções de forma manual

Toda função publicada tem um endereço HTTP para ser invocada, isso funciona para qualquer tipo de função e esta bem documentado na própria documentação do Azure Functions.

Manually run a non HTTP-triggered Azure Functions
Use an HTTP request to run a non-HTTP triggered Azure Functions

Para executarmos nossa função temos que obedecer o seguinte padrão de url:

  • Host Name: O nome da sua função e o sufixo azurewebsites.net
  • Folder path: Como nossa função não é HTTP o caminho sempre será /admin/functions
  • Function name: O nome da função para ser executada.

O próximo passo é copiar a chave master do portal e enviar no cabeçalho da requisição com o nome x-functions-key.

Como meu exemplo é de uma função TimeTrigger para invocá-la devemos enviar uma requisição POST do tipo JSON com o corpo vazio. A função só é executada se o retorno da chamada for 202

Invocando a função pelo POSTMAN
Conferindo o resultado.

Dessa forma podemos invocar qualquer função que precisarmos de forma simples.
Espero que tenham curtido essa dica!
[]s e até a próxima.

💡
Podemos te ajudar com uma revisão 100% gratuita do seu ambiente cloud.
Share this post