Een Azure Database for PostgreSQL flexibele server maken met behulp van de Azure SDK voor Java

In deze quickstart leert u hoe u een Azure Database for PostgreSQL flexibele server maakt, bijwerkt en verwijdert met behulp van de Azure SDK voor Java. De codevoorbeelden worden geschreven in Java en gebruiken de Azure SDK-bibliotheken om te communiceren met de Azure Database for PostgreSQL-service.

De Azure SDK voor Java biedt een set bibliotheken die u kunt gebruiken om met Azure services te communiceren met behulp van Java. De SDK biedt een consistent programmeermodel en vereenvoudigt het werken met Azure-services, waaronder Azure Database for PostgreSQL.

Prerequisites

Bewerkingen die worden ondersteund door Azure Java SDK

Azure SDK voor Java biedt de azure-resourcemanager-postgresqlflexibleserver afhankelijkheid die ondersteuning biedt voor deze bewerkingen voor Azure Databases for PostgreSQL.

  • Flexibele Azure Database for PostgreSQL-server maken
    U kunt een nieuwe Azure Flexibele PostgreSQL-server maken met opgegeven configuraties, zoals locatie, SKU, opslag en versie.

  • Azure Database for PostgreSQL flexibele servers bijwerken
    U kunt bestaande Azure flexibele PostgreSQL-servers bijwerken, waaronder het wijzigen van configuraties, zoals aanmelden van beheerders, wachtwoorden, SKU, opslag en versie.

  • Azure Database for PostgreSQL Flexible Server verwijderen

  • Azure Database for PostgreSQL-gegevens ophalen
    U kunt details ophalen over bestaande Azure Flexibele PostgreSQL-servers, inclusief hun configuraties, status en andere metagegevens.

  • Databases beheren
    U kunt databases maken, bijwerken, verwijderen en ophalen binnen de Azure Flexibele PostgreSQL-server.

  • Firewallregels beheren
    U kunt firewallregels maken, bijwerken, verwijderen en ophalen voor een instantie om toegang te beheren.

  • Configuratie-instellingen beheren
    U kunt configuratie-instellingen voor een Azure Flexibele PostgreSQL-server beheren, waaronder het ophalen en bijwerken van parameters.

Uw account instellen met behulp van Azure CLI

Voordat u de Azure SDK voor Java gebruikt om een Azure Database for PostgreSQL flexibele server te maken, bij te werken of te verwijderen, meldt u zich aan bij uw Azure-account met behulp van de Azure CLI.

Meld u aan bij uw account met behulp van Azure CLI.

az login

Haal uw tenant-id voor uw account op zoals u deze nodig hebt voor de code in de latere sectie.

az account show --query tenantId --output tsv

Project maken

Maak een nieuw Maven-project in uw favoriete IDE en voeg de afhankelijkheden toe voor de Azure Database for PostgreSQL-bibliotheek.

Wanneer u een Maven-project maakt, maakt u een pom.xml bestand. Zorg ervoor dat u alle afhankelijkheden onder de tag van <dependencies> dit bestand toevoegt.

<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

Controleer de nieuwste versie voor alle afhankelijkheden voordat u ze toevoegt aan uw bestand.

Een Azure Database for PostgreSQL-instantie maken

Als u een Azure Flexibele PostgreSQL-server wilt maken, maakt u een bestand met de volgende CreateServer.java code.

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

In dit voorbeeld ziet u hoe u een flexibele exemplaarserver voor Azure Database for PostgreSQL maakt met behulp van de PostgreSqlManager klasse. Voordat u de create-methode aanroept, wordt deze geverifieerd met behulp van tokenCredential en AzureProfile. Zodra deze is geverifieerd, wordt de Azure Flexibele PostgreSQL-server gedefinieerd met de opgegeven configuratie.

Vervang de volgende parameters in de code door uw gegevens:

  • subscription-id: uw Azure-abonnements-id.
  • tenant-id : De tenant-id van uw Microsoft Entra-account. U kunt dit ophalen via de portal of met behulp van de CLI.
  • resource-group-name: de naam van uw resourcegroep.
  • server-name: Een unieke naam voor uw PostgreSQL-server.
  • location: de Azure-regio voor uw server.
  • admin-username: de gebruikersnaam van de beheerder.
  • admin-password: het beheerderswachtwoord.

Authentication

U kunt uw referenties op verschillende manieren verifiëren. In dit voorbeeld gebruikt u DefaultAzureCredentialBuilder om een TokenCredential-object te configureren en te maken. Dit is een aanmeldingsgegeven dat u kunt gebruiken om u bij Azure-services te verifiëren. Meld u aan met behulp van Azure CLI, zoals vermeld in de vereisten.

Het bestand uitvoeren

Zorg ervoor dat u een Maven-project maakt en voer de volgende opdrachten uit. Voer deze opdrachten uit telkens wanneer u een nieuwe afhankelijkheid aan uw pom.xml bestand toevoegt om die afhankelijkheid in uw lokale opslagplaats te installeren:

mvn clean install

Als u het bestand wilt uitvoeren, gebruikt u uw IDE om deze code uit te voeren of gebruikt u de opdrachtregel om het Java-bestand uit te voeren.

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

Note

Wanneer u deze code uitvoert, wordt het proces voor het aanmaken van een instantie gestart. Dit kan enkele minuten duren.

U kunt de geïmplementeerde Azure Flexibele PostgreSQL-server bekijken via de Azure-portal, Azure CLI, Azure PowerShell en verschillende andere hulpprogramma's om de implementatie te valideren en de geïmplementeerde resources te controleren.

Een database maken

U kunt een nieuwe database toevoegen aan de zojuist gemaakte server. Zorg ervoor dat uw Azure Database for PostgreSQL Flexible Server actief is.

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

Servergegevens bijwerken

Maak een UpdateServer.java bestand.

U kunt servergegevens ook bijwerken met behulp van deze Java SDK en de update() methode aanroepen vanuit de postgresqlflexibleserver bibliotheek.

Met behulp van de update methode kunt u de versie, gebruikersnaam, wachtwoord en andere eigenschappen van de beheerder bijwerken.

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

Voer het Java-bestand uit en controleer de wijzigingen die in de resource zijn aangebracht met behulp van het UpdateServer.java bestand.

De hulpbronnen opschonen

U kunt de gemaakte flexibele servers opschonen door de flexibele server te verwijderen met de delete() methode uit de postgresqlflexibleserver bibliotheek.

Maak een DeleteServer.java bestand en voeg de volgende code toe.

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

}

Vervang de volgende parameters door uw gegevens:

  • subscription-id: Uw eigen abonnements-id.
  • resource-group: De naam van de resourcegroep die u wilt gebruiken.
  • tenant-id : De tenant-id van uw Microsoft Entra-account. U kunt dit ophalen via de portal of met behulp van de CLI.
  • server-name: De naam van de flexibele Azure-databaseserver die u hebt gemaakt.

U kunt ook de resourcegroep verwijderen die is gemaakt via de portal, CLI of PowerShell. Als u deze wilt verwijderen met behulp van CLI of PowerShell, volgt u de stappen die worden vermeld in de sectie CLI en PowerShell.

Vervang tijdelijke aanduidingen door uw gegevens en voer het bestand uit.

U kunt de resourcegroep ook verwijderen met behulp van:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure Portal: Navigeer naar de resourcegroep en verwijder deze.