Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie Geheimnisse, um sensible Konfigurationen, wie persönliche Zugriffstoken und API-Schlüssel, für Ihre Funktionen bereitzustellen. Man sollte niemals geheime Werte im Quellcode fest programmieren oder sie dem Frontend zugänglich machen. Lesen Sie sie zur Laufzeit, indem Sie ctx.getSecret() aufrufen.
Voraussetzungen
- Eine Fabric-App mit initialisierten Funktionen. Anweisungen zum Einrichten finden Sie unter Use Functions in Fabric Apps.
- Die App wurde mindestens einmal mit
npx rayfin upbereitgestellt.rayfin secret setundrayfin secret listzielt auf das aktiv eingesetzte Element und scheitert, wenn kein entfernter Endpunkt existiert. - Ein geheimer Wert, der von Ihrer Funktion benötigt wird.
Festlegen eines Geheimnisses
Im Stammverzeichnis der App aktivieren Sie das Feature „Functions“ und legen das Secret fest:
npx rayfin secret set API_KEY
Der Befehl fordert den Wert an und maskiert deine Eingabe. Um ein bestehendes Geheimnis zu aktualisieren, führe denselben Befehl erneut aus. Der neue Wert ersetzt den bestehenden Wert.
Important
Füge keinen geheimen Wert in den Befehl ein und checke ihn nicht in die Versionsverwaltung ein.
Geheimnisse auflisten
Listen Sie die konfigurierten Geheimnamen auf:
npx rayfin secret list
Der Befehl zeigt geheime Namen und Zeitstempel an, aber nie geheime Werte.
Zugriff auf ein Geheimnis aus einer Funktion
Rufen Sie ctx.getSecret('NAME') auf, um ein Geheimnis für die aktuelle Invocation abzurufen. Die Methode gibt undefined zurück, wenn das Secret nicht konfiguriert ist. Behandeln Sie optionale Secrets daher explizit oder geben Sie einen geeigneten nicht geheimen Standardwert an.
Die folgende Funktion erhält eine Datei aus einem GitHub-Repository. Öffentliche Repositories benötigen keinen persönlichen Zugriffstoken (PAT). Für private Repositorien fügt die Funktion das Geheimnis GITHUB_PAT zur Anfrage hinzu:
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();
},
[],
);
Das leere Verbindungs-Array zeigt an, dass die Funktion keine externe Ressource-Audience deklariert. Ein PAT ist ein Geheimnis, kein von der Plattform bereitgestellter Ressourcentoken.
Secrets nach Umgebung konfigurieren
Geben Sie geheime Werte in der Umgebung an, in der die Funktion ausgeführt wird:
-
Lokale Entwicklung: Fügen Sie dem
ValuesAbschnitt vonrayfin/functions/local.settings.jsonGeheimwerte hinzu. Der lokale Functions-Host liest Funktionsumgebungswerte aus dieser Datei. - Fabric: Konfigurieren Sie Geheimnisse für den eingesetzten Gegenstand im Fabric-Portal.
Verwenden Sie in jeder Umgebung denselben Geheimnamen. Konfigurieren Sie GITHUB_PAT beispielsweise lokal und in Fabric, und lesen Sie es dann in beiden Umgebungen mit ctx.getSecret('API_KEY') aus.
Important
Übertragen Sie keine geheimen Werte in rayfin/functions/local.settings.json oder eine andere Datei in die Quellcode. Speichere nur nicht geheime Beispiele oder Platzhalter in Dateien, die du committest.