Bagikan melalui


Mengikat Azure Database for PostgreSQL ke aplikasi Anda di Azure Spring Apps

Catatan

Paket Basic, Standard, dan Enterprise tidak digunakan lagi mulai pertengahan Maret 2025, dengan periode penghentian 3 tahun. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.

Konsumsi Standar dan paket khusus akan ditolak mulai 30 September 2024, dengan pematian lengkap setelah enam bulan. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat Memigrasikan konsumsi Azure Spring Apps Standard dan paket khusus ke Azure Container Apps.

Artikel ini berlaku untuk:✅ Java ✅ C#

Artikel ini berlaku untuk:✅ Basic/Standard ✅ Enterprise

Dengan Azure Spring Apps, Anda dapat mengikat layanan Azure tertentu ke aplikasi Anda secara otomatis, daripada harus mengonfigurasi aplikasi Spring Boot Anda secara manual. Artikel ini memperlihatkan kepada Anda cara mengikat aplikasi Anda ke instans Azure Database for PostgreSQL Anda.

Dalam artikel ini, kami menyertakan dua metode autentikasi: Autentikasi Microsoft Entra dan autentikasi PostgreSQL. Tab Tanpa Kata Sandi memperlihatkan autentikasi Microsoft Entra dan tab Kata Sandi memperlihatkan autentikasi PostgreSQL.

Autentikasi Microsoft Entra adalah mekanisme untuk menyambungkan ke Azure Database for PostgreSQL menggunakan identitas yang ditentukan dalam ID Microsoft Entra. Dengan autentikasi Microsoft Entra, Anda dapat mengelola identitas pengguna database dan layanan Microsoft lain di lokasi pusat, yang menyederhanakan manajemen izin.

Autentikasi PostgreSQL menggunakan akun yang disimpan di PostgreSQL. Jika Anda memilih untuk menggunakan kata sandi sebagai kredensial untuk akun, kredensial ini disimpan dalam tabel pengguna. Karena kata sandi ini disimpan di PostgreSQL, Anda perlu mengelola rotasi kata sandi sendiri.

Prasyarat

Siapkan proyek Anda

Gunakan langkah-langkah berikut untuk menyiapkan proyek Anda.

  1. Dalam file pom.xml dari proyek Anda, tambah dependensi berikut:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-jdbc-postgresql</artifactId>
    </dependency>
    
  2. Dalam file application.properties, hapus properti spring.datasource.* apa pun.

  3. Perbarui aplikasi saat ini dengan menjalankan az spring app deploy, atau buat penyebaran baru untuk perubahan ini dengan menjalankan az spring app deployment create.

Mengikat aplikasi Anda ke instans Azure Database for PostgreSQL

Catatan

Pastikan untuk memilih hanya salah satu pendekatan berikut untuk membuat koneksi. Jika Anda telah membuat tabel dengan satu koneksi, pengguna lain tidak dapat mengakses atau mengubah tabel. Ketika Anda mencoba pendekatan lain, aplikasi akan melemparkan kesalahan seperti "Izin ditolak". Untuk memperbaiki masalah ini, sambungkan ke database baru atau hapus dan buat ulang database yang sudah ada.

Catatan

Secara default, Konektor Layanan dibuat di tingkat aplikasi. Untuk mengambil alih koneksi, Anda dapat membuat koneksi lain lagi dalam penyebaran.

  1. Instal ekstensi Tanpa Kata Sandi Konektor Layanan untuk Azure CLI:

    az extension add --name serviceconnector-passwordless --upgrade
    
  2. Konfigurasikan Azure Spring Apps untuk menyambungkan ke Database PostgreSQL dengan identitas terkelola yang ditetapkan sistem menggunakan az spring connection create perintah .

    az spring connection create postgres-flexible \
        --resource-group $AZ_SPRING_APPS_RESOURCE_GROUP \
        --service $AZ_SPRING_APPS_SERVICE_INSTANCE_NAME \
        --app $APP_NAME \
        --deployment $DEPLOYMENT_NAME \
        --target-resource-group $POSTGRES_RESOURCE_GROUP \
        --server $POSTGRES_SERVER_NAME \
        --database $DATABASE_NAME \
        --system-identity
    

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara mengikat aplikasi di Azure Spring Apps ke instans Azure Database for PostgreSQL. Untuk mempelajari selengkapnya tentang mengikat layanan ke aplikasi, lihat Mengikat database Azure Cosmos DB ke aplikasi di Azure Spring Apps.