Creare un'istanza di Database di Azure per PostgreSQL con .NET SDK

Questa guida introduttiva illustra come usare le librerie di Azure SDK in .NET per creare, aggiornare ed eliminare un'istanza del server flessibile di Azure PostgreSQL. Database di Azure per PostgreSQL è un servizio gestito che consente di eseguire, gestire e ridimensionare database PostgreSQL a disponibilità elevata nel cloud. Utilizzando l'SDK .NET, è possibile eseguire il provisioning di un'istanza server flessibile Database di Azure per PostgreSQL, più server o più database su un server.

Prerequisiti

Libreria Azure.ResourceManager.PostgreSql

La Azure.ResourceManager.PostgreSql libreria fa parte di Azure SDK per .NET e fornisce funzionalità per la gestione delle istanze del server flessibile PostgreSQL in Azure. Con questa libreria è possibile eseguire varie operazioni correlate alle istanze del server flessibile di PostgreSQL, tra cui, a titolo esemplificativo:

  1. Creazione di istanze del server flessibile di Azure PostgreSQL:
    È possibile creare nuove istanze di server flessibili con configurazioni specificate, ad esempio posizione, SKU, archiviazione e versione.

  2. Aggiornamento delle istanze del server flessibile di Azure PostgreSQL:
    È possibile aggiornare le istanze del server flessibile PostgreSQL esistenti, incluse le modifiche alle configurazioni, ad esempio l'accesso dell'amministratore, la password, lo SKU, l'archiviazione e la versione.

  3. Eliminazione di istanze del server flessibile di Azure PostgreSQL:
    È possibile eliminare le istanze del server flessibile PostgreSQL di Azure esistenti.

  4. Recupero di informazioni su PostgreSQL di Azure:
    È possibile recuperare informazioni dettagliate sulle istanze del server flessibile PostgreSQL esistenti, incluse le configurazioni, lo stato e altri metadati.

  5. Gestione dei database:
    È possibile creare, aggiornare, eliminare e recuperare database all'interno dell'istanza del server flessibile di Azure PostgreSQL.

  6. Gestione delle regole del firewall:
    È possibile creare, aggiornare, eliminare e recuperare regole del firewall per un'istanza per controllare l'accesso.

  7. Gestione delle impostazioni di configurazione dell'app:
    È possibile gestire le impostazioni di configurazione per un'istanza del server flessibile di Azure PostgreSQL, incluso il recupero e l'aggiornamento dei parametri.

Accedere ad Azure

Prima di usare Azure SDK per .NET per creare, aggiornare o eliminare un'istanza del server flessibile Database di Azure per PostgreSQL, è necessario accedere all'account Azure usando l'interfaccia della riga di comando di Azure.

Eseguire il comando di accesso

Accedere all'account usando az CLI

az login

Installare i pacchetti necessari

Installare i pacchetti necessari con i comandi seguenti:

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

Dopo aver installato questi pacchetti, assicurarsi che ogni em sia elencato nel .csproj file befoexecutingute la compilazione ed eseguire i comandi.

Per altre informazioni sul file .csproj, vedere Distribuzione Web.

Note

Se si verificano problemi relativi alla configurazione iniziale per .NET, seguire questa guida.

Creare il progetto

Creare un nuovo progetto .NET seguendo i passaggi indicati in questo collegamento

Creare il server

Per creare un'istanza del server flessibile PostgreSQL, creare un file denominato CreateServer.cs con il codice seguente.

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

Questo esempio illustra la creazione di un'istanza del server flessibile PostgreSQL usando Azure Resource Manager. Libreria PostgreSql. È possibile usare in modo analogo altri metodi forniti dalla libreria per gestire le istanze del server flessibile PostgreSQL e le risorse correlate.

Sostituire i parametri seguenti nel codice con i dati:

  • subscription-id: ID della sottoscrizione di Azure.
  • resource-group-name: nome del gruppo di risorse.
  • server-name: nome univoco per il server PostgreSQL.
  • location: area di Azure per il server.
  • admin-username: nome utente dell'amministratore.
  • admin-password: password amministratore.
  • pgVersion: versione di PostgreSQL (ad esempio, 11, 12, 13, 14, 15 o 16).

Authentication

La classe DefaultAzureCredential tenta di eseguire l'autenticazione usando metodi come variabili di ambiente, identità gestite o interfaccia della riga di comando di Azure. Assicurarsi di avere uno di questi metodi configurati.

Eseguire il file

Per eseguire il file, è necessario compilare ed eseguire il file .cs usando l'interfaccia della riga di comando di .NET. Verrà avviato il processo di creazione, aggiornamento o eliminazione per l'istanza di PostgreSQL in base al codice.

Ogni volta che si apportano modifiche al file .cs, non dimenticare di compilare e quindi eseguire il file

Eseguire il file .cs con i comandi seguenti

dotnet build
dotnet run

Note

L'esecuzione di questo codice avvierà il processo di creazione dell'istanza, che potrebbe richiedere alcuni minuti.

Esaminare le risorse distribuite

È possibile esaminare l'istanza del server flessibile distribuita tramite portale di Azure, interfaccia della riga di comando di Azure, Azure PowerShell e vari altri strumenti per convalidare la distribuzione ed esaminare le risorse distribuite.

Aggiornare i dati del server

Creare un file UpdateServerData.cs.

È anche possibile aggiornare i dati del server usando Azure PostgreSQL .NET SDK.

Ad esempio, è possibile aggiornare la versione, il nome utente amministratore, la password e così via, usando il metodo CreateOrUpdateAsync.

Il metodo CreateOrUpdateAsync crea una nuova istanza se non esiste alcuna istanza con lo stesso nome o aggiorna l'istanza esistente con i nuovi dati del server, se presente.

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

Eseguire il file ed esaminare le modifiche apportate nella risorsa con il file "UpdateServerData.cs".

Pulire le risorse

È possibile pulire le istanze del server flessibili create eliminando l'istanza del server flessibile con Azure SDK per .NET.

Creare un file DeleteServer.cs e incollare il codice seguente.

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

Sostituire i parametri seguenti con dati personalizzati:

  • subscription-id: ID sottoscrizione personale.
  • resource-group-name: nome del gruppo di risorse da usare. Lo script crea un nuovo gruppo di risorse, se non esiste.
  • server-name: nome dell'istanza del server flessibile del database di Azure creata.

È anche possibile eliminare il gruppo di risorse creato tramite il portale, l'interfaccia della riga di comando o PowerShell. Se si vuole eliminarlo usando l'interfaccia della riga di comando o PowerShell, seguire i passaggi indicati nella sezione Interfaccia della riga di comando e PowerShell.

Sostituire i segnaposto con i dettagli ed eseguire il file.

In alternativa, è possibile rimuovere il gruppo di risorse usando:

  • Interfaccia della riga di comando di Azure: az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Portale di Azure: passare al gruppo di risorse ed eliminarlo.