Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Funktioner er TypeScript-funktioner, der kører på serveren inde i din Fabric-app. Brug funktioner til logik, der ikke må køre i browseren, såsom at arbejde med hemmeligheder, tilgå privilegerede data og kalde downstream-tjenester med appens identitet.
Hver funktion registreres med et navn og eksponeres som et kaldbart HTTP-endpoint. Din React-frontend kalder funktionen gennem den typede Rayfin-klient, så du behøver ikke implementere forespørgsler, routing eller tokenhåndtering.
Bemærk
Kommandoerne i denne artikel bruger en forhåndsversion af Rayfin CLI.
Hvornår skal man bruge en funktion
Brug en rayfin-funktion til at:
- Kald et eksternt API med et applikationstok. Eksempler inkluderer Azure AI Foundry, Azure DevOps, Fabric, Azure Storage og Azure Key Vault.
- Læs eller skriv appens database med server-håndhævet række-niveau sikkerhed.
- Hold API-nøgler, modeludsendelsesnavne og andre hemmeligheder ude af klientkoden.
- Kør orkestrering, såsom fan-out calls, aggregation eller AI-prompting, tæt på dataene.
Forudsætninger
Før du begynder, skal du installere eller oprette følgende ressourcer:
- Node.js 20 år eller senere og npm.
- Et Fabric-app-scaffold oprettet med Rayfin CLI.
- Azure Functions Core Tools, som den lokale Functions-vært bruger til fejlfinding.
Install Azure Functions Core Tools version 4:
npm install --global azure-functions-core-tools@4
Opret en app med funktioner
Stillads en app og initialiser dens funktioner-projekt:
npm create @microsoft/rayfin@latest
cd my-app
npx rayfin functions init
Kommandoen rayfin functions init tilføjer funktionsprojektet, dens TypeScript-konfiguration og en startfunktionfil til den eksisterende app.
Byg appen med GitHub Copilot
Stilladset inkluderer GitHub Copilot-instruktioner og færdigheder, der er nødvendige for at arbejde med projektet. Åbn projektet i Visual Studio Code, og beskriv den app, du vil bygge, i GitHub Copilot Chat.
For eksempel kan du bruge følgende prompt til at bygge en AI-pull request-gennemgangsassistent:
Build an app that helps business analysts track sales performance across
regions. Show key metrics, let analysts ask questions about trends, and
use Functions to securely retrieve data from our sales API with application
authentication.
GitHub Copilot kan generere og opdatere de nødvendige filer og komponenter. Du kan også bede agenten om at køre appen, fejlfinde funktioner lokalt og deploye appen.
Forstå projektets layout
Funktionens initialiseringskommando opdaterer rayfin/rayfin.yml og opretter rayfin/functions. En typisk app med funktioner har følgende struktur:
my-app/
├── rayfin/
│ ├── rayfin.yml
│ ├── data/
│ │ ├── TripPlan.ts
│ │ └── schema.ts
│ └── functions/
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── function_app.ts
│ └── types.ts
└── src/
└── services/
Filerne tjener følgende formål:
| Sti | Formål |
|---|---|
rayfin/rayfin.yml |
Konfigurerer autentificering, data, funktioner og statiske hostingtjenester. |
rayfin/data/ |
Indeholder appens datamodeller og skema-eksport. |
rayfin/functions/package.json |
Definerer afhængigheder og bygger scripts til funktionsprojektet. |
rayfin/functions/tsconfig.json |
Konfigurerer TypeScript-buildet til funktioner. |
rayfin/functions/src/function_app.ts |
Indeholder dine funktionsimplementeringer. |
rayfin/functions/src/types.ts |
Indeholder de genererede AppFunctionsSchema typer. Rediger ikke denne fil manuelt. |
src/ |
Indeholder React-frontenden og eventuelle delte domænetyper eller wrappers. |
Når du aktiverer funktioner, rayfin/rayfin.yml inkluderer funktionstjenesten:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Applikationsautentificering
Aktiverede funktioner kræver eksplicit applikationsautentificering i rayfin/rayfin.yml:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Nye Functions stiller stilladser op .auth.type: application
Deaktiverede funktioner kan udelade auth. Men hvis du leverer auth, skal det inkludere:
auth:
type: application
En fuld npx rayfin up og normal npx rayfin dev flow validerer denne indstilling, før projektindstillinger anvendes på enten Fabric- eller Docker-backend.
Kør en fuld npx rayfin up test for at anvende YAML-autentificeringstilstanden på en eksisterende fjernapplikation.
Autentificeringsstier brugt af implementerede Functions
Deployerede funktioner bruger to separate autentificeringsstier:
| Adgangssti | Legitimationsoplysninger | Identitet og tilladelser |
|---|---|---|
Eksterne forbindelser gennem ctx.Tokens.* |
Platformleveret ressourcetoken | Applikationsidentitet og dens tilladelser på den eksterne ressource |
Rayfin DB gennem ctx.getDataClient() |
Invocations Rayfin-token | Opkalderens identitet og tilladelser på Rayfin-databasen |
For nuværende Fabric-apps er applikationsidentiteten ejeren af BaaS-elementet.
Eksterne forbindelser bruger derfor elementejerens tilladelser, ikke app-brugerens tilladelser, der kalder funktionen. Giv appens identitet de tilladelser, der kræves af hver ekstern ressource og API, der kaldes af Functions-koden.
Deklaration af et publikum eller implementering af Functions giver ikke appens identitetsrettigheder til en ekstern ressource.
App-login og autorisation til at påkalde en funktion er adskilt fra app-identitetens adgang til eksterne ressourcer.
Rayfin databaseadgang bruger altid Rayfin-tokenet og bevarer kalderens identitet og databaserettigheder. Indstillingen services.functions.auth.type: application skifter ikke Rayfin DB-adgang til applikationsidentiteten.
For audience-deklarationer, ressourcetokens, tilladelser og lokal udviklingsadfærd, se Connect Functions to external resources.
Kør appen lokalt
Fra appens rodmappe skal du logge ind:
cd my-app
npx rayfin login
Start frontend, og den lokale funktionær host:
npm run dev
I et funktionsaktiveret projekt npm run dev afbildes til rayfin dev. Denne kommando anvender skemaet, starter den lokale funktionshost og starter Vite-udviklingsserveren. Åbn den lokale URL, der er udskrevet i terminalen, og hold terminalen kørende, mens du udvikler og fejlsøger appen.
For kun at starte funktionsværten, for eksempel når du kører frontenden separat, brug i stedet følgende kommando:
cd my-app
npx rayfin dev
Deploy to Fabric
Udrul appens data, statiske site og funktioner:
npx rayfin up --workspace <workspace-name>
Erstat <WORKSPACE> med navnet på det målte Fabric-arbejdsområde.
Tilføj funktioner til en eksisterende app
Fra roden af en eksisterende Fabric-app, aktiver funktionen og initialiser funktionsprojektet én gang:
npx rayfin functions init
Efter initialiseringen tilføjes funktionsimplementeringer til rayfin/functions/src/function_app.ts.
Begrænsninger
- Funktionsejerskab: Kun ejeren af brugerdata-funktionselementet kan ændre og offentliggøre Functions-koden.
- Udgivelsescooldown: Vent mindst to minutter efter udgivelse, før du udgiver igen. Denne cooldown gælder, når man publicerer fra Functions in-browser portalen, brugerdatafunktionernes Visual Studio Code-udvidelse, Git-importhandlingen eller deployment-pipelines.
- Udrulningspakkestørrelse: Functions ZIP-filen må ikke overstige 30 MB.
- Anmodningspayload-størrelse: User Data Functions Service dokumenterer maksimalt 4 MB for alle anmodningsparametre tilsammen. Denne grænse forventes at gælde for Rayfin-funktioner, men er ikke blevet bekræftet.
- Udførelsestimeout: En funktion kan køre i op til 240 sekunder.
- Opbevaring af påkaldelseslogfiler: Historiske påkaldelseslogfiler opbevares som standard i 30 dage.
- Applikationsidentitet: Applikationsidentiteten er i øjeblikket ejer af BaaS-elementet.
For regionale tilgængelighedskrav og flere detaljer om begrænsninger for brugerdatafunktioner, se Servicedetaljer og begrænsninger for Fabric brugerdatafunktioner.