Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik secrets om gevoelige configuraties te bieden, zoals persoonlijke toegangstokens en API-sleutels, aan je functies. Hardcode geheime waarden nooit in de broncode en stel ze niet bloot in de frontend. Lees ze tijdens de uitvoering door ctx.getSecret() aan te roepen.
Prerequisites
- Een Fabric-app met geïnitialiseerde functies. Voor installatie-instructies, zie Use Functions in Fabric Apps.
- De app is minstens één keer uitgerold met
npx rayfin up.rayfin secret setenrayfin secret listricht je op het actief geïmplementeerde item en faalt wanneer er geen externe endpoint bestaat. - Een geheime waarde die door jouw functie wordt vereist.
Een geheim instellen
Vanuit de app-wortel schakel je de functiefunctie in en stel je het geheim in:
npx rayfin secret set API_KEY
De opdracht vraagt om de waarde en maskeert je invoer. Om een bestaand geheim bij te werken, voer je hetzelfde commando opnieuw uit. De nieuwe waarde vervangt de bestaande waarde.
Important
Neem geen geheime waarde op in de opdracht en leg deze niet vast in broncodebeheer.
Geheimen weergeven
Vermeld de geconfigureerde geheime namen:
npx rayfin secret list
Het commando toont geheime namen en tijdstempels, maar nooit geheime waarden.
Toegang tot een geheim van een functie
Roep ctx.getSecret('NAME') aan om een geheim op te halen voor de huidige aanroep. De methode keert terug undefined wanneer het geheim niet is geconfigureerd, dus behandel optionele geheimen expliciet of geef een passende niet-geheime standaardinstelling.
De volgende functie haalt een bestand op uit een GitHub-repository. Openbare repositories hebben geen persoonlijk toegangstoken (PAT) nodig. Voor private repositories voegt de functie het GITHUB_PAT geheim toe aan het verzoek:
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();
},
[],
);
De lege verbindingsarray geeft aan dat de functie geen externe resource audience declareert. Een PAT is een geheim, geen door het platform geleverde resourcetoken.
Configureer geheimen per omgeving
Geef geheime waarden in de omgeving waar de functie draait:
-
Lokale ontwikkeling: Voeg geheime waarden toe aan de
Valuessectie vanrayfin/functions/local.settings.json. De lokale Functions-host leest de functies van de omgeving uit dit bestand. - Fabric: Configureer geheimen voor het uitgerolde item in het Fabric-portaal.
Gebruik dezelfde geheime naam in elke omgeving. Bijvoorbeeld, configureer GITHUB_PAT lokaal en in Fabric en lees het vervolgens met ctx.getSecret('API_KEY') in beide omgevingen.
Important
Sla geen geheime waarden op in rayfin/functions/local.settings.json of enig ander bestand in broncodebeheer. Sla alleen niet-vertrouwelijke voorbeelden of plaatshouders op in bestanden die je commit.