Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Használj titkokat arra, hogy érzékeny konfigurációt biztosíts, például személyes hozzáférési tokeneket és API kulcsokat a funkcióidhoz. Soha ne kódolj titkos értékeket a forráskódban, és ne tegyed fel a frontendben. Olvassa be őket futásidőben a ctx.getSecret() meghívásával.
Prerequisites
- Inicializált funkciókkal rendelkező Fabric-alkalmazás. A beállítási utasításokért lásd: Használd a funkciókat a Fabric alkalmazásokban.
- Az alkalmazás legalább egyszer üzembe lett helyezve a következővel:
npx rayfin up.rayfin secret setésrayfin secret listcélozza meg az aktív telepített elemet, és hibás, ha nincs távoli végpont. - Egy titkos érték, amit a funkciód követeli.
Titkos kód beállítása
Az alkalmazás gyökérből engedélyezze a funkciók funkcióját, és állítsa be a titkot:
npx rayfin secret set API_KEY
A parancs megadja az értéket, és elfedi a bemenetedet. Egy meglévő titok frissítéséhez ugyanazt a parancsot újra futtatjuk. Az új érték felváltja a meglévő értéket.
Important
Ne adj meg titkos adatot a parancsban, és ne véglegesítsd azt a forráskód-kezelőbe.
Titkok listázása
Listázd fel a konfigurált titkos neveket:
npx rayfin secret list
A parancs titkos neveket és időbélyegeket jelenít meg, de soha nem mutatja meg a titkos értékeket.
Férjen hozzá egy titokhoz egy funkcióból
Hívja meg a(z) ctx.getSecret('NAME') elemet, hogy lekérjen egy titkot az aktuális meghíváshoz. A metódus akkor tér vissza, undefined ha a titok nincs konfigurálva, ezért kezeld az opcionális titkokat kifejezetten vagy biztosíts megfelelő nem titkos alapértelmezet.
A következő függvény egy fájlt kap egy GitHub tárolóból. A nyilvános tárolókhoz nem kell személyes hozzáférési token (PAT). Privát tárolók esetén a függvény hozzáadja a GITHUB_PAT titkot a kéréshez:
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();
},
[],
);
Az üres kapcsolatok tömbje azt jelzi, hogy a függvény nem jelöl külső erőforrás-közönséget. A PAT egy titkos, nem egy platform által biztosított erőforrás-token.
Titkok konfigurálása környezet szerint
Biztosítsa a titkos értékeket abban a környezetben, ahol a függvény fut:
-
Helyi fejlesztés: Rejtett
Valuesértékeket adj hozzá a szekcióhozrayfin/functions/local.settings.json. A helyi Functions hoszt ebből a fájlból olvassa fel a függvénykörnyezet értékeit. - Fabric: Konfiguráld a titkokat a telepített elemhez a Fabric portálban.
Használd ugyanazt a titkos nevet minden környezetben. Például konfiguráld a GITHUB_PAT elemet helyileg és a Fabricben, majd olvasd be a ctx.getSecret('API_KEY') elemmel mindkét környezetben.
Important
Ne véglegesítsen titkos adatokat a verziókezelőbe a(z) rayfin/functions/local.settings.json vagy bármely más fájlban. Csak nem titkos példákat vagy helyjelölőket tárolj azokban a fájlokban, amelyeket bekötsz.