Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Funksjoner er TypeScript-funksjoner som kjører på serveren inne i Fabric-appen din. Bruk funksjoner for logikk som ikke må kjøre i nettleseren, som å jobbe med hemmeligheter, få tilgang til privilegerte data og kalle nedstrømstjenester med appens identitet.
Hver funksjon registreres med et navn og eksponeres som et kallbart HTTP-endepunkt. React-frontenden din kaller funksjonen gjennom den typede Rayfin-klienten, så du trenger ikke implementere forespørsler, ruting eller tokenhåndtering.
Notat
Kommandoene i denne artikkelen bruker en forhåndsversjon av Rayfin CLI.
Når man skal bruke en funksjon
Bruk en rayfin-funksjon til å:
- Kall et eksternt API med en applikasjonstoken. Eksempler inkluderer Azure AI Foundry, Azure DevOps, Fabric, Azure Storage og Azure Key Vault.
- Les eller skriv appens database med server-håndhevet rad-nivå sikkerhet.
- Hold API-nøkler, modelldistribusjonsnavn og andre hemmeligheter utenfor klientkoden.
- Kjør orkestrering, som fan-out calls, aggregering eller AI-prompting, nær dataene.
Forutsetninger
Før du begynner, installer eller opprett følgende ressurser:
- Node.js 20 år eller senere og NPM.
- Et Fabric-app-stillas laget med Rayfin CLI.
- Azure Functions Core Tools, som de lokale funksjonene hoster bruker til feilsøking.
Install Azure Functions Core Tools version 4:
npm install --global azure-functions-core-tools@4
Lag en app med funksjoner
En app og initialisere dens funksjoner-prosjekt:
npm create @microsoft/rayfin@latest
cd my-app
npx rayfin functions init
Kommandoen rayfin functions init legger til funksjonsprosjektet, sin TypeScript-konfigurasjon og en startfunksjonsfil til den eksisterende appen.
Bygg appen med GitHub Copilot
Stillaset inkluderer instruksjonene og ferdighetene til GitHub Copilot som trengs for å jobbe med prosjektet. Åpne prosjektet i Visual Studio Code, og beskriv appen du vil bygge i GitHub Copilot Chat.
For eksempel, bruk følgende prompt for å bygge en AI-assistent for gjennomgang av pull request:
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 oppdatere nødvendige filer og komponenter. Du kan også be agenten kjøre appen, feilsøke funksjoner lokalt og distribuere appen.
Forstå prosjektoppsettet
Funksjonsinitialiseringskommandoen oppdaterer rayfin/rayfin.yml og oppretter rayfin/functions. En typisk app med funksjoner 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/
Filene tjener følgende formål:
| Bane | Formål |
|---|---|
rayfin/rayfin.yml |
Konfigurerer autentisering, data, funksjoner og statiske hostingtjenester. |
rayfin/data/ |
Inneholder appens datamodeller og skjema-eksport. |
rayfin/functions/package.json |
Definerer avhengigheter og bygger skript for funksjonsprosjektet. |
rayfin/functions/tsconfig.json |
Konfigurerer TypeScript-bygget for funksjoner. |
rayfin/functions/src/function_app.ts |
Inneholder funksjonsimplementasjonene dine. |
rayfin/functions/src/types.ts |
Inneholder de genererte AppFunctionsSchema typene. Ikke rediger denne filen manuelt. |
src/ |
Inneholder React-frontenden og eventuelle delte domenetyper eller wrappere. |
Når du aktiverer funksjoner, rayfin/rayfin.yml inkluderer funksjonstjenesten:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Applikasjonsautentisering
Aktiverte funksjoner krever eksplisitt applikasjonsautentisering i rayfin/rayfin.yml:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Nye funksjoner stillaser setter auth.type: application.
Deaktiverte funksjoner kan utelate auth. Men hvis du leverer auth, må det inkludere:
auth:
type: application
En full npx rayfin up og normal npx rayfin dev flow validerer denne innstillingen før du anvender prosjektinnstillinger på enten Fabric- eller Docker-backend.
Kjør en full npx rayfin up for å anvende YAML-autentiseringsmodus på en eksisterende fjernapplikasjon.
Autentiseringsstier brukt av deployerte funksjoner
Deployerte funksjoner bruker to separate autentiseringsveier:
| Adkomstvei | Legitimasjon | Identitet og tillatelser |
|---|---|---|
Eksterne forbindelser gjennom ctx.Tokens.* |
Plattformbasert ressurstoken | Applikasjonsidentitet og dens tillatelser på den eksterne ressursen |
Rayfin DB gjennom ctx.getDataClient() |
Invocations Rayfin-token | Innringerens identitet og tillatelser på Rayfin-databasen |
For dagens Fabric-apper er applikasjonsidentiteten eieren av BaaS-elementet.
Eksterne tilkoblinger bruker derfor elementeierens tillatelser, ikke tillatelsene til appbrukeren som kaller funksjonen. Gi appens identitet de tillatelsene som kreves av alle eksterne ressurser og API-er som kalles av Functions-koden.
Å erklære et publikum eller distribuere Functions gir ikke appens identitetsrettigheter til en ekstern ressurs.
App-innlogging og autorisasjon for å starte en funksjon er adskilt fra appidentitetens tilgang til eksterne ressurser.
Rayfin DB-tilgang bruker alltid Rayfin-tokenet og bevarer anroperens identitet og databasetillatelser. Innstillingen services.functions.auth.type: application bytter ikke Rayfin DB-tilgang til applikasjonsidentiteten.
For audience-deklarasjoner, ressurstokens, tillatelser og lokal utviklingsatferd, se Connect Functions to external resources.
Kjør appen lokalt
Fra appens rotmappe, logg inn:
cd my-app
npx rayfin login
Start frontend og lokal funksjonsvert:
npm run dev
I et funksjonsaktivert prosjekt npm run dev avbildes til rayfin dev. Denne kommandoen anvender skjemaet, starter den lokale funksjonsverten og starter Vite-utviklingsserveren. Åpne den lokale URL-en som er skrevet ut i terminalen, og la terminalen gå mens du utvikler og feilsøker appen.
For å starte kun funksjonsverten, for eksempel når du kjører frontenden separat, bruk følgende kommando i stedet:
cd my-app
npx rayfin dev
Deploy to Fabric
Distribuer appens data, statiske sted og funksjoner:
npx rayfin up --workspace <workspace-name>
Bytt <WORKSPACE> ut med navnet på målet Fabric-arbeidsområdet.
Legg til funksjoner i en eksisterende app
Fra roten av en eksisterende Fabric-app, aktiver funksjonen og initialiser funksjonsprosjektet én gang:
npx rayfin functions init
Etter initialisering, legg til funksjonsimplementasjoner i rayfin/functions/src/function_app.ts.
Begrensninger
- Funksjonseierskap: Kun eieren av brukerdata-funksjonselementet kan endre og publisere Functions-koden.
- Publiseringsnedkjøling: Vent minst to minutter etter publisering før du publiserer igjen. Denne nedkjølingen gjelder når man publiserer fra Functions sin nettleserportal, brukerdatafunksjonene Visual Studio Code-utvidelsen, Git-importhandlingen eller distribusjonspipelines.
- Distribusjonspakkestørrelse: Functions ZIP-filen kan ikke overstige 30 MB.
- Forespørselsnyttelaststørrelse: Brukerdatafunksjonene dokumenterer maksimalt 4 MB for alle forespørslingsparametere samlet. Denne grensen forventes å gjelde for Rayfin-funksjoner, men er ikke verifisert.
- Utførelsestid: En funksjon kan kjøre i opptil 240 sekunder.
- Oppbevaring av påkallingslogger: Historiske påkallingslogger beholdes som standard i 30 dager.
- Applikasjonsidentitet: Applikasjonsidentiteten er for øyeblikket eier av BaaS-elementet.
For regionale tilgjengelighetskrav og mer informasjon om begrensninger for brukerdatafunksjoner, se Servicedetaljer og begrensninger for Fabric-brukerdatafunksjoner.