Criar uma instância do Banco de Dados do Azure para PostgreSQL usando o SDK do .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 PostgreSQL do Azure. O Banco de Dados do Azure para PostgreSQL é um serviço gerenciado que permite que você execute, gerencie e dimensione bancos de dados PostgreSQL altamente disponíveis na nuvem. Usando o SDK do .NET, você pode provisionar uma instância de servidor flexível do Banco de Dados do Azure para 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 se limitando a:

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

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

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

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

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

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

  7. Gerenciar definições de Configuração de Aplicativos:
    Você pode gerenciar as configurações de uma instância de servidor flexível Azure PostgreSQL, incluindo parâmetros de recuperação e atualização.

Faça logon 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ê deverá entrar na sua conta do Azure usando a CLI do Azure.

Execute o comando de login

Faça logon 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 esses pacotes, verifique se cada em está listado no arquivo .csproj antes de executar os comandos de compilação e execução.

Para saber mais sobre o arquivo .csproj, visite Implantação da Web.

Note

Se você estiver tendo problemas relacionados à configuração inicial para .NET, siga este guia.

Criar o projeto

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

Criar o Servidor

Para criar uma instância de servidor flexível do PostgreSQL, crie um arquivo chamado 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 da assinatura do Azure.
  • resource-group-name: O nome do seu 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 senha do administrador.
  • pgVersion: a versão do PostgreSQL (por exemplo, 11, 12, 13, 14, 15 ou 16).

Authentication

A classe DefaultAzureCredential tenta autenticar usando métodos como as variáveis de ambiente, as identidades gerenciadas ou a CLI do Azure. Verifique se você tem um desses métodos configurados.

Execute o arquivo

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

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

Execute o arquivo .cs com os comandos abaixo

dotnet build
dotnet run

Note

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

Examinar os recursos implantados

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 os dados do servidor

Crie um arquivo UpdateServerData.cs.

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

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

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

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".

Limpar os recursos

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

Crie um arquivo DeleteServer.cs e adicione o seguinte 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}");
            }
   }
  }
}

Substitua os seguintes parâmetros com seus dados:

  • subscription-id: Sua própria ID da assinatura.
  • resource-group-name: O nome do grupo de recursos que você deseja usar. O script criará 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í-la usando a CLI ou o PowerShell.

Substitua os espaços reservados pelos seus dados e execute o arquivo.

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.