Hemligheter och managed identity
Ge funktioner hemligheter från ett valv, läs värdena i koden och ge funktionsnamnutrymmets managed identity den åtkomst som dess funktioner behöver.
Kräver: functions/write, rbac/members/write
Ett funktionsnamnutrymme har en managed identity, och varje funktion i det körs som den
identiteten: när plattformen hämtar en funktions hemligheter vid start, och när funktionens egen kod
ber om en token. För att lägga till hemlighetsreferenser behöver du functions/write; för att ge
identiteten en roll behöver du rbac/members/write, som rollen Owner har.
Lägg till en hemlighetsreferens
Öppna funktionen, dess flik Konfiguration, avsnittet Hemligheter, och lägg till en referens till en hemlighet i ett valv med det Miljövariabelnamn den ska få. Stegen finns i Lägg till en hemlighetsreferens. När du sparar driftsätts funktionen om.
Ge identiteten åtkomst till valvet
Innan funktionen kan starta med en hemlighet behöver namnutrymmets identitet Secrets Reader på valvet. Ingenting tilldelar den åt dig.
Hitta identitetens principal-ID. Öppna funktionsnamnutrymmet; kortet Hanterad identitet under dess Översikt visar Principal-ID. Kortet visas bara för den som också får läsa appar (
apps/read); annars använder du CLI:t:stsh identity list -g my-resource-group -o jsonoch tar
principalIdfrån posten varsresourceTypeärfunctionnamespaceoch varsresourceNameär funktionsnamnutrymmet. Funktioner har ingen egen identitet.Ge det principal-ID:t Secrets Reader på valvet — se Ge en arbetslast åtkomst till ett valv.
Viktigt
Identiteten hör till funktionsnamnutrymmet, inte till en enskild funktion. En roll som du ger den gäller för varje funktion i namnutrymmet: när identiteten får läsa ett valv kan koden i vilken som helst av dess funktioner läsa valvets hemligheter, inte bara de funktioner som refererar till dem. Lägg funktioner som inte får dela åtkomst i olika funktionsnamnutrymmen.
Läs värdena i din kod
När en replik startar hämtar plattformen de refererade värdena till filen /secrets/env.json, ett
JSON-objekt som kopplar varje Miljövariabelnamn till sitt värde. Funktionens körmiljö sätter
sedan en miljövariabel per post, med namnet STSH_ följt av namnet i versaler:
const apiKey = process.env.STSH_API_KEY;- Filen går också att läsa, på en skrivskyddad volym som finns i minnet.
- Om filen inte kan läsas eller tolkas startar funktionen inte.
- En avbild som du bygger själv får filen men inte variablerna
STSH_: de sätts av plattformens körmiljö — se Kör en avbild från din egen pipeline.
När ett värde ändras
Värdena hämtas varje gång en replik startar: när funktionen distribueras, när någon av dess inställningar sparas och varje gång den vaknar ur vila. En replik som redan körs behåller de värden den startade med.
Använd identiteten i din egen kod
Funktionens kod kan hämta en token för namnutrymmets identitet och anropa plattformens tjänster med den. Funktioner får samma variabler som andra arbetslaster — se Använd en managed identity i kod.
När en funktion inte startar
En funktion vars hemligheter inte kan hämtas startar inte — se Funktionen startar inte. Skälen till att en hemlighet inte kan hämtas är desamma som för andra arbetslaster — se Felsök leverans av hemligheter.