Konfigurasi koneksi database di Azure Static Web Apps (pratinjau)
Koneksi database azure Static Web apps berfungsi dengan berbagai database Azure.
Saat Anda menyambungkan database ke aplikasi web statis, Anda perlu mengonfigurasi firewall database Anda untuk menerima akses jaringan dari pekerja Static Web Apps dengan mengizinkan akses jaringan dari sumber daya Azure. Mengizinkan alamat IP Static Web Apps tertentu tidak didukung.
Jika Anda menggunakan jenis autentikasi Identitas Terkelola, maka Anda perlu mengonfigurasi profil Identitas Terkelola aplikasi web statis Anda untuk mengakses database Anda.
Gunakan tabel ini untuk detail tentang firewall dan konfigurasi Identitas Terkelola untuk database Anda.
Nama | Tipe | Firewall | Identitas Terkelola |
---|---|---|---|
Azure Cosmos DB | Standard | Mengonfigurasi firewall | Mengonfigurasi Identitas Terkelola |
Azure SQL | Standard | Mengonfigurasi firewall | Mengonfigurasi Identitas Terkelola |
Azure Database untuk MySQL | Flex | Mengonfigurasi firewall | Tidak didukung |
Azure Database untuk PostgreSQL | Flex | Mengonfigurasi firewall | Tidak didukung |
Azure Database for PostgreSQL (tunggal) | Tunggal | Mengonfigurasi firewall | Mengonfigurasi Identitas Terkelola |
Konfigurasi
Anda menentukan perilaku runtime koneksi database dalam staticwebapp.database.config.json
file. Sebelum menautkan database ke aplikasi web statis, Anda perlu membuat file ini dalam repositori Anda. Menurut konvensi, file ini ada di folder swa-db-connections di akar repositori Anda, tetapi Anda dapat merelokasinya jika Anda mau.
Tujuan file konfigurasi adalah untuk:
- Memetakan jalur dari
/data-api
titik akhir ke tabel atau entitas database Anda - Mengekspos titik akhir REST atau GraphQL (atau keduanya)
- Menentukan aturan keamanan entitas
- Mengontrol pengaturan konfigurasi pengembangan
Jika Anda menggunakan Azure Cosmos DB dengan GraphQL, Anda juga perlu menyediakan gql
file skema.
Catatan
Koneksi database Static Web Apps memerlukan folder yang berisi file konfigurasi. Folder ini harus berisi file konfigurasi staticwebapp.database.config.json untuk semua jenis database. Untuk database Cosmos DB for NoSQL, file skema staticwebapp.database.schema.gql juga diperlukan.
Menurut konvensi, folder ini diberi nama swa-db-connections dan ditempatkan di akar repositori. Konvensi ini dapat ditimpa dengan folder konfigurasi kustom.
File konfigurasi sampel
Contoh file konfigurasi berikut menunjukkan kepada Anda cara menyambungkan ke database Azure SQL dan mengekspos titik akhir REST dan GraphQL. Untuk detail lengkap tentang file konfigurasi dan fitur yang didukung, lihat dokumentasi Data API Builder.
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"options": {
"set-session-context": false
},
"connection-string": "@env('DATABASE_CONNECTION_STRING')"
},
"runtime": {
"rest": {
"enabled": true,
"path": "/rest"
},
"graphql": {
"allow-introspection": true,
"enabled": true,
"path": "/graphql"
},
"host": {
"mode": "production",
"cors": {
"origins": ["http://localhost:4280"],
"allow-credentials": false
},
"authentication": {
"provider": "StaticWebApps"
}
}
},
"entities": {
"Person": {
"source": "dbo.MyTestPersonTable",
"permissions": [
{
"actions": ["create", "read", "update", "delete"],
"role": "anonymous"
}
]
}
}
}
Properti | Deskripsi |
---|---|
$schema |
Versi pembuat API Database yang digunakan oleh Azure Static Web Apps untuk menginterpretasikan file konfigurasi. |
data-source |
Pengaturan konfigurasi khusus untuk database target. Properti database-type menerima mssql , , postgresql cosmosdb_nosql , atau mysql .string koneksi ditimpa saat penyebaran saat database tersambung ke sumber daya Static Web Apps Anda. Selama pengembangan lokal, string koneksi yang ditentukan dalam file konfigurasi adalah apa yang digunakan untuk menyambungkan ke database. |
runtime |
Bagian yang menentukan titik akhir yang diekspos. Properti rest dan graphql mengontrol fragmen URL yang digunakan untuk mengakses protokol API masing-masing. Bagian host konfigurasi menentukan pengaturan khusus untuk lingkungan pengembangan Anda. Pastikan origins array menyertakan alamat dan port localhost Anda. Host.mode ditimpa production saat database tersambung ke sumber daya Static Web Apps Anda. |
entities |
Bagian yang memetakan jalur URL ke entitas dan tabel database. Aturan autentikasi berbasis peran yang sama yang digunakan untuk mengamankan jalur juga mengamankan entitas database, dan dapat digunakan untuk menentukan izin untuk setiap entitas. Objek entitas juga menentukan hubungan antar entitas. |
Membuat file konfigurasi
CLI Static Web Apps memungkinkan Anda membuat stub file konfigurasi.
Penting
Untuk meningkatkan keamanan penyebaran dari CLI Static Web Apps, perubahan yang melanggar diperkenalkan yang mengharuskan Anda untuk meningkatkan ke versi terbaru (2.0.2) dari CLI Static Web Apps pada 15 Jan 2025.
swa db init --database-type <YOUR_DATABASE_TYPE>
Gunakan untuk menghasilkan file konfigurasi. Secara default, CLI membuat staticwebapp.database.config.json baru di folder bernama swa-db-connections.
Jenis database yang didukung meliputi:
mssql
postgresql
cosmosdb_nosql
mysql
Folder konfigurasi kustom
Nama folder default untuk file staticwebapp.database.config.json adalah swa-db-connections. Jika Anda ingin menggunakan folder lain, Anda perlu memperbarui file alur kerja untuk memberi tahu runtime aplikasi web statis tempat menemukan file konfigurasi Anda. Properti data_api_location
ini memungkinkan Anda menentukan lokasi folder konfigurasi Anda.
Catatan
Folder yang menyimpan file staticwebapp.database.config.json harus berada di akar repositori aplikasi web statis Anda.
Kode berikut menunjukkan kepada Anda cara menggunakan folder bernama db-config untuk file konfigurasi database.
app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file
Mengonfigurasi konektivitas database
Azure Static Web Apps harus memiliki akses jaringan ke database Anda agar koneksi database berfungsi. Selain itu, untuk menggunakan database Azure untuk pengembangan lokal, Anda perlu mengonfigurasi database Anda untuk mengizinkan permintaan dari alamat IP Anda sendiri. Berikut ini adalah langkah umum yang berlaku untuk semua database. Untuk langkah-langkah tertentu untuk jenis database Anda, lihat tautan di atas.
- Buka database Anda di portal Azure.
- Buka tab Jaringan.
- Di bawah bagian Aturan firewall, pilih Tambahkan alamat IPv4 klien Anda. Langkah ini memastikan bahwa Anda dapat menggunakan database ini untuk pengembangan lokal Anda.
- Pilih kotak centang Izinkan layanan dan sumber daya Azure untuk mengakses server ini. Langkah ini memastikan bahwa sumber daya Static Web Apps yang Anda sebarkan dapat mengakses database Anda.
- Pilih Simpan.
Menyambungkan database
Menautkan database ke aplikasi web statis Anda membuat koneksi produksi antara situs web dan database Anda saat diterbitkan ke Azure.
Buka aplikasi web statis Anda di portal Azure.
Di bagian Pengaturan , pilih Koneksi database.
Di bawah bagian Produksi, pilih tautan Tautkan database yang sudah ada.
Di jendela Tautkan database yang sudah ada, masukkan nilai berikut ini:
Properti Nilai Jenis Database Pilih jenis database Anda dari daftar dropdown. Langganan Pilih langganan Azure Anda dari daftar dropdown. Nama Sumber Daya Pilih nama server database yang memiliki database yang Anda inginkan. Nama Database Pilih nama database yang ingin Anda tautkan ke aplikasi web statis Anda. Jenis Autentikasi Pilih jenis koneksi yang diperlukan untuk menyambungkan ke database Anda.
Konten terkait
Tambahkan database ke aplikasi web statis Anda menggunakan salah satu database berikut:
Selain itu, Anda dapat mempelajari tentang cara menggunakan penyusun API Data dengan Azure Static Web Apps.