Azure Functions: dicas e truques no Desenvolvimento Serverless - Parte 1
Neste novo artigo inicio uma série com diversas dicas e truques envolvendo o desenvolvimento de aplicações serverless baseadas em Azure Functions. Sempre que possível darei andamento a esta iniciativa, com novos conteúdos e orientações úteis.
E como Azure Functions é o assunto deste post, deixo aqui um link com todos os conteúdos gratuitos (artigos, vídeos, projetos de exemplo) que venho criando sobre esta tecnologia:
Serverless + Azure Functions: Guia de Referência
Aproveito este espaço também para um convite.
Que tal aprender mais sobre Serverless e Azure Functions em um treinamento inteiramente prático e com um preço super camarada já que estamos em Black F̵r̵i̵d̵a̵y̵ Week? Acesse o link a seguir para obter um desconto de 25% na primeira edição do Azure na Prática em 2020, no dia 18/01 (sábado) em São Paulo-SP: http://bit.ly/black-week-blog-groffe
Corra, porque este preço promocional é por um tempo bem limitado!
Azure Functions Core Tools
Independente do sistema operacional, ferramenta de implementação ou linguagem escolhidos, a configuração de um ambiente local de desenvolvimento baseado em Azure Functions dependerá da instalação de um conjunto de ferramentas conhecido como Azure Function Core Tools. Maiores informações podem ser encontradas no link a seguir:
Work with Azure Functions Core Tools
O próprio Visual Studio Code emitirá alertas para a atualização deste complemento sempre que uma nova versão estiver disponível:
Ferramentas de Desenvolvimento
Atualmente temos como ferramentas para desenvolvimento de soluções com Azure Functions o próprio Portal do Azure (alternativa mais limitada), IDEs como Visual Studio (atualmente na versão 2019) e Visual Studio for Mac, além do Visual Studio Code. Exceto pelo Portal do Azure, todas essas alternativas dependem da instalação das Azure Functions Core Tools. É justamente este complemento que fornecerá todo o suporte para a implementação de Function Apps (projetos contendo uma ou mais Azure Functions), incluindo a execução local de aplicações deste tipo.
No caso específico do Visual Studio Code, será necessária também a instalação de uma extensão que viabilizará o desenvolvimento de soluções baseadas em Azure Fuctions:
Na imagem a seguir temos um exemplo envolvendo o debugging de uma Function App no Visual Studio Code em Windows:
Para saber mais sobre o desenvolvimento serverless com Azure Functions e o Visual Studio Code acesse os seguintes links:
.NET Core + Serverless: implementando jobs com Azure Functions e o VS Code
.NET Core + Serverless: publicando uma Azure Function via VS Code
Já na próxima imagem podemos observar a execução e debugging de uma Function App a partir do Visual Studio 2019:
Suporte a múltiplas linguagens
No momento da publicação deste artigo (Dezembro/2019) temos como opções para a implementação de Azure Functions as seguintes linguagens/plataformas:
- C# / .NET Core
- JavaScript / Node.js
- TypeScript
- PowerShell
- Python
- Java
Trata-se de uma ampla gama de alternativas para a criação de soluções serverless no Microsoft Azure, além de permitir até mesmo que SysAdmins habituados ao uso de PowerShell possam se beneficiar das vantagens oferecidas pelas Azure Functions.
Desenvolvendo soluções serverless em Windows, Linux e Mac
Conforme demonstrado em prints nas seções anteriores, conseguimos facilmente trabalhar na implementação de Azure Functions em ambientes como Windows e Linux. O desenvolvimento a partir de máquinas com macOs também é uma possibilidade, com isto acontecendo através do Visual Studio for Mac ou do Visual Studio Code.
Na próxima imagem é possível observar o debugging de uma Azure Function no Visual Studio Code, com isto acontecendo em uma máquina com o Ubuntu Desktop 18.04 instalado:
No vídeo a seguir do canal Coding Night temos um exemplo de desenvolvimento com Azure Functions no macOS, utilizando para isto o Visual Studio for Mac:
Iniciando a execução de uma Function App via linha de comando
Uma vez instaladas, as Azure Function Core Tools permitirão que executemos Function Apps via linha de comando (Bash ou PowerShell). Isso é possível através da instrução:
func start
Podemos assim efetuar testes sem a necessidade de abrir uma aplicação numa IDE ou no VS Code. É o que demonstram as próximas imagens, com a inicialização de um projeto de testes a partir do PowerShell no Windows 10 Professional:
A seguir temos um exemplo similar em Linux (Ubuntu Desktop 18.04), com a execução via Terminal de uma Function App: