Tutorial: Koneksi aplikasi Web App Services ke Azure Database for MySQL - Server Fleksibel dalam jaringan virtual

BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel

Tutorial ini menunjukkan kepada Anda cara membuat dan menyambungkan Aplikasi Web Azure App Service ke instans server fleksibel Azure Database for MySQL yang terisolasi di dalam jaringan virtual yang sama atau berbeda.

Dalam tutorial ini, Anda akan belajar cara:

  • Membuat instans server fleksibel Azure Database for MySQL di jaringan virtual
  • Buat subnet untuk didelegasikan ke App Service dan buat aplikasi web
  • Menambahkan aplikasi web ke jaringan virtual
  • Koneksi ke server fleksibel Azure Database for MySQL dari aplikasi web
  • Koneksi aplikasi Web dan instans server fleksibel Azure Database for MySQL yang diisolasi di VNet yang berbeda

Prasyarat

Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure sebelum memulai. Saat ini, dengan akun gratis Azure, Anda dapat mencoba Azure Database for MySQL - Server Fleksibel gratis selama 12 bulan. Untuk informasi selengkapnya, lihat Coba Azure Database for MySQL - Server Fleksibel secara gratis.

Artikel ini mengharuskan Anda menjalankan Azure CLI versi 2.0 atau versi yang lebih baru secara lokal. Untuk melihat versi yang dipasang, jalankan perintah az --version. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Anda harus masuk ke akun 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 dengan sumber daya yang harus ditagih. Pilih ID langganan tertentu di bawah akun Anda menggunakan perintah az account set. Ganti properti ID langganan dari output az login untuk langganan Anda ke tempat penampung ID langganan.

az account set --subscription <subscription ID>

Membuat instans server fleksibel Azure Database for MySQL

Buat instans server fleksibel Azure Database for MySQL privat di dalam jaringan virtual (VNET) menggunakan perintah berikut:

az mysql flexible-server create --resource-group myresourcegroup --location westus2 --vnet VNETName

Menyalin string koneksi dan nama jaringan virtual yang baru dibuat. Perintah ini melakukan tindakan berikut, yang mungkin memakan waktu beberapa menit:

  • Buat grup sumber daya jika belum ada.
  • Menghasilkan nama server jika tidak tersedia.
  • Buat jaringan virtual baru, VNETName untuk instans server fleksibel Azure Database for MySQL dan subnet baru Anda dalam jaringan virtual ini untuk instans server fleksibel Azure Database for MySQL. Pastikan namanya bersifat unik.
  • Membuat nama pengguna admin, kata sandi untuk server Anda, jika tidak tersedia.
  • Membuat database kosong yang disebut flexibleserverdb.

Catatan

Catat kata sandi Anda yang dihasilkan untuk Anda jika tidak disediakan. Jika Anda lupa kata sandi, Anda harus mengatur ulang kata sandi dengan menggunakan az mysql flexible-server update perintah .

Membuat Subnet untuk Titik Akhir App Service

Anda sekarang memerlukan subnet yang didelegasikan ke titik akhir App Service Web App. Jalankan perintah berikut untuk membuat subnet baru di jaringan virtual yang sama dengan instans server fleksibel Azure Database for MySQL dibuat.

az network vnet subnet create -g myresourcegroup --vnet-name VNETName --name webappsubnetName  --address-prefixes 10.0.1.0/24  --delegations Microsoft.Web/serverFarms --service-endpoints Microsoft.Web

Mencatat nama jaringan virtual dan nama subnet setelah perintah ini seperti yang dibutuhkan untuk menambahkan aturan integrasi VNET untuk aplikasi web setelah dibuat.

Membuat aplikasi web

Di bagian ini, Anda membuat host aplikasi di aplikasi App Service dan menyambungkan aplikasi ini ke database server fleksibel Azure Database for MySQL. Pastikan Anda berada di root repositori kode aplikasi Anda di terminal.

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

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

Catatan

  • Untuk argumen --location, gunakan lokasi yang sama seperti yang Anda gunakan untuk database di bagian sebelumnya.
  • Ganti <app-name> dengan nama unik di semua Azure (titik akhir server adalah https://\<app-name>.azurewebsites.net). Karakter yang diizinkan untuk <app-name> adalah A-Z, 0-9, dan -. Pola yang baik adalah menggunakan kombinasi nama perusahaan dan pengidentifikasi aplikasi Anda.
  • Tingkat App Service Basic tidak mendukung integrasi VNET. Silakan gunakan Paket Standar atau Premium.

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

  • Buat grup sumber daya jika belum ada. (Dalam perintah ini Anda menggunakan grup sumber daya yang sama tempat Anda membuat database sebelumnya.)
  • Buat paket App Service testappserviceplan di tingkat Harga dasar (B1), jika tidak ada. --paket dan --sku bersifat opsional.
  • Membuat aplikasi App Service jika tidak ada.
  • Aktifkan pembuatan log default untuk aplikasi, jika belum diaktifkan.
  • Mengunggah repositori menggunakan penyebaran ZIP dengan otomatisasi bangun yang diaktifkan.

Menambahkan aplikasi web ke jaringan virtual

Gunakan perintah integrasi vnet az webapp untuk menambahkan integrasi jaringan virtual regional ke webapp. Ganti <nama> vnet dan <nama subnet dengan jaringan virtual dan nama subnet yang digunakan instans server fleksibel Azure Database for MySQL.

az webapp vnet-integration add -g myresourcegroup -n  mywebapp --vnet VNETName --subnet webappsubnetName

Mengonfigurasikan variabel lingkungan untuk menyambungkan database

Dengan kode yang sekarang disebarkan ke App Service, langkah selanjutnya adalah menyambungkan aplikasi ke instans server fleksibel Azure Database for MySQL di Azure. Kode aplikasi mengharapkan informasi database di sejumlah variabel lingkungan. Untuk mengatur variabel lingkungan di App Service, Anda membuat "pengaturan aplikasi" dengan az webapp config appsettings set perintah .

az webapp config appsettings set --settings DBHOST="<mysql-server-name>.mysql.database.azure.com" DBNAME="flexibleserverdb" DBUSER="<username>" DBPASS="<password>"
  • Ganti <mysql-server-name>, <username>, dan <password> untuk perintah server fleksibel Azure Database for MySQL yang baru dibuat.
  • Ganti <username> dan <password> dengan info masuk yang juga dibuat oleh perintah untuk Anda.
  • Grup sumber daya dan nama aplikasi diambil dari nilai cache dalam file .azure/config.
  • Perintah ini membuat pengaturan bernama DBHOST, DBNAME, DBUSER, dan DBPASS. Jika kode aplikasi Anda menggunakan nama yang berbeda untuk informasi database, maka 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 myresourcesourcegroup --generic-configurations '{"vnetRouteAllEnabled": true}'

Aplikasi Web App Service dan instans server fleksibel Azure Database for MySQL di jaringan virtual yang berbeda

Jika Anda telah membuat aplikasi App Service dan instans server fleksibel Azure Database for MySQL di jaringan virtual (VNet) yang berbeda, Anda harus melakukan dua langkah berikut untuk membuat koneksi yang mulus:

  • Menyambungkan kedua VNet menggunakan peering VNet (lokal atau global). Lihat panduan Menghubungkan jaringan virtual dengan peering jaringan virtual.
  • Tautkan zona DNS Privat instans server fleksibel Azure Database for MySQL ke VNet aplikasi web menggunakan tautan jaringan virtual. Jika Anda menggunakan portal Azure atau Azure CLI untuk membuat instans server fleksibel Azure Database for MySQL di VNet, zona DNS privat baru disediakan secara otomatis dalam langganan Anda menggunakan nama server yang disediakan. Navigasikan ke zona DNS privat instans server fleksibel Azure Database for MySQL dan ikuti panduan Cara menautkan zona DNS privat ke jaringan virtual untuk menyiapkan tautan jaringan virtual.

Membersihkan sumber daya

Membersihkan semua sumber daya yang Anda buat dalam tutorial menggunakan perintah berikut. Perintah ini menghapus semua sumber daya dalam grup sumber daya ini.

az group delete -n myresourcegroup

Langkah berikutnya