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.
Gunakan rahasia untuk menyediakan konfigurasi sensitif, seperti token akses pribadi dan kunci API, ke fungsi Anda. Jangan pernah membuat nilai rahasia secara keras di kode sumber atau mengeksposernya ke frontend. Baca itu saat runtime dengan memanggil ctx.getSecret().
Prasyarat
- Aplikasi Fabric dengan fungsi yang sudah diinisialisasi. Untuk petunjuk pengaturan, lihat Gunakan Fungsi di Fabric Apps.
- Aplikasi ini di-deploy setidaknya sekali dengan
npx rayfin up.rayfin secret setdanrayfin secret listmenargetkan item aktif yang disebarkan dan gagal ketika tidak ada endpoint jarak jauh yang ada. - Nilai rahasia yang dibutuhkan oleh fungsimu.
Menetapkan rahasia
Dari root aplikasi, aktifkan fitur fungsi dan atur rahasia:
npx rayfin secret set API_KEY
Perintah akan meminta nilai dan menutupi input Anda. Untuk memperbarui rahasia yang sudah ada, jalankan perintah yang sama lagi. Nilai baru menggantikan nilai yang ada.
Important
Jangan sertakan nilai rahasia dalam perintah atau komitmennya ke kontrol sumber.
Cantumkan rahasia
Daftarkan nama rahasia yang dikonfigurasi:
npx rayfin secret list
Perintah ini menampilkan nama rahasia dan cap waktu, tetapi tidak pernah menampilkan nilai rahasia.
Akses rahasia dari sebuah fungsi
Panggil ctx.getSecret('NAME') untuk mengambil rahasia untuk invokasi saat ini. Metode ini mengembalikan undefined saat secret tidak dikonfigurasi, jadi tangani secret opsional secara eksplisit atau berikan nilai default yang sesuai dan bukan secret.
Fungsi berikut mengambil file dari repositori GitHub. Repositori publik tidak memerlukan personal access token (PAT). Untuk repositori privat, fungsi ini menambahkan GITHUB_PAT rahasia ke permintaan:
import {
UserDataFunctions,
type RayfinContext,
} from '@microsoft/fabric-user-data-functions';
const udf = new UserDataFunctions();
udf.func(
'getGitHubFile',
async (
owner: string,
repo: string,
path: string,
ref: string,
ctx: RayfinContext,
): Promise<string> => {
const pat = ctx.getSecret('GITHUB_PAT');
const headers: Record<string, string> = {
Accept: 'application/vnd.github.raw+json',
'User-Agent': 'rayfin-app',
};
if (pat) {
headers.Authorization = `Bearer ${pat}`;
}
const encodedPath = path
.split('/')
.map(encodeURIComponent)
.join('/');
const url =
`https://api.github.com/repos/${encodeURIComponent(owner)}/` +
`${encodeURIComponent(repo)}/contents/${encodedPath}` +
`?ref=${encodeURIComponent(ref || 'main')}`;
const response = await fetch(url, { headers });
if (!response.ok) {
throw new Error(`GitHub ${response.status}: ${await response.text()}`);
}
return response.text();
},
[],
);
Array koneksi yang kosong menunjukkan bahwa fungsi tersebut tidak mendeklarasikan audiens resource eksternal. PAT adalah rahasia, bukan token sumber daya yang disediakan platform.
Konfigurasikan rahasia berdasarkan lingkungan
Berikan nilai rahasia di lingkungan tempat fungsi berjalan:
-
Pengembangan lokal: Tambahkan nilai rahasia ke
Valuesbagian darirayfin/functions/local.settings.json. Host Functions lokal membaca nilai lingkungan fungsi dari file ini. - Fabric: Konfigurasikan rahasia untuk item yang disebarkan di portal Fabric.
Gunakan nama rahasia yang sama di setiap lingkungan. Misalnya, konfigurasikan GITHUB_PAT secara lokal dan di Fabric, lalu bacalah dengan ctx.getSecret('API_KEY') di kedua lingkungan.
Important
Jangan melakukan commit nilai rahasia di rayfin/functions/local.settings.json atau file lainnya ke kontrol sumber. Simpan hanya contoh yang tidak rahasia atau teks pengganti dalam file yang Anda komit.