Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Brug hemmeligheder til at levere følsomme konfigurationer, såsom personlige adgangstoks og API-nøgler, til dine funktioner. Kod aldrig hemmelige værdier hårdt i kildekoden eller eksponér dem til frontend. Læs dem under kørsel ved at ringe ctx.getSecret()til .
Forudsætninger
- En Fabric-app med initialiserede funktioner. For opsætningsinstruktioner, se Brug funktioner i Fabric Apps.
- Appen blev implementeret mindst én gang med
npx rayfin up.rayfin secret setograyfin secret listmålretter det aktive deployerede element og fejler, når der ikke findes noget fjernt endpoint. - En hemmelig værdi, som din funktion kræver.
Sæt en hemmelighed
Fra appens rod aktiveres funktionen og indsættes hemmeligheden:
npx rayfin secret set API_KEY
Kommandoen giver værdien en prompt og skjuler dit input. For at opdatere en eksisterende hemmelighed, kør den samme kommando igen. Den nye værdi erstatter den eksisterende værdi.
Vigtig
Inkluder ikke en hemmelig værdi i kommandoen eller commmit den til versionskontrol.
Listehemmeligheder
List de konfigurerede hemmelige navne:
npx rayfin secret list
Kommandoen viser hemmelige navne og tidsstempler, men viser aldrig hemmelige værdier.
Få adgang til en hemmelighed fra en funktion
Kald ctx.getSecret('NAME') for at hente en hemmelighed til den nuværende påkaldelse. Metoden returneres undefined , når hemmeligheden ikke er konfigureret, så håndter valgfrie hemmeligheder eksplicit eller giv en passende ikke-hemmelig standard.
Følgende funktion henter en fil fra et GitHub-repository. Offentlige repositories kræver ikke en personlig adgangstoken (PAT). For private repositorier tilføjer funktionen hemmeligheden GITHUB_PAT til forespørgslen:
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 forbindelsesarray indikerer, at funktionen ikke erklærer en ekstern ressource-audience. En PAT er en hemmelighed, ikke en platform-leveret ressourcetoken.
Konfigurer hemmeligheder efter miljø
Angiv hemmelige værdier i miljøet, hvor funktionen kører:
-
Lokal udvikling: Tilføj hemmelige værdier til sektionen
Valuesafrayfin/functions/local.settings.json. Den lokale Functions-vært læser funktionsmiljøværdier fra denne fil. - Fabric: Konfigurer hemmeligheder for det deployerede item i Fabric-portalen.
Brug det samme hemmelige navn i hvert miljø. For eksempel kan du konfigurere GITHUB_PAT det lokalt og i Fabric, og derefter læse det i ctx.getSecret('API_KEY') begge miljøer.
Vigtig
Comm ikke hemmelige værdier i rayfin/functions/local.settings.json eller nogen anden fil til versionskontrol. Gem kun ikke-hemmelige eksempler eller pladsholdere i filer, du commiter.