Membuat server fleksibel Azure Database for PostgreSQL dengan menggunakan Azure SDK untuk Java

Dalam panduan cepat ini, Anda akan mempelajari cara membuat, memperbarui, dan menghapus Azure Database for PostgreSQL Flexible Server menggunakan Azure SDK untuk Java. Contoh kode ditulis dalam Java dan menggunakan pustaka Azure SDK untuk berinteraksi dengan layanan Azure Database for PostgreSQL.

Azure SDK untuk Java menyediakan sekumpulan pustaka yang dapat Anda gunakan untuk berinteraksi dengan layanan Azure dengan menggunakan Java. SDK menyediakan model pemrograman yang konsisten dan menyederhanakan bekerja dengan layanan Azure, termasuk Azure Database for PostgreSQL.

Prerequisites

Operasi yang didukung oleh Azure Java SDK

Azure SDK untuk Java menyediakan azure-resourcemanager-postgresqlflexibleserver dependensi yang mendukung operasi ini untuk Azure Database for PostgreSQL.

  • Membuat Azure Database for PostgreSQL Flexible Server
    Anda dapat membuat server fleksibel postgreSQL Azure baru dengan konfigurasi tertentu seperti lokasi, SKU, penyimpanan, dan versi.

  • Memperbarui server fleksibel di Azure Database for PostgreSQL
    Anda dapat memperbarui server fleksibel Azure PostgreSQL yang ada, termasuk mengubah konfigurasi seperti masuk administrator, kata sandi, SKU, penyimpanan, dan versi.

  • Menghapus server fleksibel untuk Azure Database for PostgreSQL

  • Mengambil informasi dari Azure Database untuk PostgreSQL
    Anda dapat mengambil detail tentang server fleksibel Azure PostgreSQL yang ada, termasuk konfigurasi, status, dan metadata lainnya.

  • Mengelola database
    Anda dapat membuat, memperbarui, menghapus, dan mengambil database dalam server fleksibel Azure PostgreSQL.

  • Mengelola aturan firewall
    Anda dapat membuat, memperbarui, menghapus, dan mengambil aturan firewall untuk instans guna mengontrol akses.

  • Mengelola pengaturan konfigurasi
    Anda dapat mengelola pengaturan konfigurasi untuk server fleksibel Azure PostgreSQL, termasuk mengambil dan memperbarui parameter.

Menyiapkan akun Anda dengan menggunakan Azure CLI

Sebelum menggunakan Azure SDK untuk Java membuat, memperbarui, atau menghapus server fleksibel Azure Database for PostgreSQL, masuk ke akun Azure Anda dengan menggunakan Azure CLI.

Masuk ke akun Anda dengan menggunakan Azure CLI.

az login

Dapatkan ID tenant untuk akun Anda karena Anda akan memerlukannya untuk kode pada bagian berikutnya.

az account show --query tenantId --output tsv

Membuat proyek

Buat proyek Maven baru di IDE pilihan Anda dan tambahkan dependensi untuk pustaka Azure Database for PostgreSQL.

Saat membuat proyek Maven, Anda membuat pom.xml file. Pastikan Anda menambahkan semua dependensi di bawah tag file <dependencies> ini.

<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

Periksa versi terbaru untuk semua dependensi sebelum menambahkannya ke file Anda.

Buatlah instans Azure Database for PostgreSQL

Untuk membuat server fleksibel Azure PostgreSQL, buat file bernama CreateServer.java dengan kode berikut.

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

Contoh ini menunjukkan pembuatan server instans fleksibel Azure Database for PostgreSQL menggunakan PostgreSqlManager kelas . Sebelum memanggil metode buat, metode ini mengautentikasi dengan menggunakan TokenCredential dan AzureProfile. Setelah diautentikasi, ia mendefinisikan server fleksibel Azure PostgreSQL dengan konfigurasi yang Anda tentukan.

Ganti parameter berikut dalam kode dengan data Anda:

  • subscription-id: ID langganan Azure Anda.
  • tenant-id : ID tenant akun Microsoft Entra Anda. Anda bisa mendapatkan ini dari portal atau dengan menggunakan CLI.
  • resource-group-name: Nama grup sumber daya Anda.
  • server-name: Nama unik untuk server PostgreSQL Anda.
  • location: Wilayah Azure untuk server Anda.
  • admin-username: Nama pengguna administrator.
  • admin-password: Kata sandi administrator.

Authentication

Anda dapat mengautentikasi kredensial Anda dengan cara yang berbeda. Dalam contoh ini, gunakan DefaultAzureCredentialBuilder untuk mengonfigurasi dan membuat objek TokenCredential, yang merupakan kredensial yang dapat Anda gunakan untuk mengautentikasi dengan layanan Azure. Masuk dengan menggunakan Azure CLI, seperti yang disebutkan dalam prasyarat.

Jalankan file

Pastikan Anda membuat proyek Maven dan menjalankan perintah berikut. Jalankan perintah ini setiap kali Anda menambahkan dependensi baru dalam file Anda pom.xml untuk menginstal dependensi tersebut di repositori lokal Anda:

mvn clean install

Untuk menjalankan file, gunakan IDE Anda untuk menjalankan kode ini atau gunakan baris perintah untuk menjalankan file Java.

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

Note

Menjalankan kode ini memulai proses pembuatan instans, yang mungkin memakan waktu beberapa menit untuk diselesaikan.

Anda dapat meninjau server fleksibel Azure PostgreSQL yang disebarkan melalui portal Azure, Azure CLI, Azure PowerShell, dan berbagai alat lain untuk memvalidasi penyebaran dan meninjau sumber daya yang disebarkan.

Membuat database

Anda bisa menambahkan database baru ke server yang baru dibuat. Pastikan server fleksibel Azure Database for PostgreSQL Anda berjalan.

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

Memperbarui data server

Buat sebuah file UpdateServer.java.

Anda juga dapat memperbarui data server dengan menggunakan SDK Java ini dan memanggil metode update() dari pustaka postgresqlflexibleserver.

Dengan menggunakan metode ini update , Anda dapat memperbarui versi, nama pengguna admin, kata sandi, dan properti lainnya.

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

Jalankan file Java dan tinjau perubahan yang dibuat di sumber daya dengan menggunakan UpdateServer.java file .

Membersihkan sumber daya

Anda dapat merapikan server fleksibel yang telah dibuat dengan menghapusnya menggunakan metode delete() dari pustaka postgresqlflexibleserver.

Buat DeleteServer.java file dan tambahkan kode berikut.

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

}

Ganti parameter berikut dengan data Anda:

  • subscription-id: ID langganan Anda sendiri.
  • resource-group: Nama grup sumber daya yang ingin Anda gunakan.
  • tenant-id : ID tenant akun Microsoft Entra Anda. Anda bisa mendapatkan ini dari portal atau dengan menggunakan CLI.
  • server-name: Nama server fleksibel database Azure yang Anda buat.

Anda juga dapat menghapus grup sumber daya yang dibuat melalui portal, CLI, atau PowerShell. Jika Anda ingin menghapusnya dengan menggunakan CLI atau PowerShell, ikuti langkah-langkah yang disebutkan di bagian CLI dan PowerShell.

Ganti tempat penampung dengan detail Anda dan jalankan file.

Atau, Anda dapat menghapus grup sumber daya dengan menggunakan:

  • Azure CLI:az group delete --name <resource_group>
  • PowerShell: Remove-AzResourceGroup -Name <resource_group>
  • Portal Microsoft Azure: Navigasikan ke grup sumber daya dan hapus.