Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Fonksiyonlarınıza kişisel erişim tokenları ve API anahtarları gibi hassas yapılandırmalar sağlamak için sırlar kullanın. Kaynak kodda gizli değerleri asla sabit kodlamayın veya ön yüze açığa çıkarmayın.
ctx.getSecret() çağrısı yaparak çalışma zamanında okuyun.
Prerequisites
- İşlevleri başlatılmış bir Fabric uygulaması. Kurulum talimatları için bkz. Use Functions in Fabric Apps.
- Uygulama,
npx rayfin upile en az bir kez dağıtıldı.rayfin secret setverayfin secret listaktif dağıtılan öğeyi hedefleyip uzak uç noktası olmadığında başarısız olur. - Fonksiyonunuz için gereken gizli bir değer.
Gizli bilgi ayarlama
Uygulama kökünden, fonksiyon özelliğini etkinleştirin ve sırrı ayarlayın:
npx rayfin secret set API_KEY
Komut değeri sorar ve girdinizi maskeler. Mevcut bir sırrı güncellemek için aynı komutu tekrar çalıştırın. Yeni değer mevcut değerin yerini alır.
Important
Komuta gizli bir değer eklemeyin veya onu kaynak kontrolüne bağlamayın.
Gizlilikleri listele
Yapılandırılmış gizli isimleri listeleyin:
npx rayfin secret list
Komut gizli isimleri ve zaman damgalarını gösterir, ancak asla gizli değerleri göstermez.
Bir işlevden gizli bilgiye erişim
Geçerli çağrı için bir gizli anahtar almak üzere ctx.getSecret('NAME') çağırın. Gizli değer yapılandırılmadığında yöntem undefined döndürür; bu nedenle isteğe bağlı gizli değerleri açıkça işleyin veya uygun bir gizli olmayan varsayılan değer sağlayın.
Aşağıdaki fonksiyon, bir GitHub deposundan bir dosya alır. Açık depolar kişisel erişim tokenı (PAT) gerektirmez. Özel depolar için işlev, GITHUB_PAT gizli anahtarını isteğe ekler:
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();
},
[],
);
Boş bağlantılar dizisi, fonksiyonun harici bir kaynak kitlesi ilan etmediğini gösterir. PAT bir sırdır, platform tarafından sağlanan bir kaynak tokenı değildir.
Sırları ortama göre yapılandırma
Fonksiyonun çalıştığı ortamda gizli değerler sağlanır:
-
Yerel geliştirme: Gizli değerleri
rayfin/functions/local.settings.jsoniçindekiValuesbölümüne ekleyin. Yerel Fonksiyonlar ana bilgisayarı, bu dosyadan fonksiyon ortamı değerlerini okur. - Fabric: Fabric portalında dağıtılan öğe için sırları yapılandırın.
Her ortamda aynı gizli adı kullanın. Örneğin, GITHUB_PAT öğesini yerel ortamda ve Fabric'te yapılandırın, ardından bunu her iki ortamda da ctx.getSecret('API_KEY') ile okuyun.
Important
Gizli değerleri içinde rayfin/functions/local.settings.json veya başka bir dosyada kaynak kontrolüne göndermeyin. Yalnızca gizli olmayan örnekleri veya yer tutucuları commit ettiğiniz dosyalarda saklayın.