Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste início rápido, você aprenderá a criar, atualizar e excluir uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL usando o SDK do Azure para Java. Os exemplos de código são escritos em Java e usam as bibliotecas do SDK do Azure para interagir com o serviço Banco de Dados do Azure para PostgreSQL.
O SDK do Azure para Java fornece um conjunto de bibliotecas que permitem interagir com os serviços do Azure usando Java. O SDK fornece um modelo de programação consistente e simplifica o trabalho com os serviços do Azure, incluindo o Banco de Dados do Azure para PostgreSQL.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa
- Java Development Kit (JDK) com a versão mais recente
- Baixar o Maven para usar a biblioteca do SDK Java do Azure
- CLI do Azure instalada em sua máquina local
Operações suportadas pelo SDK Java do Azure
O SDK do Azure para Java fornece azure-resourcemanager-postgresqlflexibleserver dependência que dá suporte a essas operações para Bancos de Dados do Azure para PostgreSQL.
Criando o Banco de Dados do Azure para instâncias de servidor flexíveis do PostgreSQL
Você pode criar uma nova instância de servidor flexível do Azure PostgreSQL com configurações especificadas, como local, SKU, armazenamento e versão.Atualizando o Banco de Dados do Azure para instâncias de servidor flexíveis do PostgreSQL
Você pode atualizar instâncias de servidor flexíveis existentes do Azure PostgreSQL, incluindo a alteração de configurações como entrada de administrador, senha, SKU, armazenamento e versão.Excluindo o Banco de Dados do Azure para instâncias de servidor flexíveis do PostgreSQL
Recuperando informações do Banco de Dados do Azure para PostgreSQL
Você pode recuperar detalhes sobre instâncias de servidor flexíveis do Azure PostgreSQL existentes, incluindo suas configurações, status e outros metadados.Gerenciando bancos de dados
Você pode criar, atualizar, excluir e recuperar bancos de dados na instância flexível do servidor PostgreSQL do Azure.Gerenciando regras de firewall
Você pode criar, atualizar, excluir e recuperar regras de firewall para uma instância para controlar o acesso.Gerenciando definições de configuração
Você pode gerenciar definições de configuração para uma instância de servidor flexível do Azure PostgreSQL, incluindo a recuperação e atualização de parâmetros do servidor.
Configurar a sua conta com az cli
Antes de usar o SDK do Azure para Java para criar, atualizar ou excluir uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, você deve entrar em sua conta do Azure usando a CLI do Azure.
Inicie sessão na sua conta utilizando az CLI
az login
Procure o seu ID de locatário para a sua conta, pois será necessário para o código mais tarde.
az account show --query tenantId --output tsv
Criar o projeto
Crie um novo projeto Maven em seu IDE preferido e adicione as dependências para o Banco de Dados do Azure para biblioteca PostgreSQL.
Depois de criar um projeto Maven, é criado um arquivo pom.xml. Certifique-se de que todas as dependências sejam adicionadas sob a tag deste <dependencies> arquivo.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-management</artifactId>
<version>1.17.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-resources</artifactId>
<version>2.48.0</version>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-postgresqlflexibleserver</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-http-netty</artifactId>
<version>1.15.11</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.20.0</version>
</dependency>
Observação
Verifique a versão mais recente para todas as dependências antes de adicioná-las ao seu arquivo.
Criar um Banco de Dados do Azure para instância do PostgreSQL
Para criar uma instância de servidor flexível do Azure PostgreSQL, crie um arquivo nomeado CreateServer.java com o código a seguir.
package com.example.restservice;
import java.util.HashMap;
import java.util.Map;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ActiveDirectoryAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ArmServerKeyType;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AuthConfig;
import com.azure.resourcemanager.postgresqlflexibleserver.models.DataEncryption;
import com.azure.resourcemanager.postgresqlflexibleserver.models.HighAvailability;
import com.azure.resourcemanager.postgresqlflexibleserver.models.HighAvailabilityMode;
import com.azure.resourcemanager.postgresqlflexibleserver.models.IdentityType;
import com.azure.resourcemanager.postgresqlflexibleserver.models.PasswordAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Server;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ServerVersion;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Sku;
import com.azure.resourcemanager.postgresqlflexibleserver.models.SkuTier;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Storage;
import com.azure.resourcemanager.postgresqlflexibleserver.models.UserAssignedIdentity;
public class CreateServer {
public static void main(String[] args) throws Exception {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
Server server = manager.servers()
.define("<server-name>")
.withRegion("<location>")
.withExistingResourceGroup("<resource-group-name>")
.withSku(new Sku().withName("Standard_D4ds_v5").withTier(SkuTier.GENERAL_PURPOSE))
.withAuthConfig(new AuthConfig().withActiveDirectoryAuth(ActiveDirectoryAuthEnum.DISABLED)
.withPasswordAuth(PasswordAuthEnum.ENABLED))
.withIdentity(new UserAssignedIdentity().withType(IdentityType.NONE))
.withDataEncryption(new DataEncryption().withType(ArmServerKeyType.SYSTEM_MANAGED))
.withVersion(ServerVersion.ONE_SIX).withAuthConfig(null)
.withAdministratorLogin("<user-name>")
.withAdministratorLoginPassword("<password>").withStorage(new Storage().withStorageSizeGB(32))
.withHighAvailability(new HighAvailability().withMode(HighAvailabilityMode.DISABLED))
.create();
System.out.println("Azure Database for PostgreSQL Flexible server instance is created with server name"+server.name());
}
}
Este exemplo demonstra a criação de um Banco de Dados do Azure para servidor de instância flexível PostgreSQL usando a PostgreSqlManager classe. Antes de invocar o método create, ele se autentica usando TokenCredential e AzureProfile. Uma vez autenticado, ele define a instância de servidor flexível do Azure PostgreSQL com sua configuração especificada.
Substitua os seguintes parâmetros no código pelos seus dados:
-
subscription-id: Sua ID de assinatura do Azure. -
tenant-id: O ID do inquilino da sua conta da Microsoft Entra. Você pode obtê-lo no portal ou usando a CLI -
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 de administrador.
Authentication
Há diferentes maneiras de autenticar suas credenciais. Neste exemplo, usamos DefaultAzureCredentialBuilder para configurar e criar um objeto TokenCredential, que é uma credencial que pode ser usada para autenticar com os serviços do Azure. Entre usando a CLI do Azure, conforme mencionado nos pré-requisitos.
Executar o ficheiro
Certifique-se de ter criado um projeto maven e executado os comandos abaixo; Certifique-se de executar estes comandos sempre que adicionar uma nova dependência no arquivo pom.xml para instalar essa dependência no repositório local:
mvn clean install
Para executar o arquivo, você pode usar seu IDE para executar esse código ou usar a linha de comando para executar o arquivo Java.
javac <file-name>.java
java <file-name>
Observação
A execução desse código inicia o processo de criação da instância, que pode levar alguns minutos para ser concluído.
Você pode revisar a instância de servidor flexível do Azure PostgreSQL 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.
Criar uma base de dados
Você pode adicionar um novo banco de dados ao servidor recém-criado. Verifique se sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL está ativa e em execução.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
public class CreateDatabaseSample {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
manager.databases()
.define("<database-name>")
.withExistingFlexibleServer("<resource-group-name>", "<server-name>")
.withCharset("utf8")
.withCollation("en_US.utf8")
.create();
}
}
Atualizar dados do servidor
Crie um ficheiro UpdateServer.java.
Você também pode atualizar os dados do servidor usando este Java SDK chamando o update() método da postgresqlflexibleserver biblioteca.
Usando o update método, você pode atualizar a versão, nome de usuário administrador, senha, etc.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
import com.azure.resourcemanager.postgresqlflexibleserver.models.ActiveDirectoryAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AuthConfig;
import com.azure.resourcemanager.postgresqlflexibleserver.models.AzureManagedDiskPerformanceTiers;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Backup;
import com.azure.resourcemanager.postgresqlflexibleserver.models.CreateModeForUpdate;
import com.azure.resourcemanager.postgresqlflexibleserver.models.PasswordAuthEnum;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Server;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Sku;
import com.azure.resourcemanager.postgresqlflexibleserver.models.SkuTier;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Storage;
import com.azure.resourcemanager.postgresqlflexibleserver.models.StorageAutoGrow;
public class UpdateServer {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
PostgreSqlManager postgreSqlManager = PostgreSqlManager.configure()
.withLogOptions(new HttpLogOptions()
.setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
.authenticate(credential, profile);
Server resource = manager.servers()
.getByResourceGroupWithResponse("<resource-group-name>", "<server-name>", com.azure.core.util.Context.NONE)
.getValue();
resource.update()
.withSku(new Sku().withName("Standard_D16ds_v5").withTier(SkuTier.GENERAL_PURPOSE))
.withAdministratorLoginPassword("<password>")
.withStorage(new Storage().withStorageSizeGB(1024)
.withAutoGrow(StorageAutoGrow.DISABLED)
.withTier(AzureManagedDiskPerformanceTiers.P30))
.withBackup(new Backup().withBackupRetentionDays(20))
.withAuthConfig(new AuthConfig().withActiveDirectoryAuth(ActiveDirectoryAuthEnum.ENABLED)
.withPasswordAuth(PasswordAuthEnum.ENABLED)
.withTenantId("<tenant-id>"))
.withCreateMode(CreateModeForUpdate.UPDATE)
.apply();
System.out.println("Updated successfully");
}
}
Execute o arquivo java e revise as alterações feitas no recurso com o arquivo 'UpdateServer.java'.
Limpeza de recursos
Você pode remover as instâncias de servidor flexíveis criadas eliminando a instância de servidor flexível através do método delete() da biblioteca postgresqlflexibleserver.
Crie um DeleteServer.java arquivo e adicione o código a seguir.
package com.example.restservice;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.http.policy.HttpLogOptions;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.postgresqlflexibleserver.PostgreSqlManager;
public class DeleteInstance {
public static void main(String args[]) {
String subscriptionId = "<subscription-id>";
AzureProfile profile = new AzureProfile("<tenant-id>", subscriptionId, AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()).build();
PostgreSqlManager manager = PostgreSqlManager.authenticate(credential, profile);
PostgreSqlManager postgreSqlManager = PostgreSqlManager.configure()
.withLogOptions(new HttpLogOptions()
.setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
.authenticate(credential, profile);
manager.servers().delete("<resource-group>", "<server-name>", com.azure.core.util.Context.NONE);
System.out.println("Deleted successfully");
}
}
Substitua os seguintes parâmetros pelos seus dados:
-
subscription-id: O seu próprio ID de subscrição. -
resource-group: O nome do grupo de recursos que você deseja usar. -
tenant-id: O ID do inquilino da sua conta da Microsoft Entra. Você pode obtê-lo no portal ou usando a CLI -
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. Se você quiser excluí-lo usando CLI ou PowerShell, siga as etapas mencionadas na seção CLI e PowerShell.
Substitua espaços reservados por seus detalhes 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.