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 quickstart, aprende a criar, atualizar e eliminar um servidor flexível Base 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 pode usar para 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 for Java fornece a azure-resourcemanager-postgresqlflexibleserver dependência que suporta estas operações para as bases de dados Azure para PostgreSQL.
Criar servidores flexíveis do Base de Dados do Azure para PostgreSQL
Pode criar um novo servidor flexível Azure PostgreSQL com configurações específicas como localização, SKU, armazenamento e versão.Updating Base de Dados do Azure para PostgreSQL flexible servers
Pode atualizar os servidores flexíveis Azure PostgreSQL existentes, incluindo alterações de configurações como login de administrador, palavra-passe, SKU, armazenamento e versão.Eliminar servidores flexíveis do Base de Dados do Azure para PostgreSQL
Recuperando informações do Banco de Dados do Azure para PostgreSQL
Pode obter detalhes sobre os servidores flexíveis Azure PostgreSQL existentes, incluindo as suas configurações, estado e outros metadados.Gerenciando bancos de dados
Pode criar, atualizar, eliminar e recuperar bases de dados dentro do servidor flexível Azure PostgreSQL.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
Pode gerir as definições de configuração de um servidor flexível Azure PostgreSQL, incluindo a recuperação e atualização de parâmetros.
Configure a sua conta usando o CLI do Azure
Antes de usar o SDK do Azure for Java para criar, atualizar ou eliminar um servidor flexível do Base de Dados do Azure para PostgreSQL, inicie sessão na sua conta Azure usando a CLI do Azure.
Inicie sessão na sua conta usando o CLI do Azure.
az login
Solicite o seu ID de inquilino para a sua conta, pois precisa dele para o código na secção seguinte.
az account show --query tenantId --output tsv
Criar 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.
Quando crias um projeto Maven, crias um pom.xml ficheiro. Certifica-te de que adicionas todas as dependências sob a tag deste <dependencies> ficheiro.
<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>
Note
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 um servidor flexível Azure PostgreSQL, crie um ficheiro com o seguinte CreateServer.java código.
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 = 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 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, autentica-se usando o TokenCredential e AzureProfile. Uma vez autenticado, define o servidor flexível Azure PostgreSQL com a 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. Pode obter isto através do portal ou utilizando a interface de linha de comandos. -
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.
Authentication
Pode autenticar as suas credenciais de diferentes formas. Neste exemplo, use DefaultAzureCredentialBuilder para configurar e criar um objeto TokenCredential, que é uma credencial que pode usar para autenticar com os serviços do Azure. Inicie sessão usando CLI do Azure, conforme mencionado nos pré-requisitos.
Executar o ficheiro
Certifique-se de criar um projeto Maven e executar os seguintes comandos. Execute estes comandos sempre que adicionar uma nova dependência no seu pom.xml ficheiro para instalar essa dependência no seu repositório local:
mvn clean install
Para executar o ficheiro, usa o teu IDE para executar este código ou usa a linha de comandos para executar o ficheiro Java.
javac <file-name>.java
java <file-name>
Note
A execução desse código inicia o processo de criação da instância, que pode levar alguns minutos para ser concluído.
Pode consultar o servidor flexível Azure PostgreSQL implementado através do portal Azure, CLI do Azure, Azure PowerShell e várias outras ferramentas para validar a implementação e rever os recursos implementados.
Criar uma base de dados
Você pode adicionar um novo banco de dados ao servidor recém-criado. Certifique-se de que o seu servidor flexível Base de Dados do Azure para PostgreSQL está a funcionar.
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.
Também pode atualizar os dados do servidor usando este SDK Java e chamando o update() método a partir da postgresqlflexibleserver biblioteca.
Ao usar o update método, pode atualizar a versão, o nome de utilizador do administrador, a palavra-passe e outras propriedades.
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");
}
}
Executa o ficheiro Java e revê as alterações feitas no recurso usando o UpdateServer.java ficheiro.
Limpeza de recursos
Podes limpar os servidores flexíveis criados eliminando o servidor flexível com o delete() método da postgresqlflexibleserver biblioteca.
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 da 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. Pode obtê-lo a partir do portal ou utilizando a CLI. -
server-name: O nome do servidor flexível da base de dados Azure que criou.
Também pode eliminar o grupo de recursos criado através do portal, CLI ou PowerShell. Se quiseres apagá-lo usando CLI ou PowerShell, segue os passos mencionados na secção CLI e PowerShell.
Substitua os marcadores de posição pelos seus dados e execute o ficheiro.
Em alternativa, pode remover o grupo de recursos utilizando:
-
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.