Dukungan API di Azure Static Web Apps dengan Azure Functions

Aplikasi web front end sering kali memanggil balik API untuk data dan layanan. Secara default, Azure Static Web Apps menyediakan titik akhir API tanpa server bawaan melalui Azure Functions.

API Azure Functions di Static Web Apps tersedia dalam dua konfigurasi yang mungkin tergantung pada paket hosting:

  • Fungsi terkelola: Secara default, API aplikasi web statis adalah aplikasi Azure Functions yang dikelola dan disebarkan oleh Azure Static Web Apps yang terkait dengan beberapa batasan.

  • Bawa fungsi Anda sendiri: Secara opsional, Anda dapat menyediakan aplikasi Azure Functions yang ada dari jenis paket apa pun, yang mencakup semua fitur Azure Functions. Dengan konfigurasi ini, Anda bertanggung jawab untuk menangani penyebaran terpisah untuk aplikasi Functions.

Tabel berikut membandingkan perbedaan antara menggunakan fungsi terkelola dan yang sudah ada.

Fitur Fungsi Terkelola Menggunakan Fungsi milik Anda
Akses ke pemicu dan pengikatan Azure Functions Khusus HTTP Semua
Runtime Azure Functions yang didukung 1 Node.js 12
Node.js 14
Node.js 16
Node.js 18
.NET Core 3.1
.NET 6.0
.NET 7.0
Python 3.8
Python 3.9
Python 3.10
Semua
Paket hosting Azure Functions yang didukung Consumption Consumption
Premium
Khusus
Keamanan terintegrasi dengan akses langsung ke autentikasi pengguna dan data otorisasi berbasis peran
Integrasi perutean yang membuat /api rute tersedia untuk aplikasi web dengan aman tanpa memerlukan aturan CORS kustom.
Fungsi terdistribusi (pratinjau) untuk distribusi global dinamis komputasi backend.
Model pemrograman Fungsi Tahan Lama
Identitas terkelola
Manajemen token Autentikasi dan Otorisasi Azure App Service
Fungsi API yang tersedia di luar Azure Static Web Apps
Referensi Key Vault

1 Untuk menentukan versi runtime dalam fungsi terkelola, tambahkan file konfigurasi ke aplikasi frontend Anda dan atur apiRuntime properti . Dukungan tunduk pada kebijakan dukungan runtime bahasa azure Functions.

Opsi API untuk Static Web Apps mencakup layanan Azure berikut:

Lihat gambaran umum API untuk informasi selengkapnya.

Catatan

Fungsi terdistribusi tersedia dengan fungsi terkelola. Fungsi terdistribusi secara otomatis mendistribusikan fungsi terkelola Anda ke wilayah beban permintaan tinggi.

Konfigurasi

Titik akhir API tersedia untuk aplikasi web melalui api rute.

Fungsi terkelola Membawa fungsi milik Anda
/api Saat rute diperbaiki, Anda memiliki kontrol atas lokasi folder kode sumber dari aplikasi fungsi terkelola. Anda dapat mengubah lokasi ini dengan mengedit file YAML alur kerja yang terletak di folder .github/workflows repositori Anda. Permintaan ke /api rute dikirim ke aplikasi Azure Functions yang sudah ada.

Pemecahan masalah dan log

Log hanya tersedia jika Anda menambahkan Application Insights.

Fungsi terkelola Membawa fungsi milik Anda
Aktifkan pengelogan dengan mengaktifkan Application Insights di aplikasi web statis Anda. Aktifkan pengelogan dengan mengaktifkan Application Insights di aplikasi Azure Functions Anda.

Kendala

Selain batasan API Static Web Apps, pembatasan berikut juga berlaku untuk API Azure Functions:

Fungsi terkelola Membawa fungsi milik Anda
  • Pemicu dan pengikatan terbatas pada HTTP.
  • Aplikasi Azure Functions harus berada di Node.js 12, Node.js 14, Node.js 16, Node.js 18 (pratinjau publik), .NET Core 3.1, .NET 6.0, Python 3.8, Python 3.9, atau Python 3.10.
  • Beberapa pengaturan aplikasi dikelola oleh layanan, oleh karena itu awalan berikut dipesan oleh runtime:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • Beberapa tag aplikasi digunakan secara internal oleh layanan. Oleh karena itu, tag berikut dicadangkan:
    • AccountId, EnvironmentId, FunctionAppId.
  • Anda bertanggung jawab untuk mengelola penyebaran aplikasi Functions.

Langkah berikutnya