Creación de una instancia de Azure Database for PostgreSQL mediante el SDK de .NET

En este inicio rápido, aprenderá a usar las bibliotecas de SDK de Azure en .NET para crear, actualizar y eliminar una instancia de servidor flexible de Azure PostgreSQL. Azure Database for PostgreSQL es un servicio administrado que permite ejecutar, administrar y escalar bases de datos PostgreSQL de alta disponibilidad en la nube. Mediante el SDK de .NET, puede aprovisionar una instancia de servidor flexible de Azure Database for PostgreSQL, varios servidores o varias bases de datos en un servidor.

Prerequisites

Biblioteca de Azure.ResourceManager.PostgreSql

La Azure.ResourceManager.PostgreSql biblioteca forma parte del SDK de Azure para .NET y proporciona funcionalidad para administrar instancias de servidor flexible de PostgreSQL en Azure. Con esta biblioteca, puede realizar varias operaciones relacionadas con instancias de servidor flexible de PostgreSQL, incluidas, entre otras:

  1. Creación de instancias de servidor flexible de Azure PostgreSQL:
    Puede crear nuevas instancias de servidor flexibles con configuraciones especificadas, como ubicación, SKU, almacenamiento y versión.

  2. Actualización de instancias de servidor flexible de Azure PostgreSQL:
    Puede actualizar las instancias de servidor flexible de PostgreSQL existentes, incluidas las configuraciones cambiantes, como inicio de sesión de administrador, contraseña, SKU, almacenamiento y versión.

  3. Eliminación de instancias de servidor flexible de Azure PostgreSQL:
    Puede eliminar instancias de servidor flexibles de Azure PostgreSQL existentes.

  4. Recuperación de información de Azure PostgreSQL:
    Puede recuperar detalles sobre las instancias de servidor flexible de PostgreSQL existentes, incluidas sus configuraciones, estado y otros metadatos.

  5. Administración de bases de datos:
    Puede crear, actualizar, eliminar y recuperar bases de datos dentro de la instancia de servidor flexible de Azure PostgreSQL.

  6. Administración de reglas de firewall:
    Puede crear, actualizar, eliminar y recuperar reglas de firewall de una instancia para controlar el acceso.

  7. Administración de opciones de configuración:
    Puede administrar las opciones de configuración de una instancia de servidor flexible de Azure PostgreSQL, incluida la recuperación y actualización de parámetros.

Iniciar sesión en Azure

Antes de utilizar el SDK de Azure para .NET para crear, actualizar o eliminar una instancia de servidor flexible de Azure Database for PostgreSQL, debe iniciar sesión en su cuenta de Azure mediante la CLI de Azure.

Ejecute el comando de inicio de sesión

Inicie sesión en su cuenta a través de la CLI de Azure

az login

Instalación de los paquetes requeridos

Instale los paquetes necesarios con los comandos siguientes:

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

Después de instalar estos paquetes, compruebe que cada em aparece en el archivo .csproj antes de ejecutar los comandos de compilar y ejecutar (build y run).

Para obtener más información sobre el archivo .csproj, vaya a Desarrollo web.

Note

Si tiene problemas relacionados con la configuración inicial de .NET, siga esta guía.

Creación del proyecto

Cree un nuevo proyecto de .NET siguiendo los pasos que encontrará en este vínculo

Creación del servidor

Para crear una instancia de servidor flexible de PostgreSQL, cree un archivo llamado CreateServer.cs con el siguiente código.

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}");
            }
   }
  }
}

En este ejemplo se muestra cómo crear una instancia de servidor flexible de PostgreSQL mediante Azure Resource Manager. Biblioteca PostgreSql. De forma similar, puede usar otros métodos proporcionados por la biblioteca para administrar las instancias de servidor flexible de PostgreSQL y los recursos relacionados.

Sustituya los siguientes parámetros del código por sus datos:

  • subscription-id: Su ID de suscripción de Azure.
  • resource-group-name: nombre del grupo de recursos.
  • server-name: un nombre único para su servidor PostgreSQL.
  • location: la región de Azure para su servidor.
  • admin-username: nombre de usuario del administrador.
  • admin-password: la contraseña de administrador.
  • pgVersion: la versión de PostgreSQL (por ejemplo, 11, 12, 13, 14, 15 o 16).

Autenticación

La clase DefaultAzureCredential intenta autenticarse utilizando métodos como variables de entorno, identidades administradas o la CLI de Azure. Asegúrese de tener configurado alguno de estos métodos.

Ejecute el archivo.

Para ejecutar el archivo, debe compilar y ejecutar el archivo .cs mediante la CLI de .NET. Esto inicia el proceso de creación, actualización o eliminación de la instancia de PostgreSQL según el código.

Cada vez que realice algún cambio en el archivo .cs, no olvide compilar y luego ejecutar el archivo

Ejecute el archivo .cs con los siguientes comandos

dotnet build
dotnet run

Note

Al ejecutar este código, se iniciará el proceso de creación de la instancia, que puede tardar unos minutos.

Revisión de los recursos implementados

Puede revisar la instancia de servidor flexible implementada a través de Azure Portal, la CLI de Azure, Azure PowerShell y otras herramientas para validar la implementación y revisar los recursos implementados.

Actualizar los datos del servidor

Cree un archivo UpdateServerData.cs .

También puede actualizar los datos del servidor mediante el SDK de .NET de Azure PostgreSQL.

Por ejemplo, puede actualizar la versión, el nombre de usuario de administrador, la contraseña, etc., a través del método CreateOrUpdateAsync.

El método CreateOrUpdateAsync crea una nueva instancia si no existe una instancia con el mismo nombre o actualiza la instancia existente con los nuevos datos del servidor si existe.

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}");
            }
   }
  }
}

Ejecute el archivo y revise los cambios realizados en el recurso con el archivo "UpdateServerData.cs".

Limpieza de recursos

Puede limpiar las instancias de servidor flexible creadas si elimina la instancia de servidor flexible con el SDK de Azure para .NET.

Cree un archivo DeleteServer.cs y agregue el siguiente código.

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}");
            }
   }
  }
}

Reemplace los parámetros siguientes por sus datos:

  • subscription-id: su propia Id. de suscripción.
  • resource-group-name: el nombre del grupo de recursos que desea utilizar. El script crea un nuevo grupo de recursos si no existe.
  • server-name: el nombre de la instancia de servidor flexible de base de datos Azure que ha creado.

También puede eliminar el grupo de recursos creado a través del Portal, CLI o PowerShell. Siga los pasos que figuran en la sección CLI y PowerShell si desea eliminarlo a través de la CLI o PowerShell.

Reemplace los marcadores de posición por sus datos y ejecute el archivo.

También puede eliminar el grupo de recursos utilizando:

  • CLI de Azure:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure Portal: vaya al grupo de recursos y elimínelo.