Vytvoření flexibilního serveru Azure Database for PostgreSQL pomocí Azure SDK pro Java

V tomto rychlém startu zjistíte, jak vytvořit, aktualizovat a odstranit flexibilní server Azure Database for PostgreSQL pomocí Azure SDK pro Java. Příklady kódu jsou psané v Javě a používají knihovny Azure SDK k interakci se službou Azure Database for PostgreSQL.

Azure SDK pro Java poskytuje sadu knihoven, které můžete použít k interakci se službami Azure pomocí Java. Sada SDK poskytuje konzistentní programovací model a zjednodušuje práci se službami Azure, včetně Azure Database for PostgreSQL.

Prerequisites

Operace podporované sadou Azure Java SDK

Azure SDK pro Java poskytuje azure-resourcemanager-postgresqlflexibleserver závislost, která podporuje tyto operace pro Azure Databases for PostgreSQL.

  • Vytváření flexibilních serverů Azure Database for PostgreSQL
    Můžete vytvořit nový flexibilní server Azure PostgreSQL se zadanými konfiguracemi, jako je umístění, skladová položka, úložiště a verze.

  • Aktualizace Azure Database for PostgreSQL flexibilních serverů
    Existující Azure flexibilní servery PostgreSQL můžete aktualizovat, včetně změn konfigurací, jako je přihlášení správce, heslo, skladová položka, úložiště a verze.

  • Odstranění flexibilních serverů Azure Database for PostgreSQL

  • Načítání informací o Službě Azure Database for PostgreSQL
    Můžete načíst podrobnosti o existujících flexibilních serverech Azure PostgreSQL, včetně jejich konfigurací, stavu a dalších metadat.

  • Správa databází
    Databáze můžete vytvářet, aktualizovat, odstraňovat a načítat na flexibilním serveru Azure PostgreSQL.

  • Správa pravidel brány firewall
    Můžete vytvářet, aktualizovat, odstraňovat a získávat pravidla firewallu u instance za účelem řízení přístupu.

  • Správa nastavení konfigurace
    Můžete spravovat nastavení konfigurace pro flexibilní server Azure PostgreSQL, včetně načítání a aktualizace parametrů.

Nastavení účtu pomocí Azure CLI

Před použitím Azure SDK pro Java k vytvoření, aktualizaci nebo odstranění flexibilního serveru Azure Database for PostgreSQL se přihlaste ke svému Azure účtu pomocí Azure CLI.

Přihlaste se ke svému účtu pomocí Azure CLI.

az login

Získejte ID tenanta pro svůj účet, protože ho budete potřebovat pro kód v následující části.

az account show --query tenantId --output tsv

Vytvoření projektu

Vytvořte nový projekt Maven v preferovaném integrovaném vývojovém prostředí (IDE) a přidejte závislosti pro knihovnu Azure Database for PostgreSQL.

Když vytvoříte projekt Maven, vytvoříte pom.xml soubor. Ujistěte se, že pod značku <dependencies> v tomto souboru přidáte všechny závislosti.

<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

Než je přidáte do souboru, zkontrolujte nejnovější verzi všech závislostí.

Vytvoření instance Azure Database for PostgreSQL

Pokud chcete vytvořit flexibilní server Azure PostgreSQL, vytvořte soubor s názvem CreateServer.java s následujícím kódem.

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

Tento příklad ukazuje vytvoření flexibilního serveru instance Azure Database for PostgreSQL pomocí PostgreSqlManager třídy. Před vyvoláním metody create se ověří pomocí TokenCredential a AzureProfile. Po ověření definuje flexibilní server Azure PostgreSQL se zadanou konfigurací.

Nahraďte následující parametry v kódu vašimi daty:

  • subscription-id: ID vašeho předplatného Azure.
  • tenant-id : ID tenanta vašeho účtu Microsoft Entra. Můžete to získat z portálu nebo pomocí rozhraní příkazového řádku.
  • resource-group-name: Název vaší skupiny prostředků.
  • server-name: Jedinečný název serveru PostgreSQL.
  • location: Oblast Azure pro váš server.
  • admin-username: Uživatelské jméno správce.
  • admin-password: Heslo správce.

Autentizace

Přihlašovací údaje můžete ověřovat různými způsoby. V tomto příkladu slouží DefaultAzureCredentialBuilder ke konfiguraci a vytvoření objektu TokenCredential, což je přihlašovací údaje, které můžete použít k ověření pomocí Azure služeb. Přihlaste se pomocí Azure CLI, jak je uvedeno v požadavcích.

Spuštění souboru

Ujistěte se, že vytvoříte projekt Maven a spustíte následující příkazy. Tyto příkazy spusťte pokaždé, když do pom.xml souboru přidáte novou závislost pro instalaci této závislosti v místním úložišti:

mvn clean install

Pokud chcete soubor spustit, použijte integrované vývojové prostředí (IDE) ke spuštění tohoto kódu nebo ke spuštění souboru Java pomocí příkazového řádku.

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

Note

Spuštěním tohoto kódu zahájíte proces vytváření instance, což může trvat několik minut.

Nasazený flexibilní server Azure PostgreSQL můžete zkontrolovat prostřednictvím portálu Azure, Azure CLI, Azure PowerShell a různých dalších nástrojů k ověření nasazení a kontrole nasazených prostředků.

Vytvoření databáze

Do nově vytvořeného serveru můžete přidat novou databázi. Ujistěte se, že je spuštěný flexibilní server Azure Database for PostgreSQL.

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

Aktualizace dat serveru

Vytvořte UpdateServer.java soubor.

Data serveru můžete také aktualizovat pomocí této sady Java SDK a voláním update() metody z postgresqlflexibleserver knihovny.

Pomocí update této metody můžete aktualizovat verzi, uživatelské jméno správce, heslo a další vlastnosti.

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

Spusťte soubor Java a zkontrolujte změny provedené v prostředku pomocí UpdateServer.java souboru.

Vyčistěte zdroje

Vytvořené flexibilní servery můžete vyčistit odstraněním flexibilního serveru metodou delete() z postgresqlflexibleserver knihovny.

Vytvořte DeleteServer.java soubor a přidejte následující kód.

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

}

Nahraďte následující parametry vašimi daty:

  • subscription-id: Vlastní ID předplatného.
  • resource-group: Název skupiny prostředků, kterou chcete použít.
  • tenant-id : ID tenanta vašeho účtu Microsoft Entra. Můžete to získat z portálu nebo pomocí rozhraní příkazového řádku.
  • server-name: Název flexibilního serveru Azure databáze, který jste vytvořili.

Skupinu prostředků vytvořenou prostřednictvím portálu, rozhraní příkazového řádku nebo PowerShellu můžete také odstranit. Pokud ho chcete odstranit pomocí rozhraní příkazového řádku nebo PowerShellu, postupujte podle kroků uvedených v části Rozhraní příkazového řádku a PowerShellu.

Zástupné symboly nahraďte podrobnostmi a spusťte soubor.

Případně můžete skupinu prostředků odebrat pomocí:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure Portal: Přejděte do skupiny prostředků a odstraňte ji.