23 de abril de 20263 min de leitura

Do PowerShell ao Poliglota: Usando Python, JS e .NET nos Hooks do Azure Developer CLI (azd)

Kristen Womack

Azure

Banner - Do PowerShell ao Poliglota: Usando Python, JS e .NET nos Hooks do Azure Developer CLI (azd)

O ecossistema de ferramentas para desenvolvedores da Microsoft tem evoluído de forma constante, e o mais recente update do Azure Developer CLI (azd) traz uma mudança relevante para times que buscam padronização e eficiência em seus pipelines de provisionamento.

Historicamente, os hooks do azd — essenciais para executar lógica customizada nos estágios de provisioning e deployment — eram limitados a Bash e PowerShell. Para muitos times que operam com stacks como Python ou Node.js, isso representava um atrito indesejado: a necessidade de criar e manter scripts em linguagens alheias ao core do projeto, promovendo o famigerado context-switching desnecessário.

O que mudou e por que importa

Agora, o azd suporta nativamente a execução de hooks escritos em Python, JavaScript, TypeScript e .NET. A ferramenta detecta automaticamente a linguagem pela extensão do arquivo e gerencia as dependências necessárias para a execução.

Para o engenheiro de DevOps, isso significa poder reutilizar bibliotecas existentes e aplicar padrões de codificação da própria organização, garantindo maior manutenibilidade e redução de riscos operacionais em ambientes multi-cloud ou Azure-native.

Implementação prática

A configuração permanece simplificada no arquivo azure.yaml. O azd infere a linguagem, mas você pode forçar o comportamento através do campo kind:

hooks:
  preprovision:
    run: ./hooks/setup.py
    kind: python 

Comportamento por linguagem:

  • Python: O azd percorre a árvore de diretórios em busca do requirements.txt ou pyproject.toml mais próximo, cria um virtual environment e instala as dependências antes de executar o script.
  • JavaScript/TypeScript: O suporte para package.json gerencia o npm install (ou gerenciador configurado). Scripts em TypeScript são executados via npx tsx, eliminando a necessidade de um passo de compilação explícito.
  • .NET: Suporta dois modos: o Project mode (executa dotnet restore e build se encontrar um .csproj/.fsproj) ou o Single-file mode (executando arquivos .cs diretamente no .NET 10+).

Flexibilidade e controle

Além da execução básica, a nova versão introduz configurações granulares por executor. É possível definir o packageManager (pnpm, yarn, npm), especificar o ambiente virtual ou até mesmo definir se o build será em Debug ou Release.

O suporte a formatos mixados também é um destaque, permitindo que você defina comportamentos distintos para Windows e POSIX dentro da mesma estrutura de hooks:

hooks:
  predeploy:
    windows:
      run: ./hooks/build.ps1
    posix:
      run: ./hooks/build.sh

Para empresas brasileiras focadas em FinOps e eficiência, essa flexibilidade permite integrar scripts de validação de custo ou conformidade de segurança diretamente no fluxo de deployment, reduzindo o tempo de ciclo (lead time) sem abrir mão da governança.

Considerações finais

Esta atualização transforma os hooks de simples shell commands em verdadeiras extensões da aplicação. Para escalar o uso do azd, recomendamos que os times consolidem seus scripts de automação dentro da linguagem que já dominam. Isso facilita o code review, a implementação de testes unitários nesses scripts e, consequentemente, a estabilidade do fluxo de deployment.

Para atualizar e começar a usar, basta executar azd update. Caso sua empresa precise de consultoria para integrar fluxos de automação complexos ou redesenhar sua infraestrutura seguindo as melhores práticas de DevOps e FinOps, nossa equipe está pronta para auxiliar no seu crescimento.


Artigo originalmente publicado por Kristen Womack em Azure Updates - Latest from Azure Charts.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset