Latihan - Menyiapkan Azure Container Apps
Di unit ini, Anda membuat grup sumber daya Azure yang berisi sumber daya untuk aplikasi. Anda kemudian menyiapkan database PostgreSQL dengan menggunakan Azure CLI. Terakhir, Anda mengonfigurasi aplikasi Quarkus untuk mengakses database PostgreSQL jarak jauh. Gunakan terminal pilihan Anda untuk menjalankan perintah.
Menyiapkan lingkungan kerja
Anda perlu menyiapkan beberapa variabel lingkungan. Berikut adalah beberapa catatan tentang variabel yang akan Anda buat:
| Variabel | Deskripsi |
|---|---|
AZ_PROJECT |
Nama proyek. Untuk menjaga nilai ini tetap unik, kami sarankan Anda menggunakan AZ_PROJECT_<your initials>. |
AZ_RESOURCE_GROUP |
Nama grup sumber daya yang menyimpan sumber daya. |
AZ_LOCATION |
Wilayah Azure. Kami menyarankan agar Anda menggunakan wilayah yang dekat dengan tempat tinggal Anda. Untuk melihat daftar wilayah yang tersedia, masukkan az account list-locations pada prompt perintah. |
AZ_CONTAINERAPP |
Nama instans Azure Container Apps yang menyimpan kontainer. |
AZ_CONTAINERAPP_ENV |
Nama lingkungan Azure Container Apps. |
AZ_POSTGRES_SERVER_NAME |
Nama server PostgreSQL Anda. Karakter non-nufanumerik tidak diizinkan: -, _, !, $, #, %. Nama harus unik di seluruh Azure. Pastikan untuk menggunakan pengidentifikasi unik. |
AZ_POSTGRES_DB_NAME |
Nama dari database PostgreSQL. Nama default database PostgreSQL adalah postgres. |
AZ_POSTGRES_USERNAME |
Nama pengguna admin default untuk server database PostgreSQL Anda. |
AZ_POSTGRES_PASSWORD |
Kata sandi default untuk server database PostgreSQL Anda. Gunakan kata sandi yang aman. |
Nota
Anda dapat memberi nama sumber daya Azure Anda dengan cara apa pun yang Anda inginkan, tetapi kami sarankan Anda meninjau contoh singkatan untuk sumber daya Azure. Artikel ini menyediakan contoh singkatan untuk banyak sumber daya Azure (misalnya, rg untuk grup sumber daya dan ca untuk aplikasi kontainer).
Gunakan perintah berikut untuk menyiapkan variabel. Pastikan untuk mengubah nilai seperti yang dijelaskan dalam tabel sebelumnya.
export AZ_PROJECT_<your initials>="azure-deploy-quarkus"
export AZ_RESOURCE_GROUP="rg${AZ_PROJECT_<your initials>}"
export AZ_LOCATION="eastus"
export AZ_CONTAINERAPP="ca${AZ_PROJECT_<your initials>}"
export AZ_CONTAINERAPP_ENV="cae${AZ_PROJECT_<your initials>}"
export AZ_POSTGRES_DB_NAME="postgres${AZ_PROJECT_<your initials>}"
export AZ_POSTGRES_USERNAME="<user-name>"
export AZ_POSTGRES_PASSWORD="<secure-password>"
export AZ_POSTGRES_SERVER_NAME="psql${AZ_PROJECT_<your initials>}"
Variabel lingkungan ini digunakan di seluruh sisa modul ini.
Selanjutnya, buat grup sumber daya:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
Membuat instance Azure Database for PostgreSQL
Sekarang Anda akan membuat server PostgreSQL terkelola. Jalankan perintah berikut untuk membuat instans kecil Azure Database for PostgreSQL:
Jika Anda belum pernah membuat Server PostgreSQL sebelumnya, Anda perlu mendaftarkan penyedia. Untuk mendaftarkan penyedia PostgreSQL, jalankan perintah berikut:
az provider register --namespace Microsoft.DBforPostgreSQL
Kemudian, buat Server PostgreSQL.
az postgres flexible-server create \
--resource-group "$AZ_RESOURCE_GROUP" \
--location "$AZ_LOCATION" \
--name "$AZ_POSTGRES_SERVER_NAME" \
--database-name "$AZ_POSTGRES_DB_NAME" \
--admin-user "$AZ_POSTGRES_USERNAME" \
--admin-password "$AZ_POSTGRES_PASSWORD" \
--public-access "All" \
--tier "Burstable" \
--sku-name "Standard_B1ms" \
--storage-size 32 \
--version "16"
Perintah ini membuat server PostgreSQL kecil yang menggunakan variabel yang Anda siapkan sebelumnya.
Mengonfigurasi Quarkus untuk mengakses database PostgreSQL
Sekarang Anda akan menyambungkan aplikasi Quarkus ke database PostgreSQL. Untuk melakukannya, Anda harus terlebih dahulu mendapatkan string koneksi untuk database:
export POSTGRES_CONNECTION_STRING=$(
az postgres flexible-server show-connection-string \
--server-name "$AZ_POSTGRES_SERVER_NAME" \
--database-name "$AZ_POSTGRES_DB_NAME" \
--admin-user "$AZ_POSTGRES_USERNAME" \
--admin-password "$AZ_POSTGRES_PASSWORD" \
--query "connectionStrings.jdbc" \
--output tsv
)
export POSTGRES_CONNECTION_STRING_SSL="$POSTGRES_CONNECTION_STRING&ssl=true"
echo "POSTGRES_CONNECTION_STRING_SSL=$POSTGRES_CONNECTION_STRING_SSL"
Perhatikan string koneksi yang dikembalikan.
Nota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang tinggi pada aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Mengonfigurasi aplikasi Quarkus untuk menyambungkan ke database PostgreSQL
Perbarui file application.properties di folder src/main/resources proyek untuk mengonfigurasi string koneksi ke database PostgreSQL. Untuk melakukannya, atur properti quarkus.datasource.jdbc.url ke nilai $POSTGRES_CONNECTION_STRING_SSL output sebelumnya. Bagian &ssl=true&sslmode=require dari string koneksi memaksa driver untuk menggunakan SSL, persyaratan untuk Azure Database for PostgreSQL.
quarkus.hibernate-orm.database.generation=update
quarkus.datasource.jdbc.url=<the POSTGRES_CONNECTION_STRING_SSL value>
Jalankan aplikasi Quarkus secara lokal untuk menguji koneksi database jarak jauh
Gunakan perintah ini untuk menjalankan aplikasi secara lokal:
./mvnw clean quarkus:dev # On Mac or Linux
mvnw.cmd clean quarkus:dev # On Windows
Saat Quarkus berjalan, buat beberapa tugas dengan menggunakan perintah cURL berikut di jendela terminal terpisah:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"description":"Take Quarkus MS Learn","details":"Take the MS Learn on deploying Quarkus to Azure Container Apps","done": "true"}' \
http://127.0.0.1:8080/api/todos
curl --header "Content-Type: application/json" \
--request POST \
--data '{"description":"Take Azure Container Apps MS Learn","details":"Take the ACA Learn module","done": "false"}' \
http://127.0.0.1:8080/api/todos
Selanjutnya, periksa apakah daftar tugas ada di database dengan mengakses titik akhir GET yang ditentukan dalam aplikasi to-do:
curl http://127.0.0.1:8080/api/todos
Anda akan melihat output berikut:
[
{
"id": 1,
"description": "Take Quarkus MS Learn",
"details": "Take the MS Learn on deploying Quarkus to Azure Container Apps",
"done": true,
"createdAt": "2025-02-26T08:03:28.390854Z"
},
{
"id": 2,
"description": "Take Azure Container Apps MS Learn",
"details": "Take the ACA Learn module",
"done": false,
"createdAt": "2025-02-26T08:03:34.142249Z"
}
]
Jika Anda melihat output ini, Anda telah berhasil menjalankan aplikasi Quarkus dan terhubung ke database PostgreSQL jarak jauh.