Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd hemligheter för att tillhandahålla känsliga konfigurationer, såsom personliga åtkomsttokens och API-nycklar, till dina funktioner. Koda aldrig hemliga värden i källkoden eller exponera dem för frontend. Läs dem vid körning genom att anropa ctx.getSecret().
Förutsättningar
- En Fabric-app med initiala funktioner. För installationsinstruktioner, se Använd funktioner i Fabric Apps.
- Appen distribuerades minst en gång med
npx rayfin up.rayfin secret setochrayfin secret listrikta in sig på det aktivt distribuerade objektet och misslyckas när ingen fjärrändpunkt finns. - Ett hemligt värde som krävs av din funktion.
Ange en hemlighet
Från appens rot, aktivera funktionen och ställ in hemligheten:
npx rayfin secret set API_KEY
Kommandot ber dig ange värdet och döljer din inmatning. För att uppdatera en befintlig hemlighet, kör samma kommando igen. Det nya värdet ersätter det befintliga värdet.
Important
Inkludera inte ett hemligt värde i kommandot eller commita det till versionskontroll.
Lista hemligheter
Lista de konfigurerade hemliga namnen:
npx rayfin secret list
Kommandot visar hemliga namn och tidsstämplar, men visar aldrig hemliga värden.
Åtkomst till en hemlighet från en funktion
Kalla på ctx.getSecret('NAME') för att hämta en hemlighet för det aktuella anropet. Metoden returnerar undefined när hemligheten inte är konfigurerad, så hantera valfria hemligheter explicit eller ange en lämplig icke-hemlig standard.
Följande funktion hämtar en fil från ett GitHub-arkiv. Publika arkiv kräver ingen personlig åtkomsttoken (PAT). För privata arkiv lägger funktionen till hemligheten GITHUB_PAT i förfrågan:
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();
},
[],
);
Den tomma anslutningsmatrisen indikerar att funktionen inte deklarerar en extern resurspublik. En PAT är en hemlighet, inte en plattformstillhandahållen resurstoken.
Konfigurera hemligheter per miljö
Ange hemliga värden i miljön där funktionen körs:
-
Lokal utveckling: Lägg till hemliga värden i sektionen
Valuesavrayfin/functions/local.settings.json. Den lokala Functions-värden läser funktionsmiljövärden från den här filen. - Fabric: Konfigurera hemligheter för det utplacerade föremålet i Fabric-portalen.
Använd samma hemliga namn i varje miljö. Till exempel konfigurerar du GITHUB_PAT lokalt och i Fabric och läser sedan den med ctx.getSecret('API_KEY') i båda miljöerna.
Important
Sätt inte in hemliga värden i rayfin/functions/local.settings.json eller någon annan fil i källkodskontroll. Spara endast icke-hemliga exempel eller platshållare i filer som du commitar.