<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Azd | The .NET Blog</title><link>https://thedotnetblog.com/pt/tags/azd/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>pt</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/pt/tags/azd/index.xml" rel="self" type="application/rss+xml"/><item><title>Hooks do azd em Python, TypeScript e .NET: chega de scripts shell</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/</guid><description>A CLI do Azure Developer agora suporta hooks em Python, JavaScript, TypeScript e .NET. Sem mais troca de contexto para Bash só para rodar um script de migração.</description><content:encoded>&lt;p&gt;&lt;em&gt;Esta publicação foi traduzida automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-hooks-python-javascript-typescript-dotnet/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Se você já teve um projeto completamente em .NET e mesmo assim precisou escrever scripts Bash para os hooks do azd, conhece bem essa dor. Por que mudar para sintaxe de shell num passo de pré-provisioning quando tudo o mais no projeto é C#?&lt;/p&gt;
&lt;p&gt;Essa frustração agora tem uma solução oficial. A CLI do Azure Developer &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;acaba de lançar suporte a múltiplos idiomas para hooks&lt;/a&gt;, e é exatamente tão bom quanto parece.&lt;/p&gt;
&lt;h2 id="hooks-brevemente"&gt;Hooks, brevemente&lt;/h2&gt;
&lt;p&gt;Hooks são scripts que rodam em pontos-chave do ciclo de vida do &lt;code&gt;azd&lt;/code&gt; — antes do provisioning, após o deployment e mais. São definidos no &lt;code&gt;azure.yaml&lt;/code&gt; e permitem injetar lógica customizada sem modificar a CLI.&lt;/p&gt;
&lt;p&gt;Antes, apenas Bash e PowerShell eram suportados. Agora você pode usar &lt;strong&gt;Python, JavaScript, TypeScript ou .NET&lt;/strong&gt; — e o &lt;code&gt;azd&lt;/code&gt; cuida do resto automaticamente.&lt;/p&gt;
&lt;h2 id="como-funciona-a-detecção"&gt;Como funciona a detecção&lt;/h2&gt;
&lt;p&gt;Basta apontar o hook para um arquivo e o &lt;code&gt;azd&lt;/code&gt; infere o idioma pela extensão:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postdeploy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/seed.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sem configuração extra. Se a extensão for ambígua, você pode adicionar &lt;code&gt;kind: python&lt;/code&gt; (ou o que for) para especificar explicitamente.&lt;/p&gt;
&lt;h2 id="detalhes-por-linguagem"&gt;Detalhes por linguagem&lt;/h2&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;p&gt;Coloque um &lt;code&gt;requirements.txt&lt;/code&gt; ou &lt;code&gt;pyproject.toml&lt;/code&gt; ao lado do script (ou em um diretório pai). O &lt;code&gt;azd&lt;/code&gt; cria automaticamente um ambiente virtual, instala dependências e executa o script.&lt;/p&gt;
&lt;h3 id="javascript-e-typescript"&gt;JavaScript e TypeScript&lt;/h3&gt;
&lt;p&gt;Mesmo padrão — coloque um &lt;code&gt;package.json&lt;/code&gt; perto do script e o &lt;code&gt;azd&lt;/code&gt; executará &lt;code&gt;npm install&lt;/code&gt; primeiro. Para TypeScript, usa &lt;code&gt;npx tsx&lt;/code&gt; sem etapa de compilação e sem &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="net"&gt;.NET&lt;/h3&gt;
&lt;p&gt;Dois modos disponíveis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modo projeto&lt;/strong&gt;: Se houver um &lt;code&gt;.csproj&lt;/code&gt; ao lado do script, o &lt;code&gt;azd&lt;/code&gt; executa &lt;code&gt;dotnet restore&lt;/code&gt; e &lt;code&gt;dotnet build&lt;/code&gt; automaticamente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modo single-file&lt;/strong&gt;: No .NET 10+, arquivos &lt;code&gt;.cs&lt;/code&gt; independentes executam diretamente via &lt;code&gt;dotnet run script.cs&lt;/code&gt;. Sem arquivo de projeto.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuração-por-executor"&gt;Configuração por executor&lt;/h2&gt;
&lt;p&gt;Cada linguagem suporta um bloco &lt;code&gt;config&lt;/code&gt; opcional:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;hooks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;preprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/setup.ts&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;packageManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;pnpm&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;postprovision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;./hooks/migrate.cs&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;Release&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;framework&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;net10.0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="por-que-isso-importa-para-desenvolvedores-net"&gt;Por que isso importa para desenvolvedores .NET&lt;/h2&gt;
&lt;p&gt;Os hooks eram o último lugar num projeto baseado em azd que forçava uma troca de linguagem. Agora todo o pipeline de deployment pode viver em um único idioma. Você pode reutilizar utilitários .NET existentes em hooks, referenciar bibliotecas compartilhadas e abandonar a manutenção de scripts shell.&lt;/p&gt;
&lt;h2 id="conclusão"&gt;Conclusão&lt;/h2&gt;
&lt;p&gt;Um desses mudanças que parecem pequenas, mas que removem muita fricção do dia a dia com azd. O suporte multi-linguagem para hooks já está disponível — confira o &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-multi-language-hooks/"&gt;post oficial&lt;/a&gt; para a documentação completa.&lt;/p&gt;</content:encoded></item><item><title>azd + GitHub Copilot: Configuração de projeto com IA e resolução inteligente de erros</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/</guid><description>O Azure Developer CLI agora se integra com o GitHub Copilot para gerar a infraestrutura do seu projeto e resolver erros de deploy — sem sair do terminal.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este artigo foi traduzido automaticamente. Para ver a versão original em inglês, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-copilot-integration-ai-setup-troubleshooting/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Você conhece aquele momento em que quer fazer o deploy de uma app existente no Azure e se vê olhando para um &lt;code&gt;azure.yaml&lt;/code&gt; em branco, tentando lembrar se sua API Express deveria usar Container Apps ou App Service? Esse momento acabou de ficar muito mais curto.&lt;/p&gt;
&lt;p&gt;O Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) agora se integra com o GitHub Copilot de duas formas concretas: scaffolding assistido por IA durante o &lt;code&gt;azd init&lt;/code&gt;, e resolução inteligente de erros quando os deploys falham. Ambas as funcionalidades ficam completamente no terminal — exatamente onde eu quero que estejam.&lt;/p&gt;
&lt;h2 id="configuração-com-copilot-durante-azd-init"&gt;Configuração com Copilot durante azd init&lt;/h2&gt;
&lt;p&gt;Quando você executa &lt;code&gt;azd init&lt;/code&gt;, agora aparece a opção &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Selecione-a e o Copilot analisa sua base de código para gerar o &lt;code&gt;azure.yaml&lt;/code&gt;, os templates de infraestrutura e os módulos Bicep — com base no seu código real.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd init
# Selecione: &amp;#34;Set up with GitHub Copilot (Preview)&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pré-requisitos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;azd 1.23.11 ou superior&lt;/strong&gt; — verifique com &lt;code&gt;azd version&lt;/code&gt; ou atualize com &lt;code&gt;azd update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assinatura ativa do GitHub Copilot&lt;/strong&gt; (Individual, Business ou Enterprise)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;)&lt;/strong&gt; — o &lt;code&gt;azd&lt;/code&gt; pedirá login se necessário&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O que acho genuinamente útil: funciona nos dois sentidos. Construindo do zero? O Copilot ajuda a configurar os serviços Azure certos desde o início. Tem uma app existente que você queria fazer deploy faz tempo? Aponte o Copilot para ela e ele gera a configuração sem você precisar reestruturar nada.&lt;/p&gt;
&lt;h3 id="o-que-ele-faz-de-verdade"&gt;O que ele faz de verdade&lt;/h3&gt;
&lt;p&gt;Digamos que você tem uma API Express em Node.js com dependência do PostgreSQL. Em vez de decidir manualmente entre Container Apps e App Service, e depois escrever Bicep do zero, o Copilot detecta sua stack e gera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Um &lt;code&gt;azure.yaml&lt;/code&gt; com as configurações corretas de &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;host&lt;/code&gt; e &lt;code&gt;build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Um módulo Bicep para Azure Container Apps&lt;/li&gt;
&lt;li&gt;Um módulo Bicep para Azure Database for PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E ele faz verificações prévias antes de tocar em qualquer coisa — verifica se seu diretório git está limpo, pede consentimento para as ferramentas do servidor MCP. Nada acontece sem que você saiba exatamente o que vai mudar.&lt;/p&gt;
&lt;h2 id="resolução-de-erros-com-copilot"&gt;Resolução de erros com Copilot&lt;/h2&gt;
&lt;p&gt;Erros de deploy são inevitáveis. Parâmetros faltando, problemas de permissão, disponibilidade de SKUs — e a mensagem de erro raramente diz a única coisa que você realmente precisa saber: &lt;em&gt;como resolver&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Sem Copilot, o ciclo é: copiar o erro → pesquisar na documentação → ler três respostas irrelevantes do Stack Overflow → executar alguns comandos &lt;code&gt;az&lt;/code&gt; CLI → tentar de novo e torcer. Com o Copilot integrado ao &lt;code&gt;azd&lt;/code&gt;, esse ciclo colapsa. Quando qualquer comando &lt;code&gt;azd&lt;/code&gt; falha, ele imediatamente oferece quatro opções:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Explain&lt;/strong&gt; — descrição em linguagem natural do que deu errado&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance&lt;/strong&gt; — instruções passo a passo para corrigir&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diagnose and Guide&lt;/strong&gt; — análise completa + Copilot aplica a correção (com sua aprovação) + nova tentativa opcional&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skip&lt;/strong&gt; — resolver você mesmo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O ponto crucial: o Copilot já tem contexto sobre seu projeto, o comando que falhou e a saída do erro. Suas sugestões são específicas para &lt;em&gt;sua situação&lt;/em&gt;, não documentação genérica.&lt;/p&gt;
&lt;h3 id="configurar-comportamento-padrão"&gt;Configurar comportamento padrão&lt;/h3&gt;
&lt;p&gt;Se você sempre escolhe a mesma opção, pule o prompt interativo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.category troubleshoot
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Valores: &lt;code&gt;explain&lt;/code&gt;, &lt;code&gt;guidance&lt;/code&gt;, &lt;code&gt;troubleshoot&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;skip&lt;/code&gt;. Você também pode habilitar auto-fix e retry:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config set copilot.errorHandling.fix allow
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Voltar ao modo interativo a qualquer momento:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;azd config unset copilot.errorHandling.category
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="conclusão"&gt;Conclusão&lt;/h2&gt;
&lt;p&gt;Esta é exatamente o tipo de integração do Copilot que agrega valor real. Experimente executando &lt;code&gt;azd update&lt;/code&gt; para obter a versão mais recente e use &lt;code&gt;azd init&lt;/code&gt; no seu próximo projeto.&lt;/p&gt;
&lt;p&gt;Leia o &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/"&gt;anúncio original aqui&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>azd update — Um único comando para todos os seus gerenciadores de pacotes</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/</guid><description>O Azure Developer CLI agora tem um comando de atualização universal que funciona independentemente de como você o instalou — winget, Homebrew, Chocolatey ou script de instalação.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este post foi traduzido automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-update-universal-upgrade-command/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sabe aquela mensagem &amp;ldquo;Uma nova versão do azd está disponível&amp;rdquo; que aparece a cada poucas semanas? Aquela que você ignora porque não lembra se instalou o &lt;code&gt;azd&lt;/code&gt; via winget, Homebrew ou aquele script curl que rodou há seis meses? Pois é, isso finalmente foi resolvido.&lt;/p&gt;
&lt;p&gt;A Microsoft acabou de lançar o &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;&lt;code&gt;azd update&lt;/code&gt;&lt;/a&gt; — um único comando que atualiza o Azure Developer CLI para a versão mais recente, independentemente de como você o instalou originalmente. Windows, macOS, Linux — não importa. Um comando só.&lt;/p&gt;
&lt;h2 id="como-funciona"&gt;Como funciona&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;É isso. Se você quer acesso antecipado a novas funcionalidades, pode mudar para o build diário de insiders:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel daily
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd update --channel stable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O comando detecta seu método de instalação atual e usa o mecanismo de atualização apropriado por baixo dos panos. Chega de &amp;ldquo;espera, eu usei winget ou choco nessa máquina?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="o-pequeno-detalhe"&gt;O pequeno detalhe&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; está disponível a partir da versão 1.23.x. Se você está em uma versão anterior, vai precisar fazer uma última atualização manual usando seu método de instalação original. Depois disso, o &lt;code&gt;azd update&lt;/code&gt; cuida de tudo dali em diante.&lt;/p&gt;
&lt;p&gt;Verifique sua versão atual com &lt;code&gt;azd version&lt;/code&gt;. Se precisar de uma instalação do zero, a &lt;a href="https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd"&gt;documentação de instalação&lt;/a&gt; te ajuda.&lt;/p&gt;
&lt;h2 id="por-que-isso-importa"&gt;Por que isso importa&lt;/h2&gt;
&lt;p&gt;É uma pequena melhoria de qualidade de vida, mas para quem usa &lt;code&gt;azd&lt;/code&gt; diariamente para fazer deploy de agentes de IA e apps Aspire no Azure, estar atualizado significa menos momentos de &amp;ldquo;esse bug já tinha sido corrigido na última versão&amp;rdquo;. Uma coisa a menos para se preocupar.&lt;/p&gt;
&lt;p&gt;Leia o &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-update/"&gt;anúncio completo&lt;/a&gt; e a &lt;a href="https://blog.jongallant.com/2026/04/azd-update"&gt;análise mais detalhada&lt;/a&gt; do Jon Gallant para mais contexto.&lt;/p&gt;</content:encoded></item><item><title>azd agora permite executar e depurar agentes IA localmente — O que mudou em março 2026</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/</guid><description>O Azure Developer CLI lançou sete versões em março 2026. Destaques: loop local de execução e depuração para agentes IA, integração com GitHub Copilot na configuração de projetos, e suporte a Container App Jobs.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este post foi traduzido automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/azd-march-2026-local-ai-agent-debugging/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sete versões em um mês. Foi isso que o time do Azure Developer CLI (&lt;code&gt;azd&lt;/code&gt;) publicou em março 2026, e a funcionalidade principal é a que eu estava esperando: &lt;strong&gt;um loop local de execução e depuração para agentes IA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;PC Chan &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;publicou o resumo completo&lt;/a&gt;, e embora haja muito conteúdo, deixe-me filtrar o que realmente importa para desenvolvedores .NET construindo apps com IA.&lt;/p&gt;
&lt;h2 id="executar-e-depurar-agentes-ia-sem-fazer-deploy"&gt;Executar e depurar agentes IA sem fazer deploy&lt;/h2&gt;
&lt;p&gt;Esta é a grande novidade. A nova extensão &lt;code&gt;azure.ai.agents&lt;/code&gt; adiciona comandos que te dão uma experiência de loop interno adequada para agentes IA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;azd ai agent run&lt;/code&gt; — inicia seu agente localmente&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt; — envia mensagens (local ou em produção)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent show&lt;/code&gt; — mostra status e saúde do container&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt; — transmite logs do container em tempo real&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Antes, testar um agente IA significava fazer deploy no Microsoft Foundry toda vez que você fazia uma mudança. Agora você pode iterar localmente, testar o comportamento do seu agente, e só fazer deploy quando estiver pronto.&lt;/p&gt;
&lt;h2 id="github-copilot-configura-seu-projeto-azd"&gt;GitHub Copilot configura seu projeto azd&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd init&lt;/code&gt; agora oferece uma opção &amp;ldquo;Set up with GitHub Copilot (Preview)&amp;rdquo;. Em vez de responder prompts manualmente, um agente Copilot gera a configuração para você. Quando um comando falha, &lt;code&gt;azd&lt;/code&gt; oferece troubleshooting assistido por IA — tudo sem sair do terminal.&lt;/p&gt;
&lt;h2 id="container-app-jobs-e-melhorias-de-deploy"&gt;Container App Jobs e melhorias de deploy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Container App Jobs&lt;/strong&gt;: &lt;code&gt;azd&lt;/code&gt; agora faz deploy de &lt;code&gt;Microsoft.App/jobs&lt;/code&gt; pela config existente &lt;code&gt;host: containerapp&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timeouts configuráveis&lt;/strong&gt;: Nova flag &lt;code&gt;--timeout&lt;/code&gt; no &lt;code&gt;azd deploy&lt;/code&gt; e campo &lt;code&gt;deployTimeout&lt;/code&gt; no &lt;code&gt;azure.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fallback de build remoto&lt;/strong&gt;: Quando o build ACR falha, &lt;code&gt;azd&lt;/code&gt; faz fallback automático para Docker/Podman local.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validação preflight local&lt;/strong&gt;: Parâmetros Bicep são validados localmente antes do deploy.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="melhorias-de-dx"&gt;Melhorias de DX&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Detecção automática de pnpm/yarn&lt;/strong&gt; para projetos JS/TS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Suporte a pyproject.toml&lt;/strong&gt; para Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Diretórios de templates locais&lt;/strong&gt; — &lt;code&gt;azd init --template&lt;/code&gt; aceita caminhos do sistema de arquivos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Melhores mensagens de erro&lt;/strong&gt; no modo &lt;code&gt;--no-prompt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variáveis de ambiente de build&lt;/strong&gt; injetadas em todos os subprocessos de build (.NET, Node.js, Java, Python)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusão"&gt;Conclusão&lt;/h2&gt;
&lt;p&gt;O loop de depuração local de agentes IA é a estrela desta versão, mas o acúmulo de melhorias de deploy e refinamento de DX faz o &lt;code&gt;azd&lt;/code&gt; parecer mais maduro do que nunca. Se você está fazendo deploy de apps .NET no Azure — especialmente agentes IA — esta atualização vale a pena.&lt;/p&gt;
&lt;p&gt;Confira as &lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-march-2026/"&gt;notas completas da versão&lt;/a&gt; para todos os detalhes.&lt;/p&gt;</content:encoded></item><item><title>Do laptop à produção: implantando agentes de IA no Microsoft Foundry com dois comandos</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>O Azure Developer CLI agora tem comandos 'azd ai agent' que levam seu agente de IA do desenvolvimento local a um endpoint Foundry em produção em minutos. Aqui está o fluxo de trabalho completo.</description><content:encoded>&lt;p&gt;Você conhece aquela lacuna entre &amp;ldquo;funciona na minha máquina&amp;rdquo; e &amp;ldquo;está implantado e servindo tráfego&amp;rdquo;? Para agentes de IA, essa lacuna tem sido dolorosamente ampla. Você precisa provisionar recursos, implantar modelos, configurar identidade, montar monitoramento — e isso é antes de qualquer pessoa poder realmente chamar seu agente.&lt;/p&gt;
&lt;p&gt;O Azure Developer CLI acabou de transformar isso em &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;uma questão de dois comandos&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="o-novo-fluxo-de-trabalho-azd-ai-agent"&gt;O novo fluxo de trabalho &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Deixe-me mostrar como isso realmente se parece. Você tem um projeto de agente de IA — digamos um agente concierge de hotel. Funciona localmente. Você quer ele rodando no Microsoft Foundry.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Isso é tudo. Dois comandos. &lt;code&gt;azd ai agent init&lt;/code&gt; gera a infraestrutura como código no seu repositório, e &lt;code&gt;azd up&lt;/code&gt; provisiona tudo no Azure e publica seu agente. Você recebe um link direto para seu agente no portal Foundry.&lt;/p&gt;
&lt;h2 id="o-que-acontece-por-baixo-dos-panos"&gt;O que acontece por baixo dos panos&lt;/h2&gt;
&lt;p&gt;O comando &lt;code&gt;init&lt;/code&gt; gera templates Bicep reais e inspecionáveis no seu repositório:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Um &lt;strong&gt;Foundry Resource&lt;/strong&gt; (contêiner de nível superior)&lt;/li&gt;
&lt;li&gt;Um &lt;strong&gt;Foundry Project&lt;/strong&gt; (onde seu agente vive)&lt;/li&gt;
&lt;li&gt;Configuração de &lt;strong&gt;implantação de modelo&lt;/strong&gt; (GPT-4o, etc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identidade gerenciada&lt;/strong&gt; com atribuições de papéis RBAC apropriadas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; para o mapa de serviços&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; com metadados do agente e variáveis de ambiente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O ponto chave: tudo isso é seu. É Bicep versionado no seu repositório. Você pode inspecioná-lo, customizá-lo e fazer commit junto com o código do seu agente. Sem caixas pretas mágicas.&lt;/p&gt;
&lt;h2 id="o-ciclo-interno-de-desenvolvimento"&gt;O ciclo interno de desenvolvimento&lt;/h2&gt;
&lt;p&gt;O que eu realmente gosto é a história de desenvolvimento local. Quando você está iterando na lógica do agente, não quer reimplantar toda vez que muda um prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Isso inicia seu agente localmente. Combine com &lt;code&gt;azd ai agent invoke&lt;/code&gt; para enviar prompts de teste, e você tem um ciclo de feedback apertado. Editar código, reiniciar, invocar, repetir.&lt;/p&gt;
&lt;p&gt;O comando &lt;code&gt;invoke&lt;/code&gt; também é inteligente no roteamento — quando um agente local está rodando, ele aponta automaticamente para ele. Quando não está, vai para o endpoint remoto.&lt;/p&gt;
&lt;h2 id="monitoramento-em-tempo-real"&gt;Monitoramento em tempo real&lt;/h2&gt;
&lt;p&gt;Esta é a funcionalidade que me convenceu. Uma vez que seu agente está implantado:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cada requisição e resposta fluindo pelo seu agente é transmitida para seu terminal em tempo real. Para depurar problemas em produção, isso é inestimável. Sem vasculhar log analytics, sem esperar métricas agregarem — você vê o que está acontecendo agora.&lt;/p&gt;
&lt;h2 id="o-conjunto-completo-de-comandos"&gt;O conjunto completo de comandos&lt;/h2&gt;
&lt;p&gt;Aqui a referência rápida:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;O que faz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Gera um projeto de agente Foundry com IaC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Provisiona recursos Azure e implanta o agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Envia prompts ao agente remoto ou local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Executa o agente localmente para desenvolvimento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Transmite logs em tempo real do agente publicado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Verifica saúde e status do agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limpa todos os recursos Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="por-que-isso-importa-para-desenvolvedores-net"&gt;Por que isso importa para desenvolvedores .NET&lt;/h2&gt;
&lt;p&gt;Embora o exemplo do anúncio seja baseado em Python, a história de infraestrutura é agnóstica a linguagem. Seu agente .NET recebe o mesmo scaffolding Bicep, a mesma configuração de identidade gerenciada, o mesmo pipeline de monitoramento. E se você já usa &lt;code&gt;azd&lt;/code&gt; para suas apps .NET Aspire ou implantações Azure, isso se encaixa direto no seu fluxo de trabalho existente.&lt;/p&gt;
&lt;p&gt;A lacuna de implantação para agentes de IA tem sido um dos maiores pontos de fricção no ecossistema. Ir de um protótipo funcional a um endpoint de produção com identidade, rede e monitoramento adequados não deveria exigir uma semana de trabalho DevOps. Agora requer dois comandos e alguns minutos.&lt;/p&gt;
&lt;h2 id="para-finalizar"&gt;Para finalizar&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; está disponível agora. Se você tem adiado a implantação dos seus agentes de IA porque a configuração de infraestrutura parecia trabalho demais, experimente. Confira o &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;tutorial completo&lt;/a&gt; para o passo a passo completo incluindo integração de app de chat frontend.&lt;/p&gt;</content:encoded></item></channel></rss>