Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A függvények olyan TypeScript függvények, amelyek a Fabric alkalmazáson belüli szerveren futnak. Használj olyan logikai funkciókat, amelyek nem futhatnak a böngészőben, például titkokkal való munkavégzést, jogosultságos adatok elérését, és az alkalmazás identitásával történő lefelé irányuló szolgáltatások hívását.
Minden függvény névvel van regisztrálva, és hívható HTTP végpontként van elérhető. A React frontend a gépelt Rayfin kliensen keresztül hívja a függvényt, így nem kell kéréseket, útvonalat vagy token kezelést végrehajtani.
Megjegyzés:
A cikkben szereplő parancsok a Rayfin CLI előzetesített verzióját használják.
Mikor kell függvényt használni
Használj egy Rayfin funkciót a következőkért:
- Hívj egy külső API-t egy alkalmazástokennel. Példák az Azure AI Foundry, Azure DevOps, Fabric, Azure Storage és Azure Key Vault.
- Olvassa vagy írja az alkalmazás adatbázisát a kiszolgáló által kikényszerített sorszintű hozzáférés-vezérléssel.
- Tartsd ki az API kulcsokat, modelltelepítési neveket és más titkokat a kliens kódból.
- Végezzen orchesztrációt, például fan-out hívásokat, aggregációt vagy MI-utasításadást az adatok közelében.
Prerequisites
Mielőtt elkezdenéd, telepítsd vagy hozd létre az alábbi erőforrásokat:
- Node.js 20 vagy újabb, valamint npm.
- Egy Fabric alkalmazás állvány, amelyet a Rayfin CLI-vel készítettek.
- Azure Functions Core Tools, amelyet a helyi függvénygazda hibakereséshez használ.
Install Azure Functions Core Tools version 4:
npm install --global azure-functions-core-tools@4
Hozzon létre egy alkalmazást funkciókkal
Építsd fel egy alkalmazást és inicializáld a funkciókat, projekt:
npm create @microsoft/rayfin@latest
cd my-app
npx rayfin functions init
A rayfin functions init parancs hozzáadja a függvényprojektet, annak TypeScript konfigurációját és egy kezdő funkciófájlt a meglévő alkalmazáshoz.
Építsd az alkalmazást a GitHub Copilot-szal
A váz tartalmazza a GitHub Copilot utasításait és a projekthez szükséges készségeket. Nyisd meg a projektet a Visual Studio Code-ban, és írd le az alkalmazást, amit a GitHub Copilot Chat-ben szeretnél létrehozni.
Például az alábbi promptot használd AI pull request review assistant építéséhez:
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.
A GitHub Copilot képes generálni és frissíteni a szükséges fájlokat és komponenseket. Megkérheted az ügynököt is, hogy futtasson az alkalmazás, helyben debugozza a funkciókat, és telepítse az alkalmazást.
Ismerd meg a projekt elrendezését
A függvények inicializálási parancsa frissíti a rayfin/rayfin.yml elemet, és létrehozza a rayfin/functions elemet. Egy tipikus funkciókkal rendelkező alkalmazás a következő szerkezettel rendelkezik:
my-app/
├── rayfin/
│ ├── rayfin.yml
│ ├── data/
│ │ ├── TripPlan.ts
│ │ └── schema.ts
│ └── functions/
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── function_app.ts
│ └── types.ts
└── src/
└── services/
A fájlok a következő célokat szolgálják:
| Path | Alkalmazás célja |
|---|---|
rayfin/rayfin.yml |
Konfigurálja a hitelesítést, az adatokat, a függvényeket és a statikus tárhelyszolgáltatásokat. |
rayfin/data/ |
Tartalmazza az alkalmazás adatmodelljeit és séma exportjait. |
rayfin/functions/package.json |
Függségeket definiál és szkripteket épít a függvényprojekthez. |
rayfin/functions/tsconfig.json |
Konfigurálja a függvényekhez használt TypeScript-buildet. |
rayfin/functions/src/function_app.ts |
Tartalmazza a funkcióimplementációidat. |
rayfin/functions/src/types.ts |
Tartalmazza a generált AppFunctionsSchema típusokat. Ne szerkessze manuálisan a fájlt. |
src/ |
Tartalmazza a React frontendjét, valamint a megosztott domain típusokat vagy wrappereket. |
Ha engedélyezed a függvényeket, rayfin/rayfin.yml tartalmazza a függvényszolgáltatást:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Alkalmazáshitelesítés
Az engedélyezett függvények explicit alkalmazáshitelesítést igényelnek a következőkben rayfin/rayfin.yml:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Új funkciók állványok .auth.type: application
A letiltott funkciók kihagyhatják auth. Ha viszont biztosítod auth, annak tartalmaznia kell:
auth:
type: application
A teljes npx rayfin up és a normál npx rayfin dev folyamat validálja ezt a beállítást, mielőtt a projektbeállításokat alkalmaznánk a Fabric vagy a Docker háttérrendszerre.
Futtasson le egy teljes npx rayfin up parancsot, hogy a YAML-hitelesítési módot alkalmazza egy meglévő távoli alkalmazásra.
A telepített funkciók által használt hitelesítési útvonalak
A telepített függvények két külön hitelesítési útvonalat használnak:
| Elérési út | Credential | Identitás és engedélyek |
|---|---|---|
Külső kapcsolatok ezen keresztül: ctx.Tokens.* |
Platform által biztosított erőforrás token | Alkalmazás identitása és engedélyei a külső erőforráson |
Rayfin DB-n keresztül ctx.getDataClient() |
Az Invocation Rayfin tokenje | A hívó személyazonossága és jogosultságai a Rayfin DB-ben |
A jelenlegi Fabric alkalmazásoknál az alkalmazás identitása a BaaS elem tulajdonosa.
A külső kapcsolatok tehát az item tulajdonosának jogosultságait használják, nem pedig az alkalmazás felhasználójának engedélyeit, aki a funkciót hívja. Add meg az alkalmazásidentitásnak a Functions-kód által meghívott összes külső erőforrás és API által megkövetelt engedélyeket.
A közönség kijelölése vagy a funkciók telepítése nem ad az alkalmazás identitásának jogosítását egy külső erőforráshoz.
Az alkalmazás bejelentkezése és a függvény meghívásának engedélyezése különálló az alkalmazás identitásának külső erőforrásokhoz való hozzáférésétől.
A Rayfin adatbázis-hozzáférés mindig a Rayfin tokent használja, és megőrzi a hívó személyazonosságát és adatbázis-jogosultságát. A beállítás services.functions.auth.type: application nem kapcsolja át a Rayfin DB hozzáférését az alkalmazás identitására.
A közönség deklarációihoz, erőforrás-tokenekhez, jogosultságokhoz és helyi fejlesztési viselkedéshez lásd: Kapcsold össze a funkciókat külső erőforrásokhoz.
Az alkalmazás helyi futtatása
Az alkalmazás gyökérmappájából jelentkezz be:
cd my-app
npx rayfin login
Indítsd el a frontendet és a helyi függvények hosztolását:
npm run dev
Függvényekkel rendelkező projektben a npm run dev a rayfin dev elemre képeződik le. Ez a parancs alkalmazza a sémát, elindítja a helyi függvény hosztet, és elindítja a Vite fejlesztő szervert. Nyisd meg a terminálban kiírt helyi URL-címet, és hagyd futni a terminált, miközben fejleszted és hibakeresed az alkalmazást.
Ha csak a függvényházi szervert szeretnéd elindítani, például amikor külön futtatod a frontendet, használd helyette a következő parancsot:
cd my-app
npx rayfin dev
Üzembe helyezés a Fabricben
Telepítsd az alkalmazás adatait, statikus oldalát és funkcióit:
npx rayfin up --workspace <workspace-name>
Cseréld <WORKSPACE> le a cél Fabric munkaterület nevét.
Funkciók hozzáadása egy meglévő alkalmazáshoz
Egy meglévő Fabric alkalmazás gyökéréből engedd be a funkciót, és inicializáld a függvényprojekteket egyszer:
npx rayfin functions init
Inicializálás után adjunk hozzá függvényimplementációkat a -höz rayfin/functions/src/function_app.ts.
Limitations
- Funkció tulajdonjoga: Csak a felhasználói adat funkció elem tulajdonosa módosíthatja és publikálhatja a Funkciók kódját.
- Közzétételi várakozási idő: Várj legalább két percet a közzététel után, mielőtt újra közzétennél valamit. Ez a várakozási idő akkor érvényes, ha a közzététel a Functions böngészőbeli portáljáról, a felhasználóiadat-függvények Visual Studio Code-bővítményéből, a Git-importálási műveletből vagy a telepítési folyamatokból történik.
- Telepítési csomagméret: A Functions ZIP fájl nem haladhatja meg a 30 MB-ot.
- A kérés hasznos adatmennyisége: A felhasználói adatfüggvények szolgáltatása 4 MB-os maximális méretet ad meg az összes kérési paraméter együttes méretére. Ez a korlát várhatóan vonatkozik a Rayfin függvényekre, de még nem ellenőrizték.
- Végrehajtási időtúllépés: Egy függvény akár 240 másodpercig is futhat.
- Hívásnapló megőrzése: A történelmi hívási naplók alapértelmezés szerint 30 napig maradnak meg.
- Alkalmazás identitás: Az alkalmazás identitása jelenleg a BaaS elem tulajdonosa.
A regionális elérhetőségi követelményekért és további részletekért a felhasználói adat-függvények korlátairól lásd: Szolgáltatás részletei és korlátai a Fabric felhasználói adat függvényeiben.