Créez un serveur flexible Azure Database pour PostgreSQL à l’aide de la Kit de développement logiciel (SDK) Azure pour Java

Dans ce guide de démarrage rapide, vous allez apprendre à créer, mettre à jour et supprimer un serveur flexible Azure Database pour PostgreSQL à l’aide du Kit de développement logiciel (SDK) Azure pour Java. Les exemples de code sont écrits en Java et utilisent les bibliothèques du Kit de développement logiciel (SDK) Azure pour interagir avec le service Azure Database pour PostgreSQL.

Le Kit de développement logiciel (SDK) Azure pour Java fournit un ensemble de bibliothèques que vous pouvez utiliser pour interagir avec les services Azure à l’aide de Java. Le Kit de développement logiciel (SDK) fournit un modèle de programmation cohérent et simplifie l’utilisation des services Azure, notamment Azure Database pour PostgreSQL.

Prerequisites

  • Un compte Azure avec un abonnement actif
  • Kit de développement Java (JDK) avec la dernière version
  • Télécharger Maven pour utiliser la bibliothèque du Kit de développement logiciel (SDK) Azure Java
  • Azure CLI installé sur votre ordinateur local

Opérations prises en charge par le Kit de développement logiciel (SDK) Java Azure

Kit de développement logiciel (SDK) Azure pour Java fournit la azure-resourcemanager-postgresqlflexibleserver dépendance qui prend en charge ces opérations pour les bases de données Azure pour PostgreSQL.

  • Création de serveurs flexibles dans Azure Database pour PostgreSQL
    Vous pouvez créer un serveur flexible PostgreSQL Azure avec des configurations spécifiées telles que l’emplacement, la référence SKU, le stockage et la version.

  • Mise à jour des serveurs flexibles Azure Database pour PostgreSQL
    Vous pouvez mettre à jour des serveurs flexibles PostgreSQL existants Azure, notamment modifier des configurations telles que la connexion administrateur, le mot de passe, la référence SKU, le stockage et la version.

  • Suppression des serveurs flexibles Azure Database pour PostgreSQL

  • Récupération d'informations de la base de données Azure pour PostgreSQL
    Vous pouvez récupérer des détails sur les serveurs flexibles PostgreSQL existants Azure, notamment leurs configurations, leur état et d’autres métadonnées.

  • Gestion des bases de données
    Vous pouvez créer, mettre à jour, supprimer et récupérer des bases de données au sein du serveur flexible PostgreSQL Azure.

  • Gestion des règles de pare-feu
    Vous pouvez créer, mettre à jour, supprimer et récupérer des règles de pare-feu pour une instance afin de contrôler l’accès.

  • Gestion des paramètres de configuration
    Vous pouvez gérer les paramètres de configuration d’un serveur flexible Azure PostgreSQL, notamment la récupération et la mise à jour des paramètres.

Configurer votre compte à l’aide de Azure CLI

Avant d’utiliser le Kit de développement logiciel (SDK) Azure pour Java créer, mettre à jour ou supprimer un serveur flexible Azure Database pour PostgreSQL, connectez-vous à votre compte Azure à l’aide de l’Azure CLI.

Connectez-vous à votre compte à l’aide de Azure CLI.

az login

Récupérez votre ID de locataire pour votre compte, car vous en avez besoin pour le code dans la section ultérieure.

az account show --query tenantId --output tsv

Créer un projet

Créez un projet Maven dans votre IDE préféré et ajoutez les dépendances pour la bibliothèque Azure Database pour PostgreSQL.

Lorsque vous créez un projet Maven, vous créez un pom.xml fichier. Veillez à ajouter toutes les dépendances sous la balise <dependencies> de ce fichier.

<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

Vérifiez la dernière version de toutes les dépendances avant de les ajouter à votre fichier.

Créer une instance Azure Database pour PostgreSQL

Pour créer un serveur flexible Azure PostgreSQL, créez un fichier nommé CreateServer.java avec le code suivant.

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

Cet exemple montre comment créer un serveur d’instances flexibles Azure Database pour PostgreSQL à l’aide de la PostgreSqlManager classe. Avant d’appeler la méthode create, elle s’authentifie à l’aide de TokenCredential et d’AzureProfile. Une fois authentifié, il définit le serveur flexible Azure PostgreSQL avec votre configuration spécifiée.

Remplacez les paramètres suivants dans le code par vos données :

  • subscription-id : VOTRE ID d’abonnement Azure.
  • tenant-id : ID de locataire de votre compte Microsoft Entra. Vous pouvez l’obtenir à partir du portail ou à l’aide de l’interface CLI.
  • resource-group-name: nom de votre groupe de ressources.
  • server-name: Nom unique pour votre serveur PostgreSQL.
  • location: Région Azure de votre serveur.
  • admin-username: Nom d’utilisateur de l’administrateur.
  • admin-password: Mot de passe de l’administrateur.

Authentication

Vous pouvez authentifier vos informations d’identification de différentes manières. Dans cet exemple, utilisez DefaultAzureCredentialBuilder pour configurer et créer un objet TokenCredential, qui est une information d’identification que vous pouvez utiliser pour vous authentifier auprès de Azure services. Connectez-vous à l’aide de Azure CLI, comme indiqué dans les conditions préalables.

Exécuter le fichier

Veillez à créer un projet Maven et à exécuter les commandes suivantes. Exécutez ces commandes chaque fois que vous ajoutez une nouvelle dépendance dans votre pom.xml fichier pour installer cette dépendance dans votre référentiel local :

mvn clean install

Pour exécuter le fichier, utilisez votre IDE pour exécuter ce code ou utilisez la ligne de commande pour exécuter le fichier Java.

javac <file-name>.java
java <file-name>

Note

L'exécution de ce code lance le processus de création de l'instance, qui peut prendre quelques minutes.

Vous pouvez consulter le serveur flexible PostgreSQL déployé Azure via le portail Azure, Azure CLI, Azure PowerShell et divers autres outils pour valider le déploiement et examiner les ressources déployées.

Créer une base de données

Vous pouvez ajouter une nouvelle base de données à votre serveur nouvellement créé. Vérifiez que votre serveur flexible Azure Database pour PostgreSQL est en cours d’exécution.

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

Mise à jour des données du serveur

Créez un UpdateServer.java fichier.

Vous pouvez également mettre à jour les données du serveur à l’aide de ce kit de développement logiciel (SDK) Java et appeler la update() méthode à partir de la postgresqlflexibleserver bibliothèque.

À l’aide de la update méthode, vous pouvez mettre à jour la version, le nom d’utilisateur administrateur, le mot de passe et d’autres propriétés.

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

Exécutez le fichier Java et passez en revue les modifications apportées dans la ressource à l’aide du UpdateServer.java fichier.

Nettoyer les ressources

Vous pouvez nettoyer les serveurs flexibles créés en supprimant le serveur flexible avec la delete() méthode de la postgresqlflexibleserver bibliothèque.

Créez un fichier DeleteServer.java, puis ajoutez le code suivant.

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

}

Remplacez les paramètres suivants par les vôtres :

  • subscription-id : Votre propre ID d’abonnement.
  • resource-group : Nom du groupe de ressources à utiliser.
  • tenant-id : ID de locataire de votre compte Microsoft Entra. Vous pouvez l’obtenir à partir du portail ou à l’aide de l’interface CLI.
  • server-name: nom du serveur flexible de base de données Azure que vous avez créé.

Vous pouvez également supprimer le groupe de ressources créé via le portail, l’interface CLI ou PowerShell. Si vous souhaitez le supprimer à l’aide de l’interface CLI ou de PowerShell, suivez les étapes mentionnées dans la section CLI et PowerShell.

Remplacez les espaces réservés par vos détails et exécutez le fichier.

Vous pouvez également supprimer le groupe de ressources à l’aide de :

  • Azure CLI :az group delete --name <resource_group>
  • PowerShell :Remove-AzResourceGroup -Name <resource_group>
  • Portail Azure : Naviguez jusqu’au groupe de ressources et supprimez-le.