Použitie funkcií v Fabric Apps

Funkcie sú TypeScript funkcie, ktoré bežia na serveri vo vašej Fabric aplikácii. Používajte funkcie logiky, ktoré nesmú bežať v prehliadači, ako je práca s tajomstvami, prístup k privilegovaným dátam a volanie služieb s identitou aplikácie.

Každá funkcia je registrovaná s menom a sprístupnená ako volateľný HTTP endpoint. Váš React frontend volá funkciu cez typovaného klienta Rayfin, takže nemusíte implementovať požiadavky, smerovanie ani spracovanie tokenov.

Poznámka

Príkazy v tomto článku používajú náhľadovú verziu Rayfin CLI.

Kedy použiť funkciu

Použite Rayfinovu funkciu na:

  • Zavolajte externé API pomocou aplikačného tokenu. Príkladmi sú Azure AI Foundry, Azure DevOps, Fabric, Azure Storage a Azure Key Vault.
  • Čítajte alebo zapisujte databázu aplikácie s bezpečnosťou na úrovni riadkov vynucovanou serverom.
  • Nechajte API kľúče, názvy modelových nasadení a ďalšie tajomstvá mimo klientskeho kódu.
  • Spustite orchestráciu, ako sú volania na rozšírenie, agregáciu alebo AI prompting, blízko dát.

Požiadavky

Predtým, než začnete, nainštalujte alebo vytvorte nasledujúce zdroje:

  • Node.js 20 alebo viac a NPM.
  • Fabric aplikačné lešenie vytvorené pomocou Rayfin CLI.
  • Azure Functions Core Tools, ktoré lokálny Functions hostiteľ používa na ladenie.

Install Azure Functions Core Tools verzia 4:

npm install --global azure-functions-core-tools@4

Vytvorte aplikáciu s funkciami

Podporte aplikáciu a inicializujte jej funkčný projekt:

npm create @microsoft/rayfin@latest

cd my-app

npx rayfin functions init

Príkaz rayfin functions init pridáva projekt funkcií, jeho konfiguráciu TypeScript a súbor štartovacej funkcie do existujúcej aplikácie.

Vytvorte aplikáciu pomocou GitHub Copilot

Lešenie obsahuje inštrukcie a zručnosti GitHub Copilot potrebné na prácu s projektom. Otvorte projekt vo Visual Studio Code a opíšte aplikáciu, ktorú chcete postaviť, v GitHub Copilot Chat.

Napríklad použite nasledujúci prompt na vytvorenie AI asistenta na prehodnotenie pull requestov:

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 dokáže generovať a aktualizovať potrebné súbory a komponenty. Môžete tiež požiadať agenta, aby spustil aplikáciu, lokálne ladil funkcie a aplikáciu nasadil.

Pochopte rozloženie projektu

Príkaz na inicializáciu funkcií aktualizuje rayfin/rayfin.yml a vytvára rayfin/functions. Typická aplikácia s funkciami má nasledujúcu štruktúru:

my-app/
├── rayfin/
│   ├── rayfin.yml
│   ├── data/
│   │   ├── TripPlan.ts
│   │   └── schema.ts
│   └── functions/
│       ├── package.json
│       ├── tsconfig.json
│       └── src/
│           ├── function_app.ts
│           └── types.ts
└── src/
    └── services/

Súbory slúžia na nasledujúce účely:

Cesta Účel
rayfin/rayfin.yml Konfiguruje autentifikáciu, dáta, funkcie a statické hostingové služby.
rayfin/data/ Obsahuje dátové modely aplikácie a exporty schémy.
rayfin/functions/package.json Definuje závislosti a zostavuje skripty pre projekt funkcií.
rayfin/functions/tsconfig.json Konfiguruje zostavu TypeScriptu pre funkcie.
rayfin/functions/src/function_app.ts Obsahuje vaše implementácie funkcií.
rayfin/functions/src/types.ts Obsahuje generované AppFunctionsSchema typy. Neupravujte tento súbor manuálne.
src/ Obsahuje React frontend a všetky zdieľané doménové typy alebo obaly.

Keď povolíte funkcie, rayfin/rayfin.yml zahŕňa službu funkcií:

services:
  functions:
    enabled: true
    auth:
      type: application
    buildCommand: npm run build

Autentifikácia aplikácií

Povolené funkcie vyžadujú explicitnú autentifikáciu aplikácií v rayfin/rayfin.yml:

services:
  functions:
    enabled: true
    auth:
      type: application
    buildCommand: npm run build

Nové funkcie sú základy množiny auth.type: application.

Zakázané funkcie môžu vynechať auth. Ak však poskytujete auth, musí zahŕňať:

auth:
  type: application

Celý npx rayfin up a normálny npx rayfin dev postup overujú toto nastavenie pred aplikáciou projektových nastavení na backend Fabric alebo Docker.

Spustiť úplný npx rayfin up režim, aby ste aplikovali YAML autentifikačný režim na existujúcu vzdialenú aplikáciu.

Autentifikačné cesty používané nasadenými Funkciami

Nasadené funkcie používajú dve samostatné autentifikačné cesty:

Prístupová cesta Poverenie Identita a povolenia
Externé prepojenia cez ctx.Tokens.* Token zdrojov poskytovaný platformou Identita aplikácie a jej oprávnenia na externom zdroji
Rayfin DB až po ctx.getDataClient() Rayfin token Invocation Identita volajúceho a oprávnenia v databáze Rayfin

Pre aktuálne aplikácie Fabric je identitou aplikácie vlastník položky BaaS.

Externé pripojenia preto používajú oprávnenia vlastníka položky, nie práva používateľa aplikácie, ktorý túto funkciu vyvoláva. Udeliť identite aplikácie oprávnenia požadované každým externým zdrojom a API volaným v kóde Functions.

Deklarovanie publika alebo nasadenie Functions neudeľuje aplikácii oprávnenia na identitu externého zdroja.

Prihlásenie aplikácie a autorizácia na vyvolanie funkcie sú oddelené od prístupu identity aplikácie k externým zdrojom.

Prístup do databázy Rayfin vždy používa token Rayfin a zachováva identitu volajúceho a oprávnenia na databázu. Nastavenie services.functions.auth.type: application neprepína prístup k Rayfin databáze na aplikačnú identitu.

Pre deklarácie publika, tokeny zdrojov, povolenia a lokálne správanie vo vývoji pozri Funkcie spojiť s externými zdrojmi.

Lokálne spustenie aplikácie

Z koreňového priečinka aplikácie sa prihláste:

cd my-app
npx rayfin login

Spustiť frontend a lokálne funkcie hostovať:

npm run dev

V projekte s funkciami sa mapuje npm run dev na rayfin dev. Tento príkaz aplikuje schému, spustí lokálny hostiteľ funkcií a spustí vývojový server Vite. Otvorte lokálnu URL adresu vypísanú v termináli a nechajte terminál bežať, kým vyvíjate a ladíte aplikáciu.

Ak chcete spustiť len hostiteľa funkcií, napríklad keď frontend spustíte samostatne, použite namiesto toho nasledujúci príkaz:

cd my-app
npx rayfin dev 

Nasadenie na Fabric

Nasadenie dát, statickej stránky a funkcií aplikácie:


npx rayfin up --workspace <workspace-name>

Nahraďte <WORKSPACE> názov cieľového pracovného priestoru Fabric.

Pridajte funkcie do existujúcej aplikácie

Z koreňa existujúcej aplikácie Fabric povolte funkciu a inicializujte projekt funkcií raz:


npx rayfin functions init

Po inicializácii pridajte implementácie funkcií do rayfin/functions/src/function_app.ts.

Obmedzenia

  • Vlastníctvo funkcie: Iba vlastník položky používateľských dát funkcie môže upravovať a publikovať kód funkcií.
  • Vydavateľský cooldown: Počkajte aspoň dve minúty po publikovaní, než publikujete znova. Tento cooldown platí pri publikovaní z portálu Functions v prehliadači, rozšírenia User Data Functions Visual Studio Code, akcie importu Gitu alebo deployment pipelines.
  • Veľkosť balíka nasadenia: ZIP súbor Functions nesmie presiahnuť 30 MB.
  • Veľkosť payload požiadavky: Služba funkcií používateľských dát dokumentuje maximálne 4 MB pre všetky parametre požiadavky dokopy. Očakáva sa, že tento limit sa bude vzťahovať aj na Rayfinove funkcie, ale nebol overený.
  • Časový limit vykonávania: Funkcia môže bežať až 240 sekúnd.
  • Uchovávanie záznamov o vyvolaní: Historické záznamy vyvolaní sú predvolene uchovávané 30 dní.
  • Identita aplikácie: Identita aplikácie je momentálne vlastníkom položky BaaS.

Pre regionálne požiadavky na dostupnosť a podrobnosti o obmedzeniach funkcií používateľských dát pozri podrobnosti o službách a obmedzenia Fabric používateľských dátových funkcií.