Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi adalah fungsi TypeScript yang berjalan di server di dalam aplikasi Fabric Anda. Gunakan fungsi untuk logika yang tidak boleh berjalan di browser, seperti bekerja dengan rahasia, mengakses data hak istimewa, dan memanggil layanan hilir dengan identitas aplikasi.
Setiap fungsi didaftarkan dengan nama dan diekspos sebagai endpoint HTTP yang dapat dipanggil. Frontend React Anda memanggil fungsi melalui klien Rayfin yang diketik, sehingga Anda tidak perlu mengimplementasikan permintaan, routing, atau penanganan token.
Note
Perintah dalam artikel ini menggunakan versi pratinjau dari Rayfin CLI.
Kapan menggunakan sebuah fungsi
Gunakan Fungsi Rayfin untuk:
- Panggil API eksternal dengan token aplikasi. Contohnya termasuk Azure AI Foundry, Azure DevOps, Fabric, Azure Storage, dan Azure Key Vault.
- Baca atau tulis database aplikasi dengan keamanan pada level baris yang diterapkan oleh server.
- Jaga agar kunci API, nama deployment model, dan rahasia lain tidak masuk ke kode klien.
- Menjalankan orkestrasi, seperti panggilan fan-out, agregasi, atau pemberian prompt AI, di dekat data.
Prasyarat
Sebelum Anda mulai, instal atau buat sumber daya berikut:
- Node.js versi 20 atau yang lebih baru dan npm.
- Sebuah kerangka aplikasi Fabric yang dibuat dengan Rayfin CLI.
- Azure Functions Core Tools, yang digunakan oleh host fungsi lokal untuk debugging.
Instal Azure Functions Core Tools versi 4:
npm install --global azure-functions-core-tools@4
Buat aplikasi dengan fungsi
Buat kerangka aplikasi dan inisialisasi proyek fungsi:
npm create @microsoft/rayfin@latest
cd my-app
npx rayfin functions init
Perintah ini rayfin functions init menambahkan proyek fungsi, konfigurasi TypeScript-nya, dan file fungsi starter ke aplikasi yang sudah ada.
Bangun aplikasi dengan GitHub Copilot
Kerangka tersebut mencakup instruksi GitHub Copilot dan keterampilan yang diperlukan untuk mengerjakan proyek ini. Buka proyek di Visual Studio Code, dan jelaskan aplikasi yang ingin Anda bangun di GitHub Copilot Chat.
Sebagai contoh, gunakan prompt berikut untuk membuat asisten peninjauan pull request AI:
Build an app that helps business analysts track sales performance across
regions. Show key metrics, let analysts ask questions about trends, and
use Functions to securely retrieve data from our sales API with application
authentication.
GitHub Copilot dapat menghasilkan dan memperbarui file serta komponen yang diperlukan. Anda juga dapat meminta agen menjalankan aplikasi, melakukan debug fungsi secara lokal, dan menyebarkan aplikasi.
Pahami tata letak proyek
Perintah inisialisasi fungsi memperbarui rayfin/rayfin.yml dan membuat rayfin/functions. Aplikasi dengan fungsi tipikal memiliki struktur sebagai berikut:
my-app/
├── rayfin/
│ ├── rayfin.yml
│ ├── data/
│ │ ├── TripPlan.ts
│ │ └── schema.ts
│ └── functions/
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── function_app.ts
│ └── types.ts
└── src/
└── services/
Berkas-berkas tersebut berfungsi sebagai berikut:
| Jalur | Kegunaan |
|---|---|
rayfin/rayfin.yml |
Mengonfigurasi layanan autentikasi, data, fungsi, dan hosting statis. |
rayfin/data/ |
Berisi model data aplikasi dan ekspor skema. |
rayfin/functions/package.json |
Mendefinisikan dependensi dan skrip build untuk proyek fungsi. |
rayfin/functions/tsconfig.json |
Mengonfigurasi proses build TypeScript untuk fungsi. |
rayfin/functions/src/function_app.ts |
Berisi implementasi fungsi Anda. |
rayfin/functions/src/types.ts |
Berisi tipe AppFunctionsSchema yang dihasilkan. Jangan edit file ini secara manual. |
src/ |
Berisi frontend React dan semua jenis domain bersama atau pembungkus. |
Saat Anda mengaktifkan fungsi, rayfin/rayfin.yml termasuk layanan fungsi:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Autentikasi aplikasi
Fungsi yang Diaktifkan memerlukan autentikasi aplikasi eksplisit di rayfin/rayfin.yml:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Set kerangka Functions baru auth.type: application.
Fungsi yang dinonaktifkan dapat menghilangkan auth. Namun, jika Anda memberikan auth, itu harus mencakup:
auth:
type: application
Alur penuh npx rayfin up dan normal npx rayfin dev memvalidasi pengaturan ini sebelum menerapkan pengaturan proyek ke backend Fabric atau Docker.
Jalankan full npx rayfin up untuk menerapkan mode autentikasi YAML ke aplikasi jarak jauh yang sudah ada.
Jalur autentikasi yang digunakan oleh Fungsi yang telah dideploy
Fungsi yang Diterapkan menggunakan dua jalur autentikasi terpisah:
| Jalur akses | Credential | Identitas dan izin |
|---|---|---|
Koneksi eksternal melalui ctx.Tokens.* |
Token sumber daya yang disediakan oleh platform | Identitas aplikasi dan izin pada sumber daya eksternal |
Rayfin DB melalui ctx.getDataClient() |
Token Rayfin dari Invocation | Identitas dan izin penelepon pada Rayfin DB |
Untuk aplikasi Fabric saat ini, identitas aplikasi adalah pemilik item BaaS.
Oleh karena itu, koneksi eksternal menggunakan izin pemilik item, bukan izin pengguna aplikasi yang memanggil fungsi tersebut. Berikan identitas aplikasi izin yang diperlukan untuk setiap sumber daya eksternal dan API yang dipanggil oleh kode Functions.
Mendeklarasikan audiens atau menerapkan Functions tidak memberikan izin identitas aplikasi kepada sumber daya eksternal.
Masuk aplikasi dan otorisasi untuk memanggil fungsi terpisah dari akses identitas aplikasi ke sumber daya eksternal.
Akses Rayfin DB selalu menggunakan token Rayfin dan mempertahankan identitas penelepon serta izin database. Pengaturan services.functions.auth.type: application tidak mengalihkan akses Rayfin DB ke identitas aplikasi.
Untuk deklarasi audiens, token sumber daya, izin, dan perilaku pengembangan lokal, lihat Hubungkan Fungsi ke sumber daya eksternal.
Menjalankan aplikasi secara lokal
Dari folder root aplikasi, masuk:
cd my-app
npx rayfin login
Jalankan frontend dan host fungsi lokal:
npm run dev
Dalam proyek dengan fungsi yang diaktifkan, npm run dev dipetakan ke rayfin dev. Perintah ini menerapkan skema, memulai host fungsi lokal, dan memulai server pengembangan Vite. Buka URL lokal yang dicetak di terminal, dan biarkan terminal tetap berjalan saat Anda mengembangkan dan men-debug aplikasi.
Untuk memulai hanya fungsi host, misalnya saat Anda menjalankan frontend secara terpisah, gunakan perintah berikut sebagai gantinya:
cd my-app
npx rayfin dev
Sebarkan ke Fabric
Sebarkan data aplikasi, situs statis, dan fungsi:
npx rayfin up --workspace <workspace-name>
Ganti <WORKSPACE> dengan nama workspace Fabric yang dituju.
Tambahkan fungsi ke aplikasi yang sudah ada
Dari root aplikasi Fabric yang sudah ada, aktifkan fitur tersebut dan inisialisasi proyek fungsi sekali:
npx rayfin functions init
Setelah inisialisasi, tambahkan implementasi fungsi ke rayfin/functions/src/function_app.ts.
Limitations
- Kepemilikan fungsi: Hanya pemilik item fungsi data pengguna yang dapat memodifikasi dan mempublikasikan kode Fungsi.
- Jeda publikasi: Tunggu setidaknya dua menit setelah memublikasikan sebelum memublikasikan lagi. Masa tunggu ini berlaku saat menerbitkan dari portal Functions di browser, ekstensi Visual Studio Code untuk fungsi data pengguna, tindakan impor Git, atau pipeline deployment.
- Ukuran paket penerapan: File ZIP Functions tidak boleh melebihi 30 MB.
- Ukuran payload permintaan: Layanan fungsi data pengguna mendokumentasikan batas maksimum 4 MB untuk gabungan semua parameter permintaan. Batas ini diperkirakan berlaku untuk Fungsi Rayfin, tetapi belum diverifikasi.
- Waktu habis eksekusi: Sebuah fungsi dapat berjalan hingga 240 detik.
- Retensi log panggilan: Log pemanggilan historis disimpan selama 30 hari secara default.
- Identitas aplikasi: Identitas aplikasi saat ini adalah pemilik item BaaS.
Untuk persyaratan ketersediaan regional dan detail lebih lanjut tentang keterbatasan fungsi data pengguna, lihat Detail layanan dan keterbatasan fungsi data pengguna Fabric.