<?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>Cloud | The .NET Blog</title><link>https://thedotnetblog.com/zh/tags/cloud/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>zh</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 08 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/zh/tags/cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure Developer CLI (azd) 2026年4月更新</title><link>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/</guid><description>azd 在 2026 年 4 月发布了五个版本，重点是对 Python、JavaScript、TypeScript 和 .NET 的多语言钩子支持，以及 azd update 公开预览版、AI 配额预检查等功能。</description><content:encoded>&lt;p&gt;&lt;em&gt;本文已自动翻译。要查看原始版本，&lt;a href="https://thedotnetblog.com/zh/news/emiliano-montesdeoca/azd-april-2026-developer-cli-updates/"&gt;请点击此处&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;Azure Developer CLI (azd) 在 2026 年 4 月发布了五个版本&lt;/a&gt;（1.23.14 至 1.24.2），重大主题是钩子现在可在 Python、JavaScript、TypeScript 和 .NET 中运行——而不仅限于 Bash 和 PowerShell。&lt;/p&gt;
&lt;h2 id="azureyaml-中的多语言钩子"&gt;azure.yaml 中的多语言钩子&lt;/h2&gt;
&lt;p&gt;除 shell 脚本外，钩子现在可以指向 &lt;code&gt;.py&lt;/code&gt;、&lt;code&gt;.js&lt;/code&gt;、&lt;code&gt;.ts&lt;/code&gt; 或 &lt;code&gt;.cs&lt;/code&gt; 文件。每种语言都可自动解析依赖关系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; — 检测 &lt;code&gt;requirements.txt&lt;/code&gt; 或 &lt;code&gt;pyproject.toml&lt;/code&gt;，创建 virtualenv 并在运行前安装依赖。通过 &lt;code&gt;virtualEnvName&lt;/code&gt; 配置环境名称。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript / TypeScript&lt;/strong&gt; — 检测 &lt;code&gt;package.json&lt;/code&gt; 并自动运行 &lt;code&gt;npm install&lt;/code&gt;。TypeScript 通过 &lt;code&gt;npx tsx&lt;/code&gt; 执行，无需编译步骤。通过 &lt;code&gt;packageManager&lt;/code&gt; 配置块选择包管理器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.NET&lt;/strong&gt; — 使用 &lt;code&gt;dotnet run&lt;/code&gt; 运行 &lt;code&gt;.cs&lt;/code&gt; 文件。在 .NET 10+ 上支持单文件脚本。通过 &lt;code&gt;configuration/framework&lt;/code&gt; 块配置目标框架。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这意味着已在这些语言之一中工作的团队，不再需要仅为了连接预配生命周期事件而单独维护 Bash 或 PowerShell 钩子。&lt;/p&gt;
&lt;h2 id="azd-update-进入公开预览"&gt;azd update 进入公开预览&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd update&lt;/code&gt; 现已在所有平台上推出公开预览版。单个命令即可处理更新，无论 azd 最初是如何安装的——不再需要单独追踪 Homebrew、WinGet 或 MSI 的路径。&lt;/p&gt;
&lt;h2 id="通过-azd_non_interactive-实现非交互模式"&gt;通过 AZD_NON_INTERACTIVE 实现非交互模式&lt;/h2&gt;
&lt;p&gt;设置 &lt;code&gt;AZD_NON_INTERACTIVE=true&lt;/code&gt;（或使用 &lt;code&gt;--non-interactive&lt;/code&gt; / &lt;code&gt;--no-prompt&lt;/code&gt;）现在会在 CI/CD 管道中产生一致、确定性的失败，当必需的输入无法自动解析时。此前各命令的行为不一致。&lt;/p&gt;
&lt;h2 id="ai-模型配额预检查"&gt;AI 模型配额预检查&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd provision&lt;/code&gt; 在尝试预配 AI 模型资源之前，会验证 Azure 认知服务配额。因配额限制而失败的部署现在会在流程早期显示错误，而不是在预配进行到一半时才报错。&lt;/p&gt;
&lt;h2 id="copilot-问题排查中的修复此错误"&gt;Copilot 问题排查中的&amp;quot;修复此错误&amp;quot;&lt;/h2&gt;
&lt;p&gt;azd 的 Copilot 问题排查集成获得了直接应用建议修复的能力——而不仅仅是描述它。当代理识别出可修复的问题时，它可以直接在原地进行更改。&lt;/p&gt;
&lt;h2 id="自定义预配提供程序和-key-vault-密钥解析器"&gt;自定义预配提供程序和 Key Vault 密钥解析器&lt;/h2&gt;
&lt;p&gt;扩展作者现在可以使用 &lt;code&gt;WithProvisioningProvider()&lt;/code&gt; 注册替代基础结构后端。另外，azd 在将配置传递给扩展之前会自动解析 &lt;code&gt;@Microsoft.KeyVault(...)&lt;/code&gt; 引用，无需在自定义提供程序中手动解析密钥。&lt;/p&gt;
&lt;h2 id="模板和监视模式的排除项"&gt;模板和监视模式的排除项&lt;/h2&gt;
&lt;p&gt;两个新的忽略文件对文件处理提供了更精细的控制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdignore&lt;/code&gt;&lt;/strong&gt; — 从模板副本中排除仅供贡献者使用的文件（文档、CI 配置），使最终用户获得干净的项目脚手架。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.azdxignore&lt;/code&gt;&lt;/strong&gt; — 排除在 &lt;code&gt;azd x watch&lt;/code&gt; 期间触发重新构建的目录，减少迭代开发过程中的噪音。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="保留名称预检查和-dockernetwork-选项"&gt;保留名称预检查和 docker.network 选项&lt;/h2&gt;
&lt;p&gt;azd 现在会在预配开始之前，当预测的资源名称包含 Azure 保留词（&lt;code&gt;MICROSOFT&lt;/code&gt;、&lt;code&gt;WINDOWS&lt;/code&gt; 或 &lt;code&gt;LOGIN&lt;/code&gt; 前缀）时发出警告。新的 &lt;code&gt;docker.network&lt;/code&gt; 选项将 &lt;code&gt;--network&lt;/code&gt; 传递给 &lt;code&gt;docker build&lt;/code&gt;，在需要特定 Docker 网络的企业代理环境中非常有用。&lt;/p&gt;
&lt;h2 id="安全修复"&gt;安全修复&lt;/h2&gt;
&lt;p&gt;Windows MSI 包现在包含代码签名验证。另一项修复关闭了可能在扩展命令边界之间暴露值的环境变量泄漏问题。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;这是繁忙的一个月——多语言钩子支持尤其消除了不主要使用 Bash 的团队的一个真实摩擦点。有关所有五个版本的完整更改日志，请参阅&lt;a href="https://devblogs.microsoft.com/azure-sdk/azure-developer-cli-azd-april-2026/"&gt;完整发行说明&lt;/a&gt;。&lt;/p&gt;</content:encoded></item><item><title>你在Azure上的AI实验正在烧钱——这样解决</title><link>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/zh/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/</guid><description>Azure上的AI工作负载很容易变得昂贵。让我们聊聊在不拖慢开发进度的情况下，什么方法真正有效地控制成本。</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;本文为自动翻译。查看原文请&lt;a href="https://thedotnetblog.com/zh/news/emiliano-montesdeoca/cloud-cost-optimization-ai-workloads-azure/"&gt;点击这里&lt;/a&gt;。&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果你现在正在Azure上构建AI驱动的应用，你可能已经注意到一件事：你的云账单看起来和以前不一样了。不只是更高了——更奇怪了。波动很大，难以预测。&lt;/p&gt;
&lt;p&gt;Microsoft刚刚发布了一篇关于&lt;a href="https://azure.microsoft.com/en-us/blog/cloud-cost-optimization-principles-that-still-matter/"&gt;仍然重要的云成本优化原则&lt;/a&gt;的优秀文章，说实话，时机再好不过了。因为AI工作负载在成本方面已经改变了游戏规则。&lt;/p&gt;
&lt;h2 id="为什么ai工作负载不一样"&gt;为什么AI工作负载不一样&lt;/h2&gt;
&lt;p&gt;事情是这样的。传统的.NET工作负载相对可预测。你了解你的App Service层级，了解你的SQL DTU，可以相当准确地估算每月开支。AI工作负载呢？完全不是这么回事。&lt;/p&gt;
&lt;p&gt;你在测试多个模型看哪个合适。你在启动GPU支持的基础设施进行微调。你在调用Azure OpenAI的API，而token消耗量会因prompt长度和用户行为的不同而产生巨大差异。每个实验都要花真金白银，你可能需要运行几十次才能找到正确的方法。&lt;/p&gt;
&lt;p&gt;这种不可预测性正是成本优化至关重要的原因——不是事后才想到，而是从第一天开始。&lt;/p&gt;
&lt;h2 id="管理与优化了解区别"&gt;管理与优化——了解区别&lt;/h2&gt;
&lt;p&gt;文章中有一个我认为开发者容易忽视的区别：成本&lt;em&gt;管理&lt;/em&gt;和成本&lt;em&gt;优化&lt;/em&gt;是不同的。&lt;/p&gt;
&lt;p&gt;管理是跟踪和报告。你在Azure Cost Management中设置预算，收到警报，查看仪表板。这是基本功。&lt;/p&gt;
&lt;p&gt;优化是你真正做决策的地方。你真的需要S3层级，还是S1就能处理你的负载？那个始终运行的计算实例周末是不是闲着？你能否用竞价实例来跑训练任务？&lt;/p&gt;
&lt;p&gt;作为.NET开发者，我们往往专注于代码，把基础设施决策留给&amp;quot;运维团队&amp;quot;。但如果你在Azure上部署，这些决策也是你的决策。&lt;/p&gt;
&lt;h2 id="真正有效的方法"&gt;真正有效的方法&lt;/h2&gt;
&lt;p&gt;根据这篇文章和我自己的经验，以下是真正能产生效果的做法：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;了解你在花什么钱、花在哪里。&lt;/strong&gt; 给你的资源打标签。我是认真的。如果你无法分辨哪个项目或实验在消耗你的预算，你就无法优化任何东西。配合适当标签的Azure Cost Management是你最好的朋友。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实验之前设好护栏。&lt;/strong&gt; 使用Azure Policy限制dev/test环境中昂贵的SKU。为你的Azure OpenAI部署设置消费上限。不要等到账单到了才发现有人让GPU集群在周末一直运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;持续进行合理配置。&lt;/strong&gt; 原型阶段选的那个VM？可能不适合生产环境。Azure Advisor会给你建议——真的去看看。每月审查，而不是每年。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;考虑生命周期。&lt;/strong&gt; 开发资源应该关闭。测试环境不需要7×24小时运行。使用自动关机策略。特别是对于AI工作负载，考虑使用按执行付费的无服务器选项，而不是让计算资源一直保持运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;衡量价值，而不仅仅是成本。&lt;/strong&gt; 这一点容易忘记。一个成本更高但能产出显著更好结果的模型可能才是正确的选择。目标不是花最少的钱——而是花得聪明。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;云成本优化不是一次性的清理工作。它是一个习惯。随着AI工作负载让开支比以往任何时候都更难预测，尽早养成这个习惯可以帮你避免日后的痛苦惊喜。&lt;/p&gt;
&lt;p&gt;如果你是一名在Azure上构建的.NET开发者，开始像对待代码一样对待你的云账单吧——定期审查，混乱时重构，永远不要在不了解成本的情况下部署。&lt;/p&gt;</content:encoded></item></channel></rss>