Azure PostgreSQL Flexible Server .NET 技能
用 .NET 管理 Azure PostgreSQL Flexible Server 的部署、配置与运维。
技能覆盖 Azure 资源管理、身份认证、防火墙、备份和删除等外部影响操作,列出了部分环境变量和 DefaultAzureCredential,但示例直接写入管理员密码、连接字符串密码,并使用 Trust Server Certificate=true;删除、停止、故障转移及开放 Azure 服务访问没有用户确认、权限范围、回滚或恢复说明。因此主要安全风险可见但隔离、确认、敏感数据处理和恢复措施不完整,扣分较多。
文档提供了多条 C# 工作流和基础错误处理,但未提供该技能专属测试或可执行验证。示例使用 GetDefaultSubscriptionAsync().Result,可能造成异步阻塞;环境变量虽声明为必需却未在示例中读取,且 API/SDK 版本信息存在潜在不一致。静态证据仅支持有限的 happy path,异常输入和失败诊断不足,因此限制在 10 分以下。
触发词、目标 SDK、Flexible Server 范围以及服务器、数据库、防火墙、备份、HA 等场景较明确,也说明 Single Server 已弃用。但未明确不适用场景、生产与开发环境边界、区域/版本限制或中文使用支持;对中国大陆网络和 Azure 服务可达性没有说明,故不能给满分。
技能具有 front matter、安装说明、认证、资源层级、核心工作流、类型表、SKU/版本/HA 参考、最佳实践、错误处理和相关 SDK,许可证和作者元数据清晰。缺少 FAQ、已知限制、变更日志、维护责任和明确更新路径;版本元数据为 1.0.0,而正文标注 SDK v1.2.0 和 preview API,维护一致性不足,因此扣分。
内容覆盖常见 PostgreSQL Flexible Server 管理任务,代码片段对熟悉 Azure SDK 的开发者有直接参考价值。但没有该技能专属输出验收、构建/运行证据或完整参数前置条件;示例含硬编码密钥、固定资源名、区域和可能不安全的 TLS/防火墙设置,仍需较多审查和改写。按静态校准,核心价值可见但结果正确性和直接可用性证据有限。
技能包含大量代码、类型和版本声明,仓库还提供通用测试 harness 与 CI 配置,但提供的材料没有该技能对应的 acceptance criteria、测试套件、CI 覆盖或第三方执行结果。关键 API、版本和行为无法仅凭静态阅读独立确认,因此仅给有限可审计性分数。
- 不要直接复制示例中的管理员密码或连接字符串;应使用安全的机密存储、令牌认证并避免 Trust Server Certificate=true。
- 删除、停止、重启、故障转移、扩容、恢复和防火墙变更会产生外部影响,执行前应增加明确确认、权限审查、备份和恢复方案。
- 在采用前应针对目标 Azure.ResourceManager.PostgreSql 版本编译并验证所有 API、枚举、区域和 PostgreSQL 版本;当前材料未提供该技能专属测试证据。
- 需确认目标环境可访问 Azure 服务,并补充中国大陆网络、区域可用性和合规要求说明。
它能做什么 & 适用场景
该技能为 Azure.ResourceManager.PostgreSql SDK 提供面向 PostgreSQL Flexible Server 的 .NET 指导。它涵盖服务器、数据库、防火墙规则、配置、备份、高可用、Entra ID 管理员、只读副本以及启停和删除操作。内容包含 Azure 身份验证、资源层级、常用 SDK 类型、错误处理和连接字符串示例。它适合需要通过 Azure Resource Manager 自动化 PostgreSQL 基础设施的 .NET 开发者;不适用于已弃用的 Single Server。
指导安装 Azure.ResourceManager.PostgreSql 和 Azure.Identity,使用 ArmClient 连接 Azure,并通过 C# 示例创建、更新、列出和删除 PostgreSQL Flexible Server。它还演示数据库、IP 防火墙规则、服务器参数、备份、时间点恢复、只读副本、Entra ID 管理员、高可用和服务器扩缩容的管理方式,并提供密码或 Entra ID 令牌连接 PostgreSQL 的示例。
- 负责 Azure 基础设施的 .NET 工程师,需要创建 PostgreSQL Flexible Server、设置 SKU、存储和备份策略。
- 平台工程团队需要批量管理资源组中的 PostgreSQL 服务器、数据库和防火墙规则。
- 生产系统需要配置区域冗余高可用、Entra ID 管理员或只读副本。
- 开发或测试团队需要通过 SDK 停止和启动服务器,或从备份执行时间点恢复。
- 应用团队需要区分资源管理 SDK 与 Npgsql 数据访问,并生成 Azure PostgreSQL 连接配置。
优缺点一览
- 覆盖 PostgreSQL Flexible Server 从创建到删除的完整资源管理流程。
- 提供可复制的 C# 异步示例,包含身份验证、错误处理和连接方式。
- 明确推荐 DefaultAzureCredential、Entra ID、高可用、备份和只读副本等配置方向。
- 仓库以 MIT 许可证发布,并持续开发和扩展。
- 只聚焦 PostgreSQL Flexible Server,不覆盖 Single Server;后者已弃用并计划退役。
- 示例包含占位符密码和订阅信息,实际部署需要自行处理密钥与环境配置。
- 源材料没有提供该单项技能的独立测试结果或平台覆盖证明。
- 当前 API 版本标为 2023-12-01-preview,且包版本为 v1.2.0 GA。
如何安装
运行 npx skills add microsoft/skills,在安装向导中选择此技能。手动方式是克隆 https://github.com/microsoft/skills,然后将 .github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-postgresql-dotnet/ 复制到目标 Agent 的技能目录,例如 GitHub Copilot 使用的 .github/skills/。技能集合采用 MIT 许可证。
如何使用
在已安装该技能的编码 Agent 中输入例如“使用 Azure.ResourceManager.PostgreSql 和 DefaultAzureCredential 创建一个 PostgreSQL Flexible Server,配置数据库、防火墙和区域冗余高可用”。触发词包括 PostgreSQL、PostgreSqlFlexibleServer、Azure Database for PostgreSQL、PostgreSQL firewall、PostgreSQL backup 和 Postgres。使用前需准备 Azure 订阅、资源组和服务器名称;示例还使用 AZURE_SUBSCRIPTION_ID、AZURE_RESOURCE_GROUP、AZURE_POSTGRESQL_SERVER_NAME 等环境变量。
对比同类
该技能使用 Azure.ResourceManager.PostgreSql 管理 Azure 资源;如果目标是应用层 PostgreSQL 数据访问,源材料列出的 Npgsql 或 Npgsql.EntityFrameworkCore.PostgreSQL 更匹配。Azure.ResourceManager.MySql 是相关的 MySQL 管理 SDK,不是本技能的 PostgreSQL 实现。