Erstellen eines Azure Database for PostgreSQL flexiblen Servers mithilfe der Azure SDK für Java

In dieser Schnellstartanleitung erfahren Sie, wie Sie einen Azure Database for PostgreSQL flexiblen Server mithilfe der Azure SDK für Java erstellen, aktualisieren und löschen. Die Codebeispiele werden in Java geschrieben und verwenden die Azure SDK-Bibliotheken, um mit dem Azure-Datenbankdienst für PostgreSQL zu interagieren.

Die Azure SDK für Java stellt eine Reihe von Bibliotheken bereit, mit denen Sie mithilfe von Java mit Azure Diensten interagieren können. Das SDK bietet ein konsistentes Programmiermodell und vereinfacht das Arbeiten mit Azure-Diensten, einschließlich Azure Database for PostgreSQL.

Voraussetzungen

Von Azure Java SDK unterstützte Vorgänge

Azure SDK für Java stellt die azure-resourcemanager-postgresqlflexibleserver Abhängigkeit bereit, die diese Vorgänge für Azure-Datenbanken für PostgreSQL unterstützt.

  • Erstellen eines flexiblen Servers für Azure Database for PostgreSQL
    Sie können einen neuen flexiblen Azure PostgreSQL-Server mit angegebenen Konfigurationen wie Standort, SKU, Speicher und Version erstellen.

  • Aktualisieren von Azure Database for PostgreSQL – Flexible Server
    Sie können vorhandene Azure Flexible Server von PostgreSQL aktualisieren, einschließlich der Änderung von Konfigurationen wie Administratoranmeldung, Kennwort, SKU, Speicher und Version.

  • Löschen von flexiblen Servern für Azure Database for PostgreSQL

  • Abrufen von Azure-Datenbank für PostgreSQL-Informationen
    Sie können Details zu bestehenden flexiblen Azure Database for PostgreSQL-Servern abrufen, einschließlich Konfiguration, Status und anderer Metadaten.

  • Verwalten von Datenbanken
    Sie können Datenbanken innerhalb des flexiblen Servers Azure PostgreSQL erstellen, aktualisieren, löschen und abrufen.

  • Verwalten von Firewallregeln
    Sie können Firewallregeln für eine Instanz erstellen, aktualisieren, löschen und abrufen, um den Zugriff zu steuern.

  • Verwalten von Konfigurationseinstellungen
    Sie können Konfigurationseinstellungen für einen flexiblen Azure PostgreSQL-Server verwalten, einschließlich des Abrufens und Aktualisierens von Parametern.

Einrichten Ihres Kontos mithilfe von Azure CLI

Bevor Sie die Azure SDK für Java zum Erstellen, Aktualisieren oder Löschen eines Azure Database for PostgreSQL flexiblen Servers verwenden, melden Sie sich mit dem Azure CLI bei Ihrem Azure-Konto an.

Melden Sie sich mit Azure CLI bei Ihrem Konto an.

az login

Rufen Sie Ihre Mandanten-ID für Ihr Konto ab, da Sie sie für den Code im späteren Abschnitt benötigen.

az account show --query tenantId --output tsv

Projekt erstellen

Erstellen Sie ein neues Maven-Projekt in Ihrer bevorzugten IDE, und fügen Sie die Abhängigkeiten für die Azure-Datenbank für PostgreSQL-Bibliothek hinzu.

Wenn Sie ein Maven-Projekt erstellen, erstellen Sie eine pom.xml Datei. Stellen Sie sicher, dass Sie alle Abhängigkeiten unter dem Tag <dependencies> dieser Datei hinzufügen.

<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

Überprüfen Sie die neueste Version für alle Abhängigkeiten, bevor Sie sie zu Ihrer Datei hinzufügen.

Erstellen einer Azure Database for PostgreSQL-Instanz

Um einen Azure Flexiblen Server für PostgreSQL zu erstellen, erstellen Sie eine Datei CreateServer.java mit dem folgenden 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 diesem Beispiel wird das Erstellen einer flexiblen Serverinstanz für Azure Database for PostgreSQL mit der Klasse PostgreSqlManager demonstriert. Bevor Sie die Erstellungsmethode aufrufen, authentifiziert sie sich mithilfe von TokenCredential und AzureProfile. Nach der Authentifizierung definiert sie den flexiblen Azure PostgreSQL-Server mit Ihrer angegebenen Konfiguration.

Ersetzen Sie die folgenden Parameter im Code durch eigene Daten:

  • subscription-id: Ihre Azure-Abonnement-ID.
  • tenant-id : Die Mandanten-ID Ihres Microsoft Entra-Kontos. Sie können dies über das Portal oder über die CLI abrufen.
  • resource-group-name: Der Name Ihrer Ressourcengruppe.
  • server-name: ein eindeutiger Name für den PostgreSQL-Server.
  • location: Die Azure-Region für Ihren Server.
  • admin-username: Der Benutzername des Administrators.
  • admin-password: Das Kennwort des Administrators.

Authentifizierung

Sie können Ihre Anmeldeinformationen auf unterschiedliche Weise authentifizieren. Verwenden Sie DefaultAzureCredentialBuilder in diesem Beispiel zum Konfigurieren und Erstellen eines TokenCredential-Objekts, bei dem es sich um anmeldeinformationen handelt, die Sie zum Authentifizieren mit Azure Diensten verwenden können. Melden Sie sich mit Azure CLI an, wie in den Voraussetzungen erwähnt.

Führen Sie die Datei aus.

Stellen Sie sicher, dass Sie ein Maven-Projekt erstellen und die folgenden Befehle ausführen. Führen Sie diese Befehle jedes Mal aus, wenn Sie ihrer pom.xml Datei eine neue Abhängigkeit hinzufügen, um diese Abhängigkeit in Ihrem lokalen Repository zu installieren:

mvn clean install

Um die Datei auszuführen, verwenden Sie Ihre IDE, um diesen Code auszuführen, oder verwenden Sie die Befehlszeile, um die Java Datei auszuführen.

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

Note

Wenn Sie diesen Code ausführen, wird der Instanzerstellungsprozess initiiert, der einige Minuten dauern kann.

Sie können den bereitgestellten Azure Flexiblen Server von PostgreSQL über das Azure Portal, Azure CLI, Azure PowerShell und verschiedene andere Tools überprüfen, um die Bereitstellung zu überprüfen und die bereitgestellten Ressourcen zu überprüfen.

Erstellen einer Datenbank

Sie können ihrem neu erstellten Server eine neue Datenbank hinzufügen. Stellen Sie sicher, dass Ihr Azure Database for PostgreSQL – Flexible Server ausgeführt wird.

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

Aktualisieren der Serverdaten

Erstellen Sie eine UpdateServer.java Datei.

Sie können Serverdaten auch mithilfe dieses Java SDK aktualisieren und die update() Methode aus der postgresqlflexibleserver Bibliothek aufrufen.

Mithilfe der update Methode können Sie die Version, den Administratorbenutzernamen, das Kennwort und andere Eigenschaften aktualisieren.

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

Führen Sie die Java Datei aus, und überprüfen Sie die in der Ressource vorgenommenen Änderungen mithilfe der UpdateServer.java Datei.

Bereinigen von Ressourcen

Sie können die erstellten flexiblen Server bereinigen, indem Sie den flexiblen Server mit der delete() Methode aus der postgresqlflexibleserver Bibliothek löschen.

Erstellen Sie eine Datei namens DeleteServer.java, und fügen Sie den folgenden Code hinzu.

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

}

Ersetzen Sie die folgenden Parameter durch eigene Daten:

  • subscription-id: Ihre eigene Abonnement-ID.
  • resource-group: Der Name der Ressourcengruppe, die Sie verwenden möchten.
  • tenant-id : Die Mandanten-ID Ihres Microsoft Entra-Kontos. Sie können dies über das Portal oder über die CLI abrufen.
  • server-name: Der Name des Azure datenbankflexiblen Servers, den Sie erstellt haben.

Sie können auch die über das Portal, die CLI oder PowerShell erstellte Ressourcengruppe löschen. Wenn Sie sie mithilfe von CLI oder PowerShell löschen möchten, führen Sie die im Abschnitt CLI und PowerShell genannten Schritte aus.

Ersetzen Sie Platzhalter durch Ihre Details, und führen Sie die Datei aus.

Alternativ können Sie die Ressourcengruppe mit folgendem Befehl entfernen:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure-Portal: Navigieren Sie zur Ressourcengruppe, und löschen Sie sie.