.NET SDK kullanarak PostgreSQL için Azure Veri Tabanı esnek sunucu örneği oluşturma

Bu hızlı başlangıçta, .NET'teki Azure SDK kitaplıklarını kullanarak Bir Azure PostgreSQL esnek sunucu örneği oluşturmayı, güncelleştirmeyi ve silmeyi öğreneceksiniz. PostgreSQL için Azure Veritabanı, bulutta yüksek oranda kullanılabilir PostgreSQL veritabanlarını çalıştırmanıza, yönetmenize ve ölçeklendirmenize olanak tanıyan yönetilen bir hizmettir. .NET SDK'sını kullanarak, PostgreSQL için Azure Veritabanı esnek bir sunucu örneği, birden çok sunucu veya bir sunucuda birden çok veritabanı sağlayabilirsiniz.

Prerequisites

Azure.ResourceManager.PostgreSql kitaplığı

Kitaplık Azure.ResourceManager.PostgreSql , .NET için Azure SDK'sının bir parçasıdır ve Azure'da PostgreSQL esnek sunucu örneklerini yönetmek için işlevsellik sağlar. Bu kitaplıkla PostgreSQL esnek sunucu örnekleriyle ilgili çeşitli işlemler gerçekleştirebilirsiniz; bunlarla sınırlı olmamak üzere:

  1. Azure PostgreSQL esnek sunucu örnekleri oluşturma:
    Konum, SKU, depolama ve sürüm gibi belirtilen yapılandırmalara sahip yeni esnek sunucu örnekleri oluşturabilirsiniz.

  2. Azure PostgreSQL esnek sunucu örneklerini güncelleştirme:
    Yönetici oturum açma bilgileri, parola, SKU, depolama ve sürüm gibi yapılandırmaları değiştirme dahil olmak üzere mevcut PostgreSQL esnek sunucu örneklerini güncelleştirebilirsiniz.

  3. Azure PostgreSQL esnek sunucu örneklerini silme:
    Mevcut Azure PostgreSQL esnek sunucu örneklerini silebilirsiniz.

  4. Azure PostgreSQL Bilgileri Sorgulanıyor:
    Mevcut PostgreSQL esnek sunucu örnekleriyle ilgili yapılandırmalar, durum ve diğer meta veriler gibi ayrıntıları alabilirsiniz.

  5. Veritabanlarını Yönetme:
    Azure PostgreSQL esnek sunucu örneği içinde veritabanları oluşturabilir, güncelleştirebilir, silebilir ve alabilirsiniz.

  6. Güvenlik Duvarı Kurallarını Yönetme:
    Erişimi denetlemek için bir örneğin güvenlik duvarı kurallarını oluşturabilir, güncelleştirebilir, silebilir ve alabilirsiniz.

  7. Yapılandırma Ayarlarını Yönetme:
    Parametreleri alma ve güncelleştirme de dahil olmak üzere Azure PostgreSQL esnek sunucu örneğinin yapılandırma ayarlarını yönetebilirsiniz.

Azure'da oturum açma

PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturmak, güncelleştirmek veya silmek için .NET için Azure SDK'sını kullanmadan önce Azure CLI kullanarak Azure hesabınızda oturum açmanız gerekir.

Oturum açma komutunu çalıştırın

az CLI kullanarak hesabınızda oturum açın

az login

Gerekli paketleri yükleme

Aşağıdaki komutları kullanarak gerekli paketleri yükleyin:

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

Bu paketleri yükledikten sonra, her em öğesinin .csproj dosyasında listelendiğinden emin olun ve ardından derleme ve çalıştırma komutlarını yürütün.

Dosya hakkında daha fazla bilgi edinmek için Web Dağıtımı'nı .csprojziyaret edin.

Note

.NET için ilk kurulumla ilgili sorunlar yaşıyorsanız bu kılavuzu izleyin.

Projeyi oluşturma

Bu bağlantıda belirtilen adımları izleyerek yeni bir .NET projesi oluşturun

Sunucu Oluşturma

PostgreSQL esnek sunucu örneği oluşturmak için aşağıdaki kodla adlı CreateServer.cs bir dosya oluşturun.

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

Bu örnekte, Azure Resource Manager kullanarak PostgreSQL esnek sunucu örneği oluşturma işlemi gösterilmektedir. PostgreSql kütüphanesi. PostgreSQL esnek sunucu örneklerinizi ve ilgili kaynaklarınızı yönetmek için kitaplık tarafından sağlanan diğer yöntemleri de benzer şekilde kullanabilirsiniz.

Koddaki aşağıdaki parametreleri verilerinizle değiştirin:

  • subscription-id: Azure abonelik kimliğiniz.
  • resource-group-name: Kaynak grubunuzun adı.
  • server-name: PostgreSQL sunucunuz için benzersiz bir ad.
  • location: Sunucunuz için Azure bölgesi.
  • admin-username: Yönetici kullanıcı adı.
  • admin-password: Yönetici parolası.
  • pgVersion: PostgreSQL sürümü (örneğin, 11, 12, 13, 14, 15 veya 16).

Authentication

DefaultAzureCredential sınıfı ortam değişkenleri, yönetilen kimlikler veya Azure CLI gibi yöntemleri kullanarak kimlik doğrulaması yapmaya çalışır. Bu yöntemlerden birinin yapılandırıldığından emin olun.

Dosyayı çalıştırma

Dosyayı çalıştırmak için .NET CLI kullanarak .cs dosyasını derleyip yürütmeniz gerekir. Bu işlem, koda göre PostgreSQL örneği için oluşturma, güncelleştirme veya silme işlemini başlatır.

.cs dosyasında her değişiklik yaptığınızda, dosyayı derleyip çalıştırmayı unutmayın

.cs dosyasını aşağıdaki komutlarla çalıştırın

dotnet build
dotnet run

Note

Bu kodun çalıştırılması örnek oluşturma işlemini başlatır ve bu işlemin tamamlanması birkaç dakika sürebilir.

Dağıtılmış kaynakları gözden geçir.

Dağıtımı doğrulamak ve dağıtılan kaynakları gözden geçirmek için Azure portalı, Azure CLI, Azure PowerShell ve diğer çeşitli araçlar aracılığıyla dağıtılan esnek sunucu örneğini gözden geçirebilirsiniz.

Sunucu verilerini güncelleştirme

Bir UpdateServerData.cs dosyası oluşturun.

Azure PostgreSQL .NET SDK'sını kullanarak da sunucu verilerini güncelleştirebilirsiniz.

Örneğin, CreateOrUpdateAsync yöntemini kullanarak sürümü, yönetici kullanıcı adını, parolayı vb. güncelleyebilirsiniz.

yöntemi, CreateOrUpdateAsync aynı ada sahip bir örnek yoksa yeni bir örnek oluşturur veya varsa mevcut örneği yeni sunucu verileriyle güncelleştirir.

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

Dosyayı çalıştırın ve 'UpdateServerData.cs' dosyasıyla kaynakta yapılan değişiklikleri gözden geçirin.

Kaynakları temizle

.NET için Azure SDK ile esnek sunucu örneğini silerek oluşturulan esnek sunucu örneklerini temizleyebilirsiniz.

Bir DeleteServer.cs dosya oluşturun ve aşağıdaki kodu ekleyin.

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

Aşağıdaki parametreleri verilerinizle değiştirin:

  • subscription-id: Kendi abonelik kimliğiniz.
  • resource-group-name: Kullanmak istediğiniz kaynak grubunun adı. Betik, mevcut değilse yeni bir kaynak grubu oluşturur.
  • server-name: Oluşturduğunuz Azure veritabanı esnek sunucu örneğinin adı.

Portal, CLI veya PowerShell aracılığıyla oluşturulan kaynak grubunu da silebilirsiniz. CLI veya PowerShell kullanarak silmek istiyorsanız CLI ve PowerShell bölümünde belirtilen adımları izleyin.

Yer tutucuları ayrıntılarınızla değiştirin ve dosyayı çalıştırın.

Alternatif olarak, aşağıdakini kullanarak kaynak grubunu kaldırabilirsiniz:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure portalı: Kaynak grubuna gidin ve silin.