Neste artigo veremos de forma prática como criar uma function do Azure Function App a partir do VS Code.

Além do VS Code e do interpretador/compilador da linguagem de programação que será utilizada na function instalados no computador, também precisaremos da extrensão Azure para VS Code e da ferramenta Azure Functions Core Tools.
Instalação da extensão do Azure para o VS Code.
No VS Code devemos acessar a aba de Extensões

E na barra de pesquisa devemos digitar: Azure
Nos resultados que aparecerem, basta instalar a extensão “Azure Tools”.
Esta extensão instalará automaticamente outras extensões que fazem parte do “pacote” Azure

Instalação do Azure Functions Core Tools
Acesse o site https://github.com/Azure/azure-functions-core-tools e escolha a opção de instalação que melhor se adeque ao seu caso. No caso do Windows o site provê links para baixar instaladores, o que torna o processo bem simples.
Pronto, agora nosso ambiente está preparado para a criação de functions do Azure Function App.
Vamos seguir alguns passos:
Selecione um local de preferência no computador e crie uma pasta em que será salva a function que iremos criar. Neste caso, a pasta foi criada com o nome "Sample_Function"
Através do VS Code acesse a pasta que você criou.
Em seguida clique no ícone da extensão do Azure

E depois clique na aba "Workspace"
Clique em "Create Function"

Será exibida uma lista com linguagens que você pode escolher para executar seu projeto

Neste caso escolhemos python
O VS Code solicitará que você informe qual interpretador/linguagem será utilizado no projeto

No próximo passo, devemos escolher qual o tipo de gatilho(trigger) deverá acionar nossa function. Há muitas opções de triggers, para se adequarem a diversas finalidades, como na imagem a seguir

Neste caso escolhemos o Timer Trigger. Assim a nossa function pode ser acionada quando determinadas condições temporais forem satisfeitas
Depois devemos atribuir um nome para a function. A do exemplo foi chamada de "function_test"

Obs.: Embora o sistema permita, sugiro que não seja usado hífen no nome da function, pois isso afeta pode afetar algumas funcionalidades da function no Portal Azure
Como estamos criando uma Timer Trigger, o VS Code já solicita que informemos a periodicidade em que a function será executada. Se ainda não tiver certeza sobre a periodicidade necessária, pode apenas avançar esta etapa e configurar isso depois.

O VS Code criará a function, que aparecerá em "Workspace"

Pronto, agora a base da nossa function já está criada, juntamente com arquivos de configuração e um ambiente virtual

Neste caso arquivo “__init__.py” é onde deverá ser escrito o código principal do programa. Também é possível que sejam criados arquivos (módulos) complementares normalmente, como em qualquer projeto de python convencional.
Em “function.json” podemos definir qual o período de execução da nossa function(ou alterar o que tenha sido informado no ato da criação da function).
No exemplo, a function será executada no segundo zero, a cada 5 minutos, de segunda-feira a quinta-feira.

Para saber mais sobre configurações do gatilho temporizador, acesse o link
Acesse o terminal através do menu View > Terminal ou diretamente pelo comando Ctrl + ‘ (apóstrofo) e verifique se está operando no ambiente virtual

Se não estiver, execute um comando de ativação do ambiente virtual, como:
.venv/Scripts/Activate
Certo, agora precisamos executar um comando para garantir que todos os módulos(libs) utilizados no projeto estejam instalados no nosso ambiente virtual.
No terminal você pode comandar a instalação dos módulos individualmente, com o comando:
python -m pip install <nome_do_módulo>
Para saber mais sobre comandos no ambiente virtual em Python, acesse o link abaixo
Deploy
Com o código pronto, gatilho configurado e libs instaladas devemos fazer o deploy da function para o Azure Function App. Um opção é fazê-lo diretamente do VS Code, através da extensão que instalamos no início destas instruções
Acesse a extensão do Azure e faça login no ambiente Azure em que está o seu Azure Function App.

Após efetuar o login, na aba "Resources" você poderá visualizar os recursos do Azure, incluindo os Azure Function Apps

Agora acesse a aba "Workspaces" e clique em "Deploy" e depois em "Deploy to Function App"

O VS Code exibirá uma lista com os Azures Function Apps disponíveis para receber a sua function. Selecione o adequado e comande o deploy.
É isto!
E assim criamos uma function e fizemos seu deploy a partir do VS Code.