Tworzenie instancji Azure Database for PostgreSQL przy użyciu SDK .NET

W tej instrukcji "Szybki start" dowiesz się, jak używać bibliotek SDK Azure na platformie .NET do tworzenia, aktualizowania i usuwania elastycznego serwera Azure PostgreSQL. Azure Database for PostgreSQL to zarządzana usługa, która umożliwia uruchamianie i skalowanie baz danych PostgreSQL o wysokiej dostępności w chmurze oraz zarządzanie nimi. Za pomocą zestawu SDK .NET można skonfigurować elastyczne wystąpienie serwera usługi Azure Database for PostgreSQL, wiele serwerów lub wiele baz danych na serwerze.

Wymagania wstępne

Biblioteka Azure.ResourceManager.PostgreSql

Biblioteka Azure.ResourceManager.PostgreSql jest częścią zestawu Azure SDK dla platformy .NET i udostępnia funkcje zarządzania wystąpieniami serwera elastycznego PostgreSQL na platformie Azure. Dzięki tej bibliotece można wykonywać różne operacje związane z instancjami elastycznego serwera PostgreSQL, takimi jak:

  1. Tworzenie elastycznych serwerów usługi Azure PostgreSQL:
    Możesz utworzyć nowe elastyczne wystąpienia serwera z przykładowymi konfiguracjami, takimi jak lokalizacja, SKU, magazyn i wersja.

  2. Aktualizowanie elastycznych wystąpień serwerowych w Azure PostgreSQL:
    Istniejące wystąpienia elastycznego serwera PostgreSQL można aktualizować, w tym zmieniać konfiguracje, takie jak identyfikator logowania administratora, hasło, SKU, przechowywanie i wersja.

  3. Usuwanie wystąpień serwera elastycznego usługi Azure PostgreSQL:
    Możesz usunąć istniejące wystąpienia elastycznego serwera Azure PostgreSQL.

  4. Pobieranie informacji o usłudze Azure PostgreSQL:
    Możesz pobrać szczegóły dotyczące istniejących serwerów PostgreSQL elastycznych, w tym ich konfiguracji, statusu i innych metadanych.

  5. Zarządzanie bazami danych:
    W ramach wystąpienia serwera elastycznego usługi Azure PostgreSQL można tworzyć, aktualizować, usuwać i pobierać bazy danych.

  6. Zarządzanie regułami zapory:
    Możesz tworzyć, aktualizować, usuwać i pobierać zasady zapory dla instancji w celu kontrolowania dostępu.

  7. Zarządzanie ustawieniami konfiguracji:
    Możesz zarządzać ustawieniami konfiguracji dla wystąpienia serwera elastycznego usługi Azure PostgreSQL, w tym pobierania i aktualizowania parametrów.

Zaloguj się do Azure

Przed użyciem Azure SDK dla .NET do tworzenia, aktualizowania lub usuwania wystąpienia elastycznego serwera Azure Database for PostgreSQL należy zalogować się do konta Azure przy użyciu Azure CLI.

Uruchom polecenie logowania

Zaloguj się do konta przy użyciu polecenia az CLI

az login

Instalowanie wymaganych pakietów

Zainstaluj niezbędne pakiety przy użyciu następujących poleceń:

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

Po zainstalowaniu tych pakietów upewnij się, że każdy element em jest wymieniony w pliku .csproj przed wykonaniem poleceń kompilacji i uruchamiania.

Aby dowiedzieć się więcej o pliku .csproj, odwiedź stronę Wdrażanie w sieci Web.

Note

Jeśli masz problemy związane z początkową konfiguracją .NET, postępuj zgodnie z tym przewodnikiem.

Tworzenie projektu

Utwórz nowy projekt platformy .NET, wykonując kroki wymienione w tym linku

Tworzenie serwera

Aby utworzyć wystąpienie serwera elastycznego PostgreSQL, utwórz plik o nazwie CreateServer.cs z następującym kodem.

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

W tym przykładzie pokazano tworzenie elastycznego wystąpienia serwera PostgreSQL przy użyciu usługi Azure Resource Manager. Biblioteka PostgreSql. Podobnie można użyć innych metod udostępnianych przez bibliotekę do zarządzania wystąpieniami serwera elastycznego PostgreSQL i powiązanymi zasobami.

Zastąp następujące parametry w kodzie danymi:

  • subscription-id: Identyfikator subskrypcji platformy Azure.
  • resource-group-name: nazwa grupy zasobów.
  • server-name: unikatowa nazwa serwera PostgreSQL.
  • location: region świadczenia usługi Azure dla serwera.
  • admin-username: nazwa użytkownika administratora.
  • admin-password: hasło administratora.
  • pgVersion: wersja bazy danych PostgreSQL (na przykład 11, 12, 13, 14, 15 lub 16).

Authentication

Klasa DefaultAzureCredential próbuje uwierzytelnić się przy użyciu metod, takich jak zmienne środowiskowe, tożsamości zarządzane lub interfejs wiersza polecenia platformy Azure. Upewnij się, że skonfigurowano jedną z tych metod.

Uruchamianie pliku

Aby uruchomić plik, należy skompilować i wykonać plik .cs przy użyciu interfejsu wiersza polecenia platformy .NET. Spowoduje to zainicjowanie procesu tworzenia, aktualizacji lub usuwania wystąpienia bazy danych PostgreSQL zgodnie z kodem.

Za każdym razem, gdy wprowadzisz jakiekolwiek zmiany w pliku .cs, nie zapomnij skompilować, a następnie uruchomić plik

Uruchom plik .cs przy użyciu poniższych poleceń

dotnet build
dotnet run

Note

Uruchomienie tego kodu spowoduje zainicjowanie procesu tworzenia wystąpienia, co może potrwać kilka minut.

Przeglądanie wdrożonych zasobów

Możesz przejrzeć wdrożone wystąpienie serwera elastycznego za pomocą portalu Azure, Azure CLI, Azure PowerShell i różnych innych narzędzi, aby zweryfikować wdrożenie i sprawdzić wdrożone zasoby.

Aktualizowanie danych serwera

Utwórz plik UpdateServerData.cs.

Możesz również zaktualizować dane serwera przy użyciu zestawu SDK platformy .NET usługi Azure PostgreSQL.

Możesz na przykład zaktualizować wersję, nazwę użytkownika administratora, hasło itp., używając CreateOrUpdateAsync metody .

Metoda CreateOrUpdateAsync tworzy nowe wystąpienie, jeśli nie ma wystąpienia o tej samej nazwie lub aktualizuje istniejące wystąpienie przy użyciu nowych danych serwera, jeśli istnieje.

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

Uruchom plik i przejrzyj zmiany wprowadzone w zasobie za pomocą pliku "UpdateServerData.cs".

Uprzątnij zasoby

Utworzone wystąpienia serwera elastycznego można wyczyścić, usuwając wystąpienie serwera elastycznego za pomocą zestawu Azure SDK dla platformy .NET.

DeleteServer.cs Utwórz plik i dodaj następujący kod.

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

Zastąp następujące parametry danymi:

  • subscription-id: Własny identyfikator subskrypcji.
  • resource-group-name: nazwa grupy zasobów, której chcesz użyć. Skrypt tworzy nową grupę zasobów, jeśli nie istnieje.
  • server-name: nazwa utworzonego wystąpienia elastycznego serwera bazy danych Azure.

Możesz również usunąć grupę zasobów utworzoną za pomocą portalu, interfejsu wiersza polecenia lub programu PowerShell. Wykonaj kroki wymienione w sekcji interfejsu wiersza polecenia i programu PowerShell, jeśli chcesz go usunąć przy użyciu interfejsu wiersza polecenia lub programu PowerShell.

Zastąp elementy zastępcze swoimi szczegółami i uruchom plik.

Alternatywnie możesz usunąć grupę zasobów przy użyciu:

  • Interfejs wiersza polecenia platformy Azure: az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure portal: przejdź do grupy zasobów i usuń ją.