Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida introduttiva illustra come creare, aggiornare ed eliminare un'istanza del server flessibile di Database di Azure per PostgreSQL usando Azure SDK per Java. Gli esempi di codice sono scritti in Java e usano le librerie di Azure SDK per interagire con il servizio Database di Azure per PostgreSQL.
Azure SDK per Java offre un set di librerie che consentono di interagire con i servizi di Azure usando Java. L'SDK offre un modello di programmazione coerente e semplifica l'uso dei servizi di Azure, incluso Database di Azure per PostgreSQL.
Prerequisiti
- Un account Azure con una sottoscrizione attiva
- Java Development Kit (JDK) con la versione più recente
- Scaricare Maven per l'uso della libreria Azure Java SDK
- interfaccia della riga di comando di Azure installata nel computer locale
Operazioni supportate da Azure Java SDK
Azure SDK per Java fornisce la dipendenza azure-resourcemanager-postgresqlflexibleserver che supporta queste operazioni per Azure Database for PostgreSQL.
Creazione di istanze di server flessibile per Database di Azure PostgreSQL
È possibile creare una nuova istanza del server flessibile di Azure PostgreSQL con configurazioni specificate, ad esempio posizione, SKU, archiviazione e versione.Aggiornamento delle istanze del server flessibile di Azure Database per PostgreSQL
È possibile aggiornare le istanze del server flessibile di Azure PostgreSQL esistenti, incluse le modifiche alle configurazioni, ad esempio l'accesso dell'amministratore, la password, lo SKU, l'archiviazione e la versione.Eliminazione di istanze del database flessibile di server di Azure per PostgreSQL
Recupero delle informazioni di Database di Azure per PostgreSQL
È possibile recuperare informazioni dettagliate sulle istanze del server flessibile di Azure PostgreSQL esistenti, incluse le configurazioni, lo stato e altri metadati.Gestione dei database
È possibile creare, aggiornare, eliminare e recuperare database all'interno dell'istanza del server flessibile di Azure PostgreSQL.Gestione delle regole del firewall
È possibile creare, aggiornare, eliminare e recuperare regole del firewall per un'istanza per controllare l'accesso.Gestione delle impostazioni di configurazione
È possibile gestire le impostazioni di configurazione per un'istanza del server flessibile di Azure PostgreSQL, incluso il recupero e l'aggiornamento dei parametri.
Configurare l'account con az cli
Prima di usare Azure SDK per Java per creare, aggiornare o eliminare un'istanza del server flessibile di Database di Azure per PostgreSQL, è necessario accedere all'account Azure usando l'interfaccia della riga di comando di Azure.
Accedere all'account usando l'interfaccia della riga di comando di Azure
az login
Recuperare l'ID tenant per l'account perché sarà necessario per il codice in un secondo momento.
az account show --query tenantId --output tsv
Creare un progetto
Creare un nuovo progetto Maven nell'IDE preferito e aggiungere le dipendenze per la libreria di Database di Azure per PostgreSQL.
Dopo aver creato un progetto Maven, viene creato un file pom.xml. Verificare che tutte le dipendenze vengano aggiunte sotto il tag <dependencies> di questo file.
<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
Controllare la versione più recente per tutte le dipendenze prima di aggiungerle al file.
Creare un'istanza di Database di Azure per PostgreSQL
Per creare un'istanza del server flessibile di Azure PostgreSQL, creare un file denominato CreateServer.java con il codice seguente.
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());
}
}
Questo esempio illustra la creazione di un server di istanza flessibile di Database di Azure per PostgreSQL usando la PostgreSqlManager classe . Prima di richiamare il metodo di creazione, esegue l'autenticazione usando TokenCredential e AzureProfile. Dopo l'autenticazione, definisce l'istanza del server flessibile di Azure PostgreSQL con la configurazione specificata.
Sostituire i parametri seguenti nel codice con i dati:
-
subscription-id: ID della sottoscrizione di Azure. -
tenant-id: ID tenant dell'account Microsoft Entra. È possibile ottenerlo dal portale o usando l'interfaccia della riga di comando -
resource-group-name: nome del gruppo di risorse. -
server-name: nome univoco per il server PostgreSQL. -
location: area di Azure per il server. -
admin-username: nome utente dell'amministratore. -
admin-password: password amministratore.
Authentication
Esistono diversi modi per autenticare le credenziali. In questo esempio è stato usato DefaultAzureCredentialBuilder per configurare e creare un oggetto TokenCredential, ovvero una credenziale che può essere usata per l'autenticazione con i servizi di Azure. Accedere usando l'interfaccia della riga di comando di Azure, come indicato nei prerequisiti.
Eseguire il file
Assicurarsi di aver creato un progetto maven ed eseguito i comandi seguenti; Assicurarsi di eseguire questi comandi ogni volta che si aggiunge una nuova dipendenza nel pom.xml file per installare tale dipendenza nel repository locale:
mvn clean install
Per eseguire il file, è possibile usare l'IDE per eseguire questo codice o usare la riga di comando per eseguire il file Java.
javac <file-name>.java
java <file-name>
Note
L'esecuzione di questo codice avvia il processo di creazione dell'istanza, che potrebbe richiedere alcuni minuti.
È possibile esaminare l'istanza del server flessibile di Azure PostgreSQL distribuita tramite il portale di Azure, l'interfaccia della riga di comando di Azure, Azure PowerShell e vari altri strumenti per convalidare la distribuzione ed esaminare le risorse distribuite.
Creazione di un database
È possibile aggiungere un nuovo database al server appena creato. Assicurati che l'istanza del server flessibile di Database di Azure per PostgreSQL sia operativa.
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();
}
}
Aggiornare i dati del server
Creare un file UpdateServer.java.
È anche possibile aggiornare i dati del server usando questo SDK Java chiamando il update() metodo dalla postgresqlflexibleserver libreria.
Usando il update metodo è possibile aggiornare la versione, il nome utente amministratore, la password e così via.
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");
}
}
Eseguire il file Java ed esaminare le modifiche apportate nella risorsa con il file "UpdateServer.java".
Pulire le risorse
È possibile pulire le istanze del server flessibili create eliminando l'istanza del server flessibile con il metodo delete() dalla libreria postgresqlflexibleserver.
Creare un file DeleteServer.java e incollare il codice seguente.
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");
}
}
Sostituire i parametri seguenti con dati personalizzati:
-
subscription-id: ID sottoscrizione personale. -
resource-group: nome del gruppo di risorse da usare. -
tenant-id: ID tenant dell'account Microsoft Entra. È possibile ottenerlo dal portale o usando l'interfaccia della riga di comando -
server-name: nome dell'istanza del server flessibile del database di Azure creata.
È anche possibile eliminare il gruppo di risorse creato tramite il portale, l'interfaccia della riga di comando o PowerShell. Per eliminarlo usando l'interfaccia della riga di comando o PowerShell, seguire i passaggi indicati nella sezione Interfaccia della riga di comando e PowerShell.
Sostituire i segnaposto con i dettagli ed eseguire il file.
In alternativa, è possibile rimuovere il gruppo di risorse usando:
-
Interfaccia della riga di comando di Azure:
az group delete --name <resource_group> -
PowerShell:
Remove-AzResourceGroup -Name <resource_group> - Portale di Azure: passare al gruppo di risorse ed eliminarlo.