Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten får du lära dig hur du skapar, uppdaterar och tar bort en flexibel Azure Database for PostgreSQL-serverinstans med Azure SDK för Java. Kodexemplen skrivs i Java och använder Azure SDK-biblioteken för att interagera med Azure Database for PostgreSQL-tjänsten.
Azure SDK för Java innehåller en uppsättning bibliotek som gör att du kan 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
- Ett Azure-konto med en aktiv prenumeration
- Java Development Kit (JDK) med den senaste versionen
- Ladda ned Maven för att använda Azure Java SDK-biblioteket
- Azure CLI installerat på din lokala dator
Åtgärder som stöds av Azure Java SDK
Azure SDK för Java tillhandahåller azure-resourcemanager-postgresqlflexibleserver beroende som stöder dessa funktioner för Azure-databaser för PostgreSQL.
Skapa Azure Database för PostgreSQL flexibla serverinstanser
Du kan skapa en ny flexibel Azure PostgreSQL-serverinstans med angivna konfigurationer som plats, SKU, lagring och version.Uppdatera Azure-databasen för PostgreSQL-flexibla serverexemplar
Du kan uppdatera befintliga flexibla Azure PostgreSQL-serverinstanser, inklusive att ändra konfigurationer som administratörsinloggning, lösenord, SKU, lagring och version.Ta bort Azure Database för PostgreSQL flexibla serverinstanser
Hämtar information om Azure Database för PostgreSQL
Du kan hämta information om befintliga flexibla Azure PostgreSQL-serverinstanser, inklusive deras konfigurationer, status och andra metadata.Hantera databaser
Du kan skapa, uppdatera, ta bort och hämta databaser i den flexibla Azure PostgreSQL-serverinstansen.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 flexibel Azure PostgreSQL-serverinstans, inklusive hämtning och uppdatering av serverparametrar.
Konfigurera ditt konto med az cli
Innan du använder Azure SDK för Java för att skapa, uppdatera eller ta bort en flexibel Azure Database for PostgreSQL-serverinstans måste du logga in på ditt Azure-konto med hjälp av Azure CLI.
Logga in på ditt konto med az CLI
az login
Hämta ditt klient-ID för ditt konto eftersom det behövs för koden vid ett senare tillfälle.
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 har skapat ett Maven-projekt skapas en pom.xml fil. Se till att alla beroenden läggs till 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>
Anmärkning
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-serverinstans 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 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 instance 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 metoden create autentiserar den med hjälp av TokenCredential och AzureProfile. När den har autentiserats definierar den den flexibla Azure PostgreSQL-serverinstansen med din angivna konfiguration.
Ersätt följande parametrar i koden med dina data:
-
subscription-id: Ditt Azure-prenumerations-ID. -
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
Det finns olika sätt att autentisera dina autentiseringsuppgifter. I det här exemplet har vi använt DefaultAzureCredentialBuilder för att konfigurera och skapa ett TokenCredential-objekt, vilket är en autentiseringsuppgift som kan användas för att autentisera med Azure-tjänster. Logga in genom Azure CLI, som nämns i förutsättningarna.
Kör filen
Kontrollera att du har skapat ett maven-projekt och kört kommandona nedan. se till att du 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 kan du använda din IDE för att köra den här koden eller använda kommandoraden för att köra Java-filen.
javac <file-name>.java
java <file-name>
Anmärkning
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 flexibla Azure PostgreSQL-serverinstansen 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 flexibla Azure Database for PostgreSQL-serverinstans är igång.
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 serverdatan
Skapa en UpdateServer.java-fil.
Du kan också uppdatera serverdata med hjälp av denna Java SDK genom att anropa update() metoden från postgresqlflexibleserver biblioteket.
Med hjälp av update metoden kan du uppdatera versionen, administratörens användarnamn, lösenord osv.
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 de ändringar som gjorts i resursen med filen "UpdateServer.java".
Rensa resurser
Du kan rensa de skapade flexibla serverinstanserna genom att ta bort flexibla serverinstansen 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å azure-databasens flexibla serverinstans som du skapade.
Du kan också ta bort resursgruppen som skapats via portalen, CLI eller PowerShell. Om du vill ta bort den 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.