本快速入门介绍如何使用.NET中的Azure SDK库创建、更新和删除 Azure PostgreSQL 灵活服务器。 Azure Database for PostgreSQL 是一项托管服务,可用于在云中运行、管理和缩放高度可用的 PostgreSQL 数据库。 通过使用 .NET SDK,可以在服务器上预配Azure Database for PostgreSQL灵活服务器、多个服务器或多个数据库。
Prerequisites
- 具有活动订阅的 Azure 帐户。
- 快速入门:创建Azure Database for PostgreSQL灵活服务器。
- 在本地计算机上安装.NET框架。 从此处下载它。
- Azure CLI 已安装在您的本地计算机上。
Azure.ResourceManager.PostgreSql 库
库Azure.ResourceManager.PostgreSql是.NET Azure SDK的一部分。 它提供了在 Azure 中管理 PostgreSQL 灵活服务器的功能。 使用此库,可以执行与 PostgreSQL 灵活服务器相关的各种操作,包括但不限于:
创建 Azure PostgreSQL 灵活服务器:
可以使用指定配置(例如位置、SKU、存储和版本)创建新的灵活服务器。更新 Azure PostgreSQL 灵活服务器:
可以更新现有的 PostgreSQL 灵活服务器,包括更改管理员登录名、密码、SKU、存储和版本之类的配置。删除 Azure PostgreSQL 灵活服务器:
可以删除现有的 Azure PostgreSQL 灵活服务器。检索 Azure PostgreSQL 信息:
可以检索有关现有的 PostgreSQL 灵活服务器的详细信息,包括其配置、状态和其他元数据。管理数据库:
可以在 Azure PostgreSQL 灵活服务器中创建、更新、删除和检索数据库。管理防火墙规则:
可以为实例创建、更新、删除和检索防火墙规则来控制访问。管理配置设置:
可以管理 Azure PostgreSQL 灵活服务器的配置设置,包括检索和更新参数。
登录到 Azure
在使用.NET Azure SDK创建、更新或删除Azure Database for PostgreSQL灵活服务器之前,请使用Azure CLI登录到Azure帐户。
运行身份验证命令
使用 az CLI 向帐户进行身份验证。
az login
安装所需程序包
使用以下命令安装必要的包:
dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager
dotnet add package Azure.ResourceManager.PostgreSql
安装这些包后,请确保在执行生成并运行命令之前, .csproj 该文件中列出了每个包。
若要了解有关该文件的详细信息 .csproj ,请参阅 Web 部署。
注释
如果存在与.NET的初始设置相关的问题,请参阅指南。
创建项目
按照链接中所述的步骤创建新的.NET项目。
创建服务器
若要创建 PostgreSQL 灵活服务器,请创建包含以下代码的文件 CreateServer.cs 。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace CreatePostgreSqlFlexibleServer
{
class Program
{
static async Task Main(string[] args)
{
TokenCredential credential = new DefaultAzureCredential();
ArmClient armClient = new ArmClient(credential, new ArmClientOptions { Environment = ArmEnvironment.AzureChina });
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
// Replace with your desired region
string location = "region-name";
// Create the resource identifier for the resource group
ResourceIdentifier resourceGroupId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroup = await armClient.GetResourceGroupResource(resourceGroupId).GetAsync();
// Prepare server data
var serverData = new PostgreSqlFlexibleServerData(location)
{
AdministratorLogin = "admin-username",
AdministratorLoginPassword = "<admin-password>",
Version = "pgVersion",
Storage = new PostgreSqlFlexibleServerStorage() { StorageSizeInGB = 128 },
Sku = new PostgreSqlFlexibleServerSku("Standard_B1ms", PostgreSqlFlexibleServerSkuTier.Burstable),
};
try
{
ArmOperation<PostgreSqlFlexibleServerResource> operation = await resourceGroup.GetPostgreSqlFlexibleServers().CreateOrUpdateAsync(Azure.WaitUntil.Completed, serverName, serverData);
PostgreSqlFlexibleServerResource serverResource = operation.Value;
Console.WriteLine($"PostgreSQL flexible server '{serverResource.Data.Name}' created successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
此示例演示如何使用 Azure 资源管理器 创建 PostgreSQL 灵活服务器。 PostgreSql 库。 同样,你可以使用库提供的其他方法来管理 PostgreSQL 灵活服务器和相关资源。
将代码中的以下参数替换为你的数据:
-
subscription-id:Azure订阅 ID。 -
resource-group-name:资源组的名称。 -
server-name:PostgreSQL 服务器的唯一名称。 -
location:服务器的 Azure 区域。 -
admin-username:管理员用户名。 -
admin-password:管理员密码。 -
pgVersion:PostgreSQL 版本(例如 11、12、13、14、15 或 16)。
Authentication
该DefaultAzureCredential类尝试使用环境变量、托管标识或Azure CLI等方法进行身份验证。 确保配置其中一种方法。
运行该文件
若要运行该文件,请使用 .NET CLI 生成和执行.cs文件。 此过程会根据代码启动 PostgreSQL 实例的创建、更新或删除。
每次更改.cs文件时,生成并运行该文件。
使用以下命令运行.cs文件:
dotnet build
dotnet run
注释
运行此代码将启动实例创建过程,此过程可能需要几分钟才能完成。
查看已部署的资源
若要验证部署并查看已部署的资源,请使用Azure门户、Azure CLI、Azure PowerShell和其他工具。
更新服务器数据
创建文件 UpdateServerData.cs 。
还可以使用 Azure PostgreSQL .NET SDK 更新服务器数据。
例如,可以使用该方法 CreateOrUpdateAsync 更新版本、管理员用户名、密码和其他设置。
CreateOrUpdateAsync如果没有具有相同名称的实例,则该方法会创建一个新实例,或者使用新服务器数据更新现有实例(如果存在)。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace UpdateServerData
{
class Program
{
static async Task Main(string[] args)
{
TokenCredential credential = new DefaultAzureCredential();
ArmClient armClient = new ArmClient(credential, new ArmClientOptions { Environment = ArmEnvironment.AzureChina });
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
// Replace with your desired region
string location = "region-name";
ResourceIdentifier resourceGroupId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroup = await armClient.GetResourceGroupResource(resourceGroupId).GetAsync();
// Prepare server data
var serverData = new PostgreSqlFlexibleServerData(location)
{
// Updating version from a lower version to a higher version
Version = "16",
};
try
{
ArmOperation<PostgreSqlFlexibleServerResource> operation = await resourceGroup.GetPostgreSqlFlexibleServers().CreateOrUpdateAsync(Azure.WaitUntil.Completed, serverName, serverData);
PostgreSqlFlexibleServerResource serverResource = operation.Value;
Console.WriteLine($"PostgreSQL flexible server '{serverResource.Data.Name}' updated successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
运行该文件,并使用 UpdateServerData.cs 文件查看资源中的更改。
清理资源
可以通过删除具有.NET Azure SDK的灵活服务器来清理创建的灵活服务器。
创建一个 DeleteServer.cs 文件,并添加以下代码。
using System;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.PostgreSql.FlexibleServers;
using Azure.ResourceManager.PostgreSql.FlexibleServers.Models;
namespace DeleteServer
{
class Program
{
static async Task Main(string[] args)
{
// Replace with your subscription ID
string subscriptionId = "subscription-id";
// Replace with your resource group name
string resourceGroupName = "resource-group-name";
// Replace with a unique server name
string serverName = "server-name";
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential, new ArmClientOptions { Environment = ArmEnvironment.AzureChina });
try
{
// Get the PostgreSQL flexible server resource
var postgresServerResourceId = PostgreSqlFlexibleServerResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, serverName);
var postgresServer = armClient.GetPostgreSqlFlexibleServerResource(postgresServerResourceId);
// Delete the server
await postgresServer.DeleteAsync(Azure.WaitUntil.Completed);
Console.WriteLine($"PostgreSQL flexible server '{serverName}' deleted successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}
}
将以下参数替换为你自己的数据:
-
subscription-id:你自己的订阅 ID。 -
resource-group-name:要使用的资源组的名称。 如果不存在,该脚本将创建新的资源组。 -
server-name:所创建的Azure数据库灵活服务器的名称。
还可以删除通过门户、CLI 或 PowerShell 创建的资源组。 如果要使用 CLI 或 PowerShell 将其删除,请按照 CLI 和 PowerShell 部分中提到的步骤操作。
将占位符替换为你的详细信息,然后运行该文件。
或者,可以使用以下命令删除资源组:
- Azure CLI:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - Azure 门户:导航到资源组并删除它。