Skapa en Azure Database for PostgreSQL flexibel server med hjälp av Azure SDKs för Java

I den här snabbstarten får du lära dig hur du skapar, uppdaterar och tar bort en Azure Database for PostgreSQL flexibel server med hjälp av Azure SDKs för Java. Kodexemplen skrivs i Java och använder Azure SDKs-biblioteken för att interagera med Azure Database for PostgreSQL-tjänsten.

Azure SDKs för Java innehåller en uppsättning bibliotek som du kan använda för att interagera med Azure tjänster med hjälp av Java. SDK:t tillhandahåller en konsekvent programmeringsmodell och förenklar arbetet med Azure-tjänster, inklusive Azure Database for PostgreSQL.

Förutsättningar

Åtgärder som stöds av Azure Java SDK

Azure SDKs för Java tillhandahåller det azure-resourcemanager-postgresqlflexibleserver beroende som stöder dessa åtgärder för Azure Databases for PostgreSQL.

  • Skapa Azure Database for PostgreSQL flexibla servrar
    Du kan skapa en ny Azure flexibel PostgreSQL-server med angivna konfigurationer som plats, SKU, lagring och version.

  • Uppdatering av Azure Database for PostgreSQL Flexible Server
    Du kan uppdatera befintliga Azure flexibla PostgreSQL-servrar, inklusive ändring av konfigurationer som administratörsinloggning, lösenord, SKU, lagring och version.

  • Ta bort flexibla servrar för Azure Database for PostgreSQL

  • Hämtar information om Azure Database för PostgreSQL
    Du kan hämta information om befintliga Azure flexibla PostgreSQL-servrar, inklusive deras konfigurationer, status och andra metadata.

  • Hantera databaser
    Du kan skapa, uppdatera, ta bort och hämta databaser på den flexibla Azure PostgreSQL-servern.

  • Hantera brandväggsregler
    Du kan skapa, uppdatera, ta bort och hämta brandväggsregler för en instans för att styra åtkomsten.

  • Hantera konfigurationsinställningar
    Du kan hantera konfigurationsinställningar för en Azure Flexibel PostgreSQL-server, inklusive hämtning och uppdatering av parametrar.

Konfigurera ditt konto med hjälp av Azure CLI

Innan du använder Azure SDKs för Java för att skapa, uppdatera eller ta bort en Azure Database for PostgreSQL flexibel server loggar du in på ditt Azure-konto med hjälp av Azure CLI.

Logga in på ditt konto med hjälp av Azure CLI.

az login

Hämta ditt klient-ID för ditt konto när du behöver det för koden i det senare avsnittet.

az account show --query tenantId --output tsv

Skapa projekt

Skapa ett nytt Maven-projekt i önskad IDE och lägg till beroendena för Azure Database for PostgreSQL-biblioteket.

När du skapar ett Maven-projekt skapar du en pom.xml fil. Se till att du lägger till alla beroenden under den här filens <dependencies> tagg.

<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

Kontrollera den senaste versionen för alla beroenden innan du lägger till dem i filen.

Skapa en Azure Database for PostgreSQL-instans

Skapa en flexibel Azure PostgreSQL-server genom att skapa en fil med namnet CreateServer.java med följande kod.

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

Det här exemplet visar hur du skapar en flexibel Instansserver för Azure Database for PostgreSQL med hjälp av PostgreSqlManager klassen . Innan du anropar create-metoden autentiseras den med hjälp av TokenCredential och AzureProfile. När den har autentiserats definierar den den flexibla Azure PostgreSQL-servern med den angivna konfigurationen.

Ersätt följande parametrar i koden med dina data:

  • subscription-id: ID:t för din Azure-prenumeration.
  • tenant-id : Hyres-ID för ditt Microsoft Entra-konto. Du kan hämta detta från portalen eller med hjälp av CLI.
  • resource-group-name: Namnet på resursgruppen.
  • server-name: Ett unikt namn för PostgreSQL-servern.
  • location: Azure-regionen för servern.
  • admin-username: Administratörens användarnamn.
  • admin-password: Administratörslösenordet.

Authentication

Du kan autentisera dina autentiseringsuppgifter på olika sätt. I det här exemplet använder DefaultAzureCredentialBuilder du för att konfigurera och skapa ett TokenCredential-objekt, vilket är en autentiseringsuppgift som du kan använda för att autentisera med Azure tjänster. Logga in med hjälp av Azure CLI, enligt kraven.

Kör filen

Se till att du skapar ett Maven-projekt och kör följande kommandon. Kör dessa kommandon varje gång du lägger till ett nytt beroende i pom.xml filen för att installera det beroendet på din lokala lagringsplats:

mvn clean install

Om du vill köra filen använder du din IDE för att köra den här koden eller använder kommandoraden för att köra Java-filen.

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

Note

När du kör den här koden initieras processen för att skapa instansen, vilket kan ta några minuter att slutföra.

Du kan granska den distribuerade Azure Flexibla PostgreSQL-servern via Azure-portalen, Azure CLI, Azure PowerShell och olika andra verktyg för att verifiera distributionen och granska de distribuerade resurserna.

Skapa en databas

Du kan lägga till en ny databas på den nyligen skapade servern. Kontrollera att din Azure Database for PostgreSQL flexibla servern körs.

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

Uppdatera serverdata

Skapa en UpdateServer.java fil.

Du kan också uppdatera serverdata med hjälp av den här Java SDK och anropa update() metoden från postgresqlflexibleserver biblioteket.

Med hjälp update av metoden kan du uppdatera versionen, administratörens användarnamn, lösenord och andra egenskaper.

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

Kör Java-filen och granska ändringarna som gjorts i resursen med hjälp av UpdateServer.java-filen.

Rensa resurser

Du kan rensa de skapade flexibla servrarna genom att ta bort den flexibla servern med delete() -metoden från postgresqlflexibleserver biblioteket.

Skapa en DeleteServer.java fil och lägg till följande kod.

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

}

Ersätt följande parametrar med dina data:

  • subscription-id: Ditt eget prenumerations-ID.
  • resource-group: Namnet på den resursgrupp som du vill använda.
  • tenant-id : Hyres-ID för ditt Microsoft Entra-konto. Du kan hämta detta från portalen eller med hjälp av CLI.
  • server-name: Namnet på den flexibla Azure databasserver som du skapade.

Du kan också ta bort resursgruppen som skapats via portalen, CLI eller PowerShell. Om du vill ta bort det med hjälp av CLI eller PowerShell följer du stegen som nämns i AVSNITTET CLI och PowerShell.

Ersätt platshållarna med din information och kör filen.

Du kan också ta bort resursgruppen med hjälp av:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell:Remove-AzResourceGroup -Name <resource_group>
  • Azure Portal: Navigera till resursgruppen och ta bort den.