Miljövariabler och hemligheter
Ge en app miljövariabler och byggvariabler, referera till hemligheter i ett valv och hitta variablerna för appens managed identity.
Kräver: apps/write
Miljövariabler
Öppna appen och sedan Konfiguration → Miljövariabler.
- Individuell listar inställningarna. Lägg till en med Nyckel och Värde och välj Lägg till; varje rad har åtgärder för att redigera och ta bort den.
- Massredigering tar emot inställningarna i
.env-format, enKEY=valueper rad; välj Tillämpa ändringar. - Ladda upp .env läser en
.env-fil. Den ersätter de inställningar du har.
Välj Spara. Varje inställning blir en miljövariabel i appens container, och när du sparar byts appens instanser ut så att de startar med de nya värdena.
En nyckel börjar med en bokstav eller ett understreck och innehåller bara bokstäver, siffror och understreck. Plattformen avvisar ett värde över 32 KiB, och inställningar över 256 KiB sammanlagt.
En slot har egna inställningar — se Slotens inställningar.
Se upp
Inställningar är inte hemliga. Alla med
apps/readpå appen — bland dem rollerna Reader, Apps Reader och Platform Reader — kan läsa värdena i appens och dess slots inställningar via API:t, och under Visa ändringar på fliken Revisioner. Lägg lösenord, nycklar och anslutningssträngar med inloggningsuppgifter i ett valv och referera till dem som hemligheter.
Byggvariabler
Vissa ramverk — bland dem Next.js och Vite — läser inställningar när appen byggs och lägger in värdena i den kod de producerar. Slå på Byggvariabel för en sådan inställning så att den även skickas till avbildsbygget.
- Portalen flaggar en inställning vars namn börjar med
VITE_,NEXT_PUBLIC_,NUXT_PUBLIC_,PUBLIC_,REACT_APP_,VUE_APP_ellerEXPO_PUBLIC_och som inte är markerad. - Högst 32 inställningar kan vara byggvariabler, och var och en måste vara en av appens inställningar.
- Byggvariabler skrivs i klartext in i byggjobbet, där alla som kan läsa resursgruppens jobb eller poddar i klustret ser dem, och ett ramverk som läser en lägger dess värde i koden det producerar. Markera aldrig en hemlighet; en hemlighetsreferens kan inte markeras.
- Att markera eller avmarkera en inställning, eller ändra värdet på en markerad, bygger om appen.
Byggvariabler gör ingenting för en app som kör en containeravbild, eftersom den inte byggs.
Hemligheter
En hemlighet stannar i sitt valv; appen har en referens till den. Öppna appen och sedan Konfiguration → Hemligheter, och lägg till en referens för varje hemlighet appen behöver — stegen finns i Hemligheter i appar och funktioner.
Viktigt
Appen läser sina hemligheter från filen
/secrets/env.json, ett JSON-objekt som kopplar varje namn du angav under Miljövariabelnamn till hemlighetens värde. Ingenting sätter dem som miljövariabler: din kod måste läsa filen — se Läs värdena i din kod.
- Filen skrivs när en instans startar, av appens managed identity. Den identiteten behöver rollen Secrets Reader på valvet, och för en app tilldelar du den själv — se Ge en arbetslast åtkomst. Utan den startar inte appens instanser.
- Filen ligger i minnet och är skrivskyddad; den skrivs aldrig till disk.
- När värdet på en hemlighet har ändrats startar du om eller driftsätter appen för att få med det, och likaså var och en av dess slots: en omstart gäller bara den app eller slot den görs på.
- Appens slots får samma hemlighetsreferenser som appen och läser hemligheterna med appens managed identity. Kod på en slots gren läser alltså appens hemligheter — se Vad en slot delar med appen.
Variablerna för appens managed identity
Varje app har en managed identity, som visas på dess Översikt. Appens container, och varje
slots, får variablerna STACKSHIP_IDENTITY_RESOURCE_UID och STACKSHIP_IDENTITY_TOKEN_ENDPOINT,
med vilka din kod kan hämta en token för identiteten — se
Använd en managed identity i kod. Identiteten
börjar utan någon åtkomst; ge den roller enligt
Ge en managed identity en roll.