Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Bruk hemmeligheter for å gi sensitiv konfigurasjon, som personlige tilgangstokler og API-nøkler, til funksjonene dine. Aldri hardkoder hemmelige verdier i kildekoden eller eksponer dem for frontend. Les dem under kjøretid ved å ringe ctx.getSecret().
Forutsetninger
- En Fabric-app med initialiserte funksjoner. For oppsettsinstruksjoner, se Bruk funksjoner i Fabric Apps.
- Appen ble distribuert minst én gang med
npx rayfin up.rayfin secret setograyfin secret listmålrette det aktive distribuerte elementet og feile når det ikke finnes noe eksternt endepunkt. - En hemmelig verdi som kreves av din funksjon.
Sett en hemmelighet
Fra appens rot, aktiver funksjonsfunksjonen og sett hemmeligheten:
npx rayfin secret set API_KEY
Kommandoen gir en forespørsel om verdien og skjuler inputen din. For å oppdatere en eksisterende hemmelighet, kjør samme kommando igjen. Den nye verdien erstatter den eksisterende.
Important
Ikke inkluder en hemmelig verdi i kommandoen eller commi den til kildekontroll.
Listehemmeligheter
List opp de konfigurerte hemmelige navnene:
npx rayfin secret list
Kommandoen viser hemmelige navn og tidsstempler, men viser aldri hemmelige verdier.
Få tilgang til en hemmelighet fra en funksjon
Kall ctx.getSecret('NAME') for å hente en hemmelighet for den nåværende påkallelsen. Metoden returnerer undefined når hemmeligheten ikke er konfigurert, så håndter valgfrie hemmeligheter eksplisitt eller oppgi en passende ikke-hemmelig standard.
Følgende funksjon henter en fil fra et GitHub-repositorium. Offentlige arkiver krever ikke en personlig tilgangstoken (PAT). For private repositorier legger funksjonen til hemmeligheten GITHUB_PAT i forespørselen:
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();
},
[],
);
Det tomme tilkoblingsarrayet indikerer at funksjonen ikke erklærer en ekstern ressurs-målgruppe. En PAT er en hemmelighet, ikke en plattformbasert ressurstoken.
Konfigurer hemmeligheter etter miljø
Oppgi hemmelige verdier i miljøet der funksjonen kjører:
-
Lokal utvikling: Legg til hemmelige verdier i seksjonen
Valuesavrayfin/functions/local.settings.json. Den lokale Functions-verten leser funksjonsmiljøverdier fra denne filen. - Fabric: Konfigurer hemmeligheter for det deployerte objektet i Fabric-portalen.
Bruk det samme hemmelige navnet i hvert miljø. For eksempel, konfigurer GITHUB_PAT lokalt og i Fabric, og les det deretter i ctx.getSecret('API_KEY') begge miljøene.
Important
Ikke committer hemmelige verdier i rayfin/functions/local.settings.json eller noen annen fil til kildekontroll. Lagre kun ikke-hemmelige eksempler eller plassholdere i filer du commiter.