Поделиться через


Краткое руководство. Использование библиотек Azure (SDK) в .NET для создания, обновления и удаления экземпляра База данных Azure для PostgreSQL

Из этого краткого руководства вы узнаете, как использовать библиотеки пакета SDK Azure в .NET для создания, обновления и удаления экземпляра гибкого сервера Azure PostgreSQL. База данных Azure для PostgreSQL гибкий сервер — это управляемая служба, которая позволяет запускать, управлять и масштабировать высокодоступные базы данных PostgreSQL в облаке. С помощью пакета SDK для .NET можно подготовить гибкий экземпляр сервера База данных Azure для PostgreSQL, несколько серверов или несколько баз данных на сервере.

Необходимые компоненты

Библиотека Azure.ResourceManager.PostgreSql

Библиотека Azure.ResourceManager.PostgreSql входит в состав пакета SDK Azure для .NET и предоставляет функциональные возможности для управления гибкими серверами PostgreSQL в Azure. С помощью этой библиотеки можно выполнять различные операции, связанные с гибкими серверами PostgreSQL, включая не только следующие:

  1. Создание гибких серверов Azure PostgreSQL:
    Вы можете создать новые экземпляры гибких серверов с указанными конфигурациями, такими как расположение, SKU, хранилище и версия.

  2. Обновление гибких серверов Azure PostgreSQL:
    Вы можете обновить существующие гибкие серверы PostgreSQL, включая изменение конфигураций, таких как имя входа администратора, пароль, номер SKU, хранилище и версия.

  3. Удаление гибких серверов Azure PostgreSQL:
    Вы можете удалить существующие гибкие экземпляры сервера Azure PostgreSQL.

  4. Получение сведений о гибком сервере Azure PostgreSQL:
    Вы можете получить сведения о существующих гибких серверах PostgreSQL, включая их конфигурации, состояние и другие метаданные.

  5. Управление базами данных:
    Вы можете создавать, обновлять, удалять и извлекать базы данных в гибком экземпляре сервера Azure PostgreSQL.

  6. Управление правилами брандмауэра:
    Вы можете создавать, обновлять, удалять и извлекать правила брандмауэра для экземпляра для управления доступом.

  7. Управление параметрами конфигурации:
    Вы можете управлять параметрами конфигурации для гибкого экземпляра сервера Azure PostgreSQL, включая получение и обновление параметров сервера.

Вход в Azure

Прежде чем использовать пакет SDK Azure для .NET для создания, обновления или удаления База данных Azure для PostgreSQL гибкого экземпляра сервера, необходимо войти в учетную запись Azure с помощью Azure CLI.

Выполните команду входа

Войдите в учетную запись с помощью az CLI

az login

Установка необходимых пакетов

Установите необходимые пакеты с помощью следующих команд:

dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager
dotnet add package Azure.ResourceManager.PostgreSql

После установки этих пакетов убедитесь, что каждый em указан в .csproj файле befoexecutingute команды сборки и выполнения.

Чтобы узнать больше о .csproj файле, посетите веб-развертывание.

Примечание.

Если у вас возникли проблемы, связанные с начальной настройкой для .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);
            // 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}");
            }
   }
  }
}

В этом примере показано создание гибкого сервера PostgreSQL с помощью Azure Resource Manager. Библиотека PostgreSql. Вы также можете использовать другие методы, предоставляемые библиотекой для управления гибкими серверами и связанными ресурсами PostgreSQL.

Замените следующие параметры в коде данными:

  • subscription-id: идентификатор подписки Azure.
  • resource-group-name: имя группы ресурсов.
  • server-name: уникальное имя сервера PostgreSQL.
  • location: регион Azure для сервера.
  • admin-username: имя администратора.
  • admin-password: пароль администратора.
  • pgVersion: Версия PostgreSQL (например, 11, 12, 13, 14, 15 или 16).

Проверка подлинности

Класс DefaultAzureCredential пытается выполнить проверку подлинности с помощью таких методов, как переменные среды, управляемые удостоверения или Azure CLI. Убедитесь, что настроен один из этих методов.

Запустите файл.

Чтобы запустить файл, необходимо создать и выполнить файл .cs с помощью .NET CLI. Это инициирует процесс создания, обновления или удаления для экземпляра PostgreSQL согласно коду.

Каждый раз, когда вы вносите изменения в файл .cs, не забудьте создать и затем запустить файл

Запустите файл .cs с помощью приведенных ниже команд

dotnet build
dotnet run

Примечание.

Запуск этого кода инициирует процесс создания экземпляра, который может занять несколько минут.

Просмотр развернутых ресурсов

Вы можете просмотреть развернутый гибкий экземпляр сервера с помощью портал Azure, Azure CLI, Azure PowerShell и различных других средств для проверки развертывания и просмотра развернутых ресурсов.

Обновление данных сервера

Создайте файл UpdateServerData.cs .

Вы также можете обновить данные сервера с помощью пакета SDK для гибкого сервера .NET для Azure PostgreSQL.

Например, можно обновить версию, имя пользователя администратора, пароль и т. д., используя 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);
            // 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.

Очистка ресурсов

Вы можете очистить созданные гибкие экземпляры сервера, удалив гибкий экземпляр сервера с помощью пакета SDK Azure для .NET.

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);
            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: собственный идентификатор подписки.
  • resource-group-name: имя группы ресурсов, которую вы хотите использовать. Сценарий создает новую группу ресурсов, если она не существует.
  • server-name: имя созданного экземпляра гибкого сервера базы данных Azure.

Вы также можете удалить группу ресурсов, созданную с помощью портала, интерфейса командной строки или PowerShell. Выполните действия, описанные в разделе CLI и PowerShell, если вы хотите удалить его с помощью интерфейса командной строки или PowerShell.

Замените заполнители своими сведениями и запустите файл.

Кроме того, можно удалить группу ресурсов с помощью:

  • Azure CLI: az group delete --name <resource_group>
  • PowerShell: Remove-AzResourceGroup -Name <resource_group>
  • портал Azure. Перейдите к группе ресурсов и удалите ее.