Header Ads

Como usar funções do Azure sem servidor

Nos últimos anos, serverless tornou-se uma das tecnologias mais comentadas. Embora não sejam verdadeiramente sem servidor, as opções sem servidor abstraem o gerenciamento do usuário para um serviço gerenciado e hospedado.

Uma das habilidades mais interessantes é escrever código para, em seguida, executar em instâncias sem servidor. O Azure Functions oferece vários tempos de execução, linguagens e até mesmo suporte a contêiner do Docker. Você simplesmente escolhe a linguagem que deseja escrever, implanta o código e consome os resultados.

Provisionamento do aplicativo Azure Function

Primeiro, navegue até “ Aplicativo de funções ” dentro do Portal do Azure. Uma vez lá, clique em “ Criar aplicativo de função ” botão.

Insira os valores que fazem mais sentido para o seu ambiente e necessidades. Neste exemplo, vamos usar o tempo de execução do PowerShell Core 7.0.

  • Nome do aplicativo de função: lc-test-function
  • Publicar: código
  • Pilha de tempo de execução: PowerShell Core
  • Versão: 7.0
  • Região: Leste dos EUA

Na guia Hospedagem, vamos criar uma nova conta de armazenamento para manter os dados de saída da função. Como este é o PowerShell, o tempo de execução oferece suporte apenas ao Windows, apesar do PowerShell 7 ser multiplataforma. Finalmente, estamos usando o plano de Consumo para esta Função do Azure.

Para o monitoramento, vamos criar uma nova configuração do Application Insights e habilitar a opção de monitoramento.

Vamos pular a marcação neste artigo e passar para Revisão e amp; Crio. Uma vez aqui, verifique se tudo parece correto e clique em “ Criar. ”

Criação do código de função do Azure

Neste artigo, vamos demonstrar como isso funciona com uma função de gatilho HTTP. Navegue até a função do aplicativo e clique no botão “ Funções ” painel. Uma vez lá, clique em “ Adicionar ” e escolha o modelo de gatilho HTTP.

Manteremos os valores padrão para o nome da função e o nível de autorização. Os diferentes níveis de autorização correspondem ao seguinte:

  • Função: usa uma tecla de função específica
  • Admin: usa a chave mestra para o ambiente
  • Anônimo: não precisa de autorização, limita os recursos

Código de função de modificação

Clique na função recém-criada HttpTrigger1 e clique no botão “ Código + Teste ” seção. Aqui você encontrará um editor de código embutido que permitirá que você teste e execute seu código de função. Os valores abaixo são as configurações padrão.

Então, o que você pode fazer com os aplicativos de funções? Há muitos usos e, para demonstrar um deles, vamos passar uma identificação de local específica de uma chamada PowerShell de invocação, que por sua vez chamará a Função do Azure para ser executada em uma API REST para obter dados de clima. As modificações que estamos fazendo na configuração padrão são:

  • Modifique $ name para $ location
  • Crie uma chamada Invoke-RestMethod para a API metaweather. com
  • Formate os resultados a serem enviados como uma string no corpo

 usando o namespace System. Net # As ligações de entrada são passadas por meio do bloco de parâmetros. param ($ Request, $ TriggerMetadata) # Grava no fluxo de log do Azure Functions. Write-Host "A função de gatilho HTTP do PowerShell processou uma solicitação." # Interage com os parâmetros de consulta ou o corpo da solicitação. $ location = $ Request. Query. Location if (-not $ location) {$ location = $ Request. Body. Location} $ body = "Esta função acionada por HTTP foi executada com sucesso. Passe um nome na string de consulta ou no corpo da solicitação para uma resposta personalizada. " if ($ location) {$ Params = @ {"URI" = "< https: //www. metaweather. com/api/location/$location/>" "Method" = 'GET'} $ Result = Invoke-RestMethod @Params $ Body = $ Result. consolidated_weather | Select-Object Applicable_date, weather_state_name, the_temp, umidade} # Associe os valores às ligações de saída chamando 'Push-OutputBinding'. Push-OutputBinding -Name Response -Value ([HttpResponseContext] @ {StatusCode = [HttpStatusCode] :: OK Body = ($ Body | Out-String)}) 

Clique em “ Salvar ” para fazer as alterações. Vamos testar / executar este código para verificar se funciona conforme o esperado. Depois de clicar em “ Testar / Executar, ” seremos apresentados a uma janela que nos permite modificar a entrada para corresponder ao que o código espera.

 {"localização": "2379574"} 

Depois de executar o código, você pode ver a saída correta na guia Saída sob o conteúdo da resposta HTTP.

Acionando a função via PowerShell externo

Primeiro, clique em “ Obter função ” Botão de URL, que apresentará um URL que você pode usar para chamar o aplicativo Function.

Em uma sessão do PowerShell, use a função Invoke-RestMethod para chamar o gatilho HTTP e passar a variável de localização que o script está esperando. Como você pode ver na saída, os dados meteorológicos são retornados conforme o esperado.

 $ Params = @ {"URI" = '< https: //lc-test-function. azurewebsites. net/api/HttpTrigger1? code = Gvm5JRCrd0pPRyqhq2uA83PLg1zFocDI52aBLuCe9APXuPWlpPGHp;' "Method" = 'POST' "ContentType" = 'application / json' "Body" = (@ {"location" = "2379574"} | ConvertTo-JSON)} Invoke-RestMethod @Params = 

Conclusão

Azure Functions é uma ferramenta poderosa para criar funções sem servidor em vários idiomas. Ao liberar um desenvolvedor para não ter que se concentrar no ambiente e em todas as dependências, ele pode iterar rapidamente no código e no design para criar uma funcionalidade única!

Nenhum comentário