Membuat server fleksibel Azure Database for PostgreSQL dengan aplikasi web di jaringan virtual

Artikel ini memperlihatkan kepada Anda cara membuat aplikasi web Azure App Service dengan server fleksibel Azure Database for PostgreSQL di dalam jaringan Virtual.

Dalam artikel ini, Anda akan mempelajari cara:

  • Membuat server fleksibel Azure Database for PostgreSQL di jaringan virtual
  • Membuat aplikasi web
  • Menambahkan aplikasi web ke jaringan virtual
  • Menyambungkan aplikasi web ke server fleksibel Azure Database for PostgreSQL

Prerequisites

  • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

  • Instal Azure CLI versi 2.0 atau yang lebih baru secara lokal (atau gunakan Azure Cloud Shell, yang telah menginstal CLI sebelumnya). Untuk melihat versi yang dipasang, jalankan perintah az --version.

  • Anda harus masuk ke akun Anda menggunakan perintah az login. Perhatikan properti id dari output perintah untuk nama langganan yang sesuai.

    az login
    
  • Jika Anda memiliki beberapa langganan, pilih langganan yang sesuai untuk menagih sumber daya. Pilih ID langganan tertentu di bawah akun Anda dengan menggunakan perintah az account set .

    az account set --subscription <subscription ID>
    

Membuat server fleksibel

Buat server fleksibel Azure Database for PostgreSQL privat di dalam jaringan virtual dengan menggunakan perintah berikut:

az postgres flexible-server create --resource-group demoresourcegroup --name demoserverpostgres --vnet demoappvnet --location westus2

Perintah ini melakukan tindakan berikut, yang mungkin memakan waktu beberapa menit:

  • Membuat grup sumber daya jika belum ada.
  • Menghasilkan nama server jika Anda tidak menyediakannya.
  • Membuat jaringan virtual dan subnet untuk server fleksibel Azure Database for PostgreSQL.
  • Membuat nama pengguna dan kata sandi admin untuk server Anda jika Anda tidak menyediakannya.
  • Membuat database kosong bernama postgres.

Berikut adalah output sampelnya.

Creating Resource Group 'demoresourcegroup'...
Creating new Vnet "demoappvnet" in resource group "demoresourcegroup"
Creating new Subnet "Subnetdemoserverpostgres" in resource group "demoresourcegroup"
Creating a private dns zone demoserverpostgres.private.postgres.database.azure.com in resource group "demoresourcegroup"
Creating PostgreSQL Server 'demoserverpostgres' in group 'demoresourcegroup'...
Your server 'demoserverpostgres' is using sku 'Standard_D2s_v3' (Paid Tier). Please refer to https://aka.ms/postgres-pricing for pricing details
Creating PostgreSQL database 'flexibleserverdb'...
Make a note of your password. If you forget, you would have to reset your password with "az postgres flexible-server update -n demoserverpostgres -g demoresourcegroup -p <new-password>".
Try using 'az postgres flexible-server connect' command to test out connection.
{
  "connectionString": "postgresql://generated-username:generated-password@demoserverpostgres.postgres.database.azure.com/postgres?sslmode=require",
  "host": "demoserverpostgres.postgres.database.azure.com",
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.DBforPostgreSQL/flexibleServers/demoserverpostgres",
  "location": "East US",
  "password": "generated-password",
  "resourceGroup": "demoresourcegroup",
  "skuname": "Standard_D2s_v3",
  "subnetId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/demoresourcegroup/providers/Microsoft.Network/virtualNetworks/demoappvnet/subnets/Subnetdemoserverpostgres",
  "username": "generated-username",
  "version": "12"
}

Membuat aplikasi web

Di bagian ini, Anda membuat host aplikasi di aplikasi App Service, menyambungkan aplikasi ini ke database server fleksibel Azure Database for PostgreSQL, lalu menyebarkan kode Anda ke host tersebut. Pastikan Anda berada di root repositori kode aplikasi Anda di terminal. Paket Dasar tidak mendukung integrasi jaringan virtual. Gunakan Standar atau Premium.

Buat aplikasi App Service (proses host) dengan menggunakan az webapp up perintah .

az webapp up --resource-group demoresourcegroup --location westus2 --plan testappserviceplan --sku P2V2 --name mywebapp

Note

  • Untuk _--location_ argument, gunakan lokasi yang sama seperti untuk database di bagian sebelumnya.
  • Ganti <app-name> dengan nama unik di semua Azure. Karakter yang diizinkan untuk <app-name> adalah A-Z, 0-9, dan -. Pola yang baik adalah menggunakan kombinasi nama perusahaan dan pengidentifikasi aplikasi Anda.

Perintah ini melakukan tindakan berikut, yang mungkin memakan waktu beberapa menit:

  • Membuat grup sumber daya jika belum ada. (Dalam perintah ini, Anda menggunakan grup sumber daya yang sama tempat Anda membuat database sebelumnya.)
  • Membuat aplikasi layanan App Service baru jika belum ada.
  • Mengaktifkan pengelogan default untuk aplikasi, jika belum diaktifkan.
  • Mengunggah repositori dengan menggunakan penyebaran ZIP dengan otomatisasi pembentukan diaktifkan.

Membuat subnet untuk aplikasi web

Sebelum mengaktifkan integrasi jaringan virtual, Anda memerlukan subnet yang didelegasikan ke App Service Web App. Sebelum membuat subnet, lihat alamat subnet database untuk menghindari penggunaan awalan alamat yang sama untuk subnet aplikasi web.

az network vnet show --resource-group demoresourcegroup -n demoappvnet

Jalankan perintah berikut untuk membuat subnet baru di jaringan virtual yang sama dengan server fleksibel Azure Database for PostgreSQL. Perbarui awalan alamat untuk menghindari konflik dengan subnet server fleksibel Azure Database for PostgreSQL.

az network vnet subnet create --resource-group demoresourcegroup --vnet-name demoappvnet --name webappsubnet  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms

Menambahkan aplikasi web ke jaringan virtual

Gunakan perintah az webapp vnet-integration untuk menambahkan integrasi jaringan virtual regional ke aplikasi web.

az webapp vnet-integration add --resource-group demoresourcegroup -n  mywebapp --vnet demoappvnet --subnet webappsubnet

Mengonfigurasikan variabel lingkungan untuk menyambungkan database

Setelah menyebarkan kode ke App Service, sambungkan aplikasi ke server fleksibel Azure Database for PostgreSQL di Azure. Kode aplikasi mengharapkan untuk menemukan informasi database di banyak variabel lingkungan. Untuk mengatur variabel lingkungan di App Service, gunakan perintah az webapp config appsettings set .

az webapp config appsettings set  --name mywebapp --settings DBHOST="<postgres-server-name>.postgres.database.azure.com" DBNAME="postgres" DBUSER="<username>" DBPASS="<password>"
  • Ganti postgres-server-name, username, dan password dengan nilai untuk server fleksibel Azure Database for PostgreSQL yang baru dibuat.

  • Ganti <username> dan <password> dengan kredensial yang juga dihasilkan oleh perintah tersebut untuk Anda.

  • Grup sumber daya dan nama aplikasi berasal dari nilai yang di-cache dalam file .azure/config.

  • Perintah membuat pengaturan bernama DBHOST, DBNAME, DBUSER, dan DBPASS. Jika kode aplikasi Anda menggunakan nama yang berbeda untuk informasi database, gunakan nama tersebut untuk pengaturan aplikasi seperti yang disebutkan dalam kode.

Mengonfigurasi aplikasi web untuk memungkinkan semua koneksi keluar dari dalam jaringan virtual.

az webapp config set --name mywebapp --resource-group demoresourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

Membersihkan sumber daya

Bersihkan semua sumber daya yang Anda buat di artikel dengan menggunakan perintah berikut. Perintah ini menghapus semua sumber daya dalam grup sumber daya ini.

az group delete -n demoresourcegroup