【译】Azure MCP 工具现已内置集成至 Visual Studio 2022,无需额外安装扩展

引言:MCP 是什么,为什么重要?MCP(Microsoft Cloud Platform)是微软云平台的核心工具集,它提供了一套统一的命令行和 API 接口,用于管理 Azure 资源、部署应用、监控服务等。在过去的版本中,开发者需要单独安装 Azure CLI 或 Azure PowerShell 模块,并手动配置环境变量,才能在 Visual Studio 中与 Azure 交互。这不仅增加了学习成本,还容易因版本不匹配导致兼容性问题。现在,好消息来了:Visual Studio 2022 最新更新已将 Azure MCP 工具内置集成。这意味着,你不再需要额外安装任何扩展或 SDK,只需打开 Visual Studio 2022,就能直接使用 MCP 功能。这背后是微软对“开箱即用”理念的深度实践——让开发者专注于代码本身,而非工具链的搭建。## 基础概念:从命令行到内置集成### 传统方式:手动安装 Azure CLI在介绍新特性之前,我们先回顾一下传统方式。在 Visual Studio 2019 及更早版本中,若想管理 Azure 资源,需要:1. 下载并安装 Azure CLI(约 100 MB 的安装包)。2. 通过命令行执行 az login 登录账户。3. 在 Visual Studio 中手动配置连接字符串或证书。这种方式对新手不友好——例如,忘记安装 CLI 会导致部署失败;而版本不匹配则可能引发“找不到命令”错误。### 新方式:Visual Studio 2022 内置 MCP现在,Visual Studio 2022 的 17.4 及以上版本 已默认包含 MCP 工具。你无需任何额外操作,只需创建或打开一个项目,就能在“工具”菜单中找到“Azure 资源管理器”选项。更关键的是,它直接集成在 IDE 的 Cloud Explorer 面板中,你可以像浏览本地文件一样浏览 Azure 订阅、存储账户、虚拟机等资源。## 实战演练:基础代码示例为了让你快速上手,我们通过两个代码示例来展示 MCP 的强大功能。这些示例假设你在 Visual Studio 2022 中创建了一个 C# 控制台应用,并已通过“工具”->“登录 Azure” 完成身份验证。### 示例 1:列出当前订阅下的所有资源组这个示例演示如何使用 MCP 提供的 API(通过 Microsoft.Azure.Management.Fluent 库,该库已内置在 Visual Studio 2022 中)来获取资源信息。csharpusing System;using Microsoft.Azure.Management.Fluent;using Microsoft.Azure.Management.ResourceManager.Fluent;class Program{ static void Main(string[] args) { // 1. 使用 Visual Studio 2022 内置的认证机制自动获取 Azure 凭据 // 无需手动输入密码或服务主体信息 var azure = Azure .Configure() .Authenticate() // 自动检测 VS 中的登录状态 .WithDefaultSubscription(); // 2. 获取当前订阅下的所有资源组 var resourceGroups = azure.ResourceGroups.List(); Console.WriteLine("当前订阅中的资源组列表:"); foreach (var rg in resourceGroups) { Console.WriteLine($"- {rg.Name} (区域: {rg.Region.Name})"); } // 3. 统计资源组数量 Console.WriteLine($"\n共找到 {resourceGroups.Count} 个资源组。"); }}注释说明:- Azure.Configure().Authenticate() 是核心代码——它会自动读取 Visual Studio 2022 中缓存的登录 Token,无需手动调用 az login。- WithDefaultSubscription() 选择当前默认的 Azure 订阅(你可以在 VS 的“工具”->“选项”中更改默认订阅)。- 这个示例运行后,会直接输出资源组列表,就像在 Azure Portal 中查看一样。### 示例 2:部署一个简单的 Web 应用到 Azure App Service这个示例演示如何通过 MCP 的部署 API,在 Azure 中创建和发布一个 Web 应用。假设你已经有了一个 ASP.NET Core 项目。csharpusing System;using System.Threading.Tasks;using Microsoft.Azure.Management.AppService.Fluent;using Microsoft.Azure.Management.ResourceManager.Fluent;using Microsoft.Azure.Management.Fluent;class DeploymentDemo{ static async Task Main(string[] args) { // 1. 初始化 Azure 客户端(同上) var azure = Azure .Configure() .Authenticate() .WithDefaultSubscription(); // 2. 创建或获取资源组 string rgName = "myResourceGroupDemo"; var resourceGroup = await azure.ResourceGroups .Define(rgName) .WithRegion(Region.USEast) // 选择美国东部区域 .CreateAsync(); Console.WriteLine($"资源组 '{rgName}' 已就绪。"); // 3. 创建 App Service 计划(定义计算资源规格) string planName = "myAppServicePlan"; var appServicePlan = await azure.AppServices.AppServicePlans .Define(planName) .WithRegion(Region.USEast) .WithExistingResourceGroup(resourceGroup) .WithPricingTier(PricingTier.F1) // 免费层,适合测试 .WithOperatingSystem(OperatingSystem.Windows) .CreateAsync(); Console.WriteLine($"App Service 计划 '{planName}' 已创建。"); // 4. 创建 Web 应用 string webAppName = "myWebAppDemo" + Guid.NewGuid().ToString("N").Substring(0, 8); // 唯一名称 var webApp = await azure.AppServices.WebApps .Define(webAppName) .WithRegion(Region.USEast) .WithExistingResourceGroup(resourceGroup) .WithExistingAppServicePlan(appServicePlan) .WithRuntimeStack(WebAppRuntimeStack.NET_CORE) // 指定 .NET Core 运行时 .CreateAsync(); Console.WriteLine($"Web 应用已创建,URL: https://{webAppName}.azurewebsites.net"); }}注释说明:- 代码中使用了 async/await 模式,因为 Azure 资源创建是长时间运行的操作。- PricingTier.F1 表示免费层,适合学习和测试,不会产生费用。- Guid.NewGuid() 用于生成唯一的 Web 应用名称,避免与现有应用冲突。- 运行后,你会在 Azure Portal 中看到新创建的资源组、App Service 计划和 Web 应用,且应用已处于运行状态。## 高级用法:自定义部署与调试### 使用 MCP 的“热重载”功能Visual Studio 2022 的内置 MCP 还支持 Azure Functions 的本地调试。你可以在本地运行函数,然后通过 MCP 工具直接将其发布到云端。例如:1. 在 VS 中创建一个 Azure Functions 项目。2. 按 F5 启动本地调试。3. 在“Cloud Explorer”中右键点击目标函数应用,选择“发布”。4. MCP 会自动同步代码,无需手动配置发布配置文件。### 集成 CI/CD 管道对于企业级项目,你可以将 MCP 与 Azure DevOps 结合。在 Visual Studio 2022 中,只需右键点击项目,选择“配置持续交付”,MCP 会自动生成 YAML 管道文件(例如 azure-pipelines.yml),包含构建、测试和部署步骤。例如:yamltrigger:- mainpool: vmImage: 'windows-latest'steps:- task: DotNetCoreCLI@2 displayName: 'Build' inputs: command: 'build' projects: '**/*.csproj'- task: AzureWebApp@1 displayName: 'Deploy to Azure' inputs: azureSubscription: '$(AzureServiceConnection)' appName: 'myWebAppDemo' package: '$(System.DefaultWorkingDirectory)/**/*.zip'这个管道文件会自动使用 MCP 的认证信息部署应用,无需你手动输入密码。## 注意事项与最佳实践1. 版本要求:请确保 Visual Studio 2022 版本不低于 17.4(可在“帮助”->“关于”中查看)。旧版本可能需要手动安装扩展。2. 权限管理:内置 MCP 使用 VS 的登录凭据,因此建议为开发环境分配独立的 Azure 服务主体(Service Principal),避免使用个人账号的全局权限。3. 性能优化:当操作大量资源时(如列出数百个虚拟机),建议使用 async 方法,避免阻塞 UI 线程。4. 错误处理:生产代码中应添加 try-catch 块,处理网络中断或权限不足等异常。例如:csharptry{ var vms = await azure.VirtualMachines.ListAsync();}catch (Microsoft.Rest.Azure.CloudException ex){ Console.WriteLine($"Azure 错误: {ex.Message}");}catch (System.Net.Http.HttpRequestException ex){ Console.WriteLine($"网络错误: {ex.Message}");}## 总结Azure MCP 工具内置集成到 Visual Studio 2022,是微软向开发者体验迈出的重要一步。它消除了传统开发中“配置工具链”的摩擦,让 Azure 资源的创建、管理和部署变得像写代码一样自然。从基础的资源查询到复杂的 CI/CD 管道,你都可以在熟悉的 IDE 中完成,无需切换到命令行或浏览器。对于初学者,这意味着你可以更专注于学习 C# 和 .NET 本身,而非 Azure CLI 的命令语法;对于老手,这意味着更快的迭代速度和更少的上下文切换。正如本文示例所示,只需几行代码,就能完成过去需要数小时手动配置的任务。未来,随着更多 Azure 服务(如 Azure Kubernetes Service、Azure AI)的集成,Visual Studio 2022 将成为真正的“云原生开发环境”。现在,就打开你的 VS 2022,体验一下“开箱即用”的云开发吧!

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐