Crie uma instância de servidor flexível no Base de Dados do Azure para PostgreSQL usando o SDK .NET

Neste início rápido, você aprenderá a usar as bibliotecas do SDK do Azure no .NET para criar, atualizar e excluir uma instância de servidor flexível do Azure PostgreSQL. O Banco de Dados do Azure para PostgreSQL é um serviço gerenciado que permite executar, gerenciar e dimensionar bancos de dados PostgreSQL altamente disponíveis na nuvem. Usando o SDK do .NET, você pode provisionar um Banco de Dados do Azure para instância de servidor flexível do PostgreSQL, vários servidores ou vários bancos de dados em um servidor.

Pré-requisitos

Biblioteca Azure.ResourceManager.PostgreSql

A Azure.ResourceManager.PostgreSql biblioteca faz parte do SDK do Azure para .NET e fornece funcionalidade para gerenciar instâncias de servidor flexíveis do PostgreSQL no Azure. Com essa biblioteca, você pode executar várias operações relacionadas a instâncias de servidor flexíveis do PostgreSQL, incluindo, mas não limitado a:

  1. Criando instâncias de servidor flexíveis do Azure PostgreSQL:
    Você pode criar novas instâncias de servidor flexíveis com configurações especificadas, como local, SKU, armazenamento e versão.

  2. Atualizando instâncias de servidor flexíveis do Azure PostgreSQL:
    Você pode atualizar instâncias de servidor flexíveis existentes do PostgreSQL, incluindo a alteração de configurações como login de administrador, senha, SKU, armazenamento e versão.

  3. Excluindo instâncias de servidor flexíveis do Azure PostgreSQL:
    Você pode excluir instâncias de servidor flexíveis existentes do Azure PostgreSQL.

  4. Recuperando informações do Azure PostgreSQL:
    Você pode recuperar detalhes sobre instâncias de servidor flexíveis existentes do PostgreSQL, incluindo suas configurações, status e outros metadados.

  5. Gerenciando bancos de dados:
    Você pode criar, atualizar, excluir e recuperar bancos de dados na instância flexível do servidor PostgreSQL do Azure.

  6. Gerenciando regras de firewall:
    Você pode criar, atualizar, excluir e recuperar regras de firewall para uma instância para controlar o acesso.

  7. Gestão das definições de configuração:
    Pode gerir as definições de configuração para uma instância de servidor flexível Azure PostgreSQL, incluindo a recuperação e atualização de parâmetros.

Iniciar sessão no Azure

Antes de usar o SDK do Azure para .NET para criar, atualizar ou excluir uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, você deve fazer logon em sua conta do Azure usando a CLI do Azure.

Execute o comando login

Faça login na sua conta usando az CLI

az login

Instalar pacotes necessários

Instale os pacotes necessários usando os seguintes comandos:

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

Depois de instalar estes pacotes, certifique-se de que cada em está listado no ficheiro .csproj antes de executar os comandos de compilação e execução.

Para saber mais sobre o ficheiro .csproj, consulte Implementação na Web.

Note

Se estiver a ter problemas relacionados com a configuração inicial do .NET, siga este guia.

Criar o projeto

Crie um novo projeto .NET seguindo as etapas mencionadas neste link

Criar o servidor

Para criar uma instância de servidor flexível do PostgreSQL, crie um arquivo nomeado CreateServer.cs com o código a seguir.

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

Este exemplo demonstra a criação de uma instância de servidor flexível do PostgreSQL usando o Azure Resource Manager. Biblioteca PostgreSql. Da mesma forma, você pode usar outros métodos fornecidos pela biblioteca para gerenciar suas instâncias de servidor flexíveis do PostgreSQL e recursos relacionados.

Substitua os seguintes parâmetros no código pelos seus dados:

  • subscription-id: Sua ID de assinatura do Azure.
  • resource-group-name: O nome do teu grupo de recursos.
  • server-name: Um nome exclusivo para o seu servidor PostgreSQL.
  • location: A região do Azure para o seu servidor.
  • admin-username: O nome de usuário do administrador.
  • admin-password: A palavra-passe do administrador.
  • pgVersion: A versão do PostgreSQL (por exemplo, 11, 12, 13, 14, 15 ou 16).

Authentication

A DefaultAzureCredential classe tenta autenticar usando métodos como variáveis de ambiente, identidades gerenciadas ou CLI do Azure. Certifique-se de ter um desses métodos configurado.

Executar o ficheiro

Para executar o arquivo, você deve compilar e executar o arquivo .cs usando a CLI .NET. Isso inicia o processo de criação, atualização ou exclusão da instância do PostgreSQL de acordo com o código.

Toda vez que você fizer qualquer alteração no arquivo .cs, não se esqueça de compilar e, em seguida, executar o arquivo

Execute o arquivo .cs com os comandos abaixo

dotnet build
dotnet run

Note

A execução desse código iniciará o processo de criação da instância, que pode levar alguns minutos para ser concluído.

Analisar os recursos implementados

Você pode revisar a instância de servidor flexível implantada por meio do portal do Azure, CLI do Azure, Azure PowerShell e várias outras ferramentas para validar a implantação e revisar os recursos implantados.

Atualizar dados do servidor

Crie um ficheiro UpdateServerData.cs.

Você também pode atualizar os dados do servidor usando o Azure PostgreSQL .NET SDK.

Por exemplo, você pode atualizar a versão, nome de usuário admin, senha, etc., usando o CreateOrUpdateAsync método.

O CreateOrUpdateAsync método cria uma nova instância se não houver nenhuma instância com o mesmo nome ou atualiza a instância existente com os novos dados do servidor, se ela existir.

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

Execute o arquivo e revise as alterações feitas no recurso com o arquivo 'UpdateServerData.cs'.

Limpeza de recursos

Você pode limpar as instâncias de servidor flexíveis criadas excluindo a instância de servidor flexível com o SDK do Azure para .NET.

Crie um DeleteServer.cs arquivo e adicione o código a seguir.

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

Substitua os seguintes parâmetros pelos seus dados:

  • subscription-id: O seu próprio ID da subscrição.
  • resource-group-name: O nome do grupo de recursos que você deseja usar. O script cria um novo grupo de recursos se ele não existir.
  • server-name: O nome da instância de servidor flexível do banco de dados do Azure que você criou.

Você também pode excluir o grupo de recursos criado por meio do Portal, CLI ou PowerShell. Siga as etapas mencionadas na seção CLI e PowerShell se quiser excluí-lo usando CLI ou PowerShell.

Substitua os marcadores de posição pelos seus dados e execute o ficheiro.

Como alternativa, você pode remover o grupo de recursos usando:

  • CLI do Azure: az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Portal do Azure: navegue até o grupo de recursos e exclua-o.