Azure Application Insights .NET 资源管理技能
用 .NET 管理 Application Insights 资源、可用性测试和监控工作簿。
文档说明了 Azure 身份认证、连接字符串安全存储和托管身份等做法,并标注 API key 只显示一次;但创建、更新和删除资源均以直接执行为主,没有用户确认、最小权限角色、删除回滚或操作前后数据流说明,且示例会将连接字符串、Instrumentation Key 和 API key 输出到控制台,故扣分。
覆盖安装、认证、创建、读取、更新、删除和错误处理,错误示例包含部分 HTTP 状态分类;但未提供该技能专属测试或可复现验证,部分代码依赖未说明,使用 GetDefaultSubscriptionAsync().Result 还可能引入同步阻塞,异常输入和 API 版本兼容性处理较薄,静态评估不超过 10 分,故扣分。
名称、受众和触发词较明确,覆盖 Application Insights 资源管理、web tests 和 workbooks;但没有明确非适用场景、输入输出契约、权限前提或触发边界,也没有中文使用说明或大陆网络可达性说明,故扣分。
结构清晰,包含安装、环境变量、认证、核心工作流、类型表、最佳实践、错误处理、相关 SDK 和参考链接,并声明 MIT、作者和版本;但缺少 FAQ、已知限制、变更记录、明确维护责任和更新路径,且版本与 API 兼容性说明有限,故扣分。
示例覆盖主要资源生命周期并提供可直接改写的 C# 片段,能完成核心 Application Insights 管理任务;但示例中的占位符、权限和前置资源未完整说明,API key 和多步骤 web test 示例存在敏感数据处理风险,未有该技能专属输出验证或与替代方案的比较,故扣分。
文档提供 NuGet、API、产品文档和 GitHub 源码引用,部分主张可追溯;但本次材料没有针对该技能的提交测试、CI 结果或第三方执行证据,关键代码只能静态审阅,故仅给有限分数。
- 不要在生产日志或控制台输出连接字符串、Instrumentation Key、API key 或测试凭据;应使用 Key Vault、托管身份和安全配置。
- 删除和更新示例会产生外部 Azure 资源变更,执行前应增加明确确认、权限检查、审计和恢复方案。
- 在采用代码前,应针对当前 Azure.ResourceManager.ApplicationInsights 和 Azure.Identity 版本编译并验证 API 签名、订阅获取方式及 web test 配置。
它能做什么 & 适用场景
该技能面向使用 Azure Resource Manager SDK for .NET 管理 Application Insights 的开发者。它覆盖组件创建与更新、连接字符串和密钥读取、API 密钥、Web 可用性测试、工作簿及关联存储账户。技能使用 Azure.Identity 的 DefaultAzureCredential 或指定凭据进行身份验证。适合需要以代码配置 Azure 监控资源的 .NET 项目,但不替代 Application Insights 遥测 SDK。
指导安装 Azure.ResourceManager.ApplicationInsights 和 Azure.Identity,配置 Azure 订阅、资源组及组件名称等环境变量,并用 C# 创建、读取、更新、列出和删除 Application Insights 组件。它还演示创建 API 密钥、URL Ping 和多步骤 Web 测试、共享工作簿、关联存储账户,以及读取连接字符串、Instrumentation Key 和 App ID。示例通过 ArmClient 调用 Azure Resource Manager,并包含 400、409 及一般 Azure 请求错误处理。
- 负责 Azure 平台的 .NET 开发者需要创建工作区型 Application Insights 组件并设置保留期、采样和网络访问选项。
- 应用团队需要从多个地理位置创建主页可用性测试或登录流程测试。
- 运维或开发团队需要通过代码创建共享监控工作簿和 KQL 查询图表。
- 平台工程师需要列出、更新或删除资源组中的 Application Insights 组件和 Web 测试。
- 需要将应用遥测接入既有 Application Insights 资源的 ASP.NET Core 开发者。
优缺点一览
- 覆盖 Application Insights 资源管理的主要 C# 工作流,包括组件、API 密钥、Web 测试、工作簿和存储关联。
- 提供可复制的 Azure.Identity 身份验证、资源层级和错误处理示例。
- 明确给出 SDK 版本 v1.0.0、GA 状态和 API 版本 2022-06-15。
- 包含工作区型 Application Insights、采样、保留期、标签和多测试位置等实践建议。
- 内容聚焦资源管理,不提供完整的遥测采集、查询或告警实现。
- 示例依赖 Azure 订阅、资源组和实际 Azure 资源;源材料未提供成本或权限矩阵。
- 源材料未显示该单独技能的测试覆盖情况。
- 部分示例包含占位符和示例凭据字段,投入生产前仍需自行完成安全配置。
如何安装
在 .NET 项目中运行:
dotnet add package Azure.ResourceManager.ApplicationInsights
dotnet add package Azure.Identity
将该技能目录放入所选 Agent 的技能目录;仓库 README 给出的集合安装命令是:npx skills add microsoft/skills。源材料未说明如何在每种 Agent 中选择或启用该单独技能。
如何使用
在支持该技能的编码 Agent 中,提交包含“Application Insights”“App Insights”“APM”“web tests”或“workbooks”等触发词的请求,例如:“用 Azure.ResourceManager.ApplicationInsights 创建一个工作区型 Application Insights 组件,并配置保留期和采样率。”准备 AZURE_SUBSCRIPTION_ID、AZURE_RESOURCE_GROUP 和 AZURE_APPINSIGHTS_NAME;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod。
对比同类
该技能明确区分 Azure.ResourceManager.ApplicationInsights 资源管理 SDK 与 Microsoft.ApplicationInsights 遥测 SDK、Microsoft.ApplicationInsights.AspNetCore 集成包及 Azure.Monitor.OpenTelemetry.Exporter。它适合管理 Azure 资源;其他 SDK 更适合应用遥测或 OpenTelemetry 导出。