Käytä funktioita Fabric-sovelluksissa

Funktiot ovat TypeScript-funktioita, jotka toimivat palvelimella Fabric-sovelluksessasi. Käytä logiikkatoimintoja, joita ei saa suorittaa selaimessa, kuten salaisuuksien käsittelyä, etuoikeutettujen tietojen käyttöä ja alavirran palveluiden kutsumista sovelluksen identiteetillä.

Jokainen funktio rekisteröidään nimellä ja paljastetaan kutsuttavana HTTP-päätepisteenä. React-käyttöliittymäsi kutsuu funktiota tyypitetyn Rayfin-asiakkaan kautta, joten sinun ei tarvitse toteuttaa pyyntöjä, reititystä tai tokenien käsittelyä.

Note

Tämän artikkelin komennot käyttävät Rayfin CLI:n esikatseluversiota.

Milloin funktiota käytetään

Käytä Rayfin-toimintoa:

  • Kutsu ulkoinen API sovellustokenillä. Esimerkkejä ovat Azure AI Foundry, Azure DevOps, Fabric, Azure-tallennus ja Azure Key Vault.
  • Lue tai kirjoita sovelluksen tietokanta palvelin-pakotetulla rivitason turvallisuudella.
  • Pidä API-avaimet, mallien käyttöönoton nimet ja muut salaisuudet poissa asiakaskoodista.
  • Suorita orkestrointia, kuten fan-out-kutsuja, aggregointia tai tekoälyn ohjausta, lähelle dataa.

Edellytykset

Ennen kuin aloitat, asenna tai luo seuraavat resurssit:

  • Node.js 20 vuotta tai myöhemmin ja NPM.
  • Fabric-sovelluksen tukirakenne, joka on luotu Rayfin CLI:llä.
  • Azure-funktiot Core Tools, jota paikalliset funktiot käyttävät virheenkorjaukseen.

Install Azure-funktiot Core Tools version 4:

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

Luo sovellus, jossa on funktioita

Rakenna sovellus ja käynnistä sen funktioprojekti:

npm create @microsoft/rayfin@latest

cd my-app

npx rayfin functions init

Komento rayfin functions init lisää funktioprojektin, sen TypeScript-konfiguraation ja aloitusfunktiotiedoston olemassa olevaan sovellukseen.

Rakenna sovellus GitHub Copilot -ohjelmalla

Tuki sisältää GitHub Copilot -ohjeet ja taidot, joita tarvitaan projektin parissa työskentelyyn. Avaa projekti Visual Studio Code:ssa ja kuvaile sovellus, jonka haluat rakentaa, GitHub Copilot Chat:ssa.

Esimerkiksi käytä seuraavaa kehotetta rakentaaksesi tekoälyn pull request review assistantin:

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 voi tuottaa ja päivittää tarvittavat tiedostot ja komponentit. Voit myös pyytää agenttia ajamaan sovelluksen, debugaamaan funktioita paikallisesti ja ottamaan sovelluksen käyttöön.

Ymmärrä projektin rakenne

Funktion alustuskomento päivittyy rayfin/rayfin.yml ja luo rayfin/functions. Tyypillinen sovellus, jossa on funktioita, on seuraava rakenne:

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

Tiedostot palvelevat seuraavia tarkoituksia:

Polku Tarkoitus
rayfin/rayfin.yml Määrittää tunnistautumisen, datan, toiminnot ja staattiset hosting-palvelut.
rayfin/data/ Sisältää sovelluksen datamallit ja skeema-viennot.
rayfin/functions/package.json Määrittelee riippuvuuksia ja rakentaa skriptejä funktioprojektille.
rayfin/functions/tsconfig.json Määrittää TypeScript-buildin funktioille.
rayfin/functions/src/function_app.ts Sisältää funktiototeutuksesi.
rayfin/functions/src/types.ts Sisältää generoidut AppFunctionsSchema tyypit. Älä muokkaa tätä tiedostoa käsin.
src/ Sisältää React-frontendin sekä mahdolliset jaetut domainityypit tai kääreet.

Kun otat funktiot käyttöön, rayfin/rayfin.yml sisältää funktiopalvelun:

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

Sovelluksen todennus

Käytössä olevat toiminnot vaativat eksplisiittisen sovelluksen tunnistautumisen :rayfin/rayfin.yml

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

Uudet funktiot rakenteet asetettu auth.type: application.

Pois päältä -toiminnot voivat jättää authpois . Jos kuitenkin tarjoat auth, sen tulee sisältää:

auth:
  type: application

Täysi npx rayfin up ja normaali npx rayfin dev flow vahvistavat tämän asetuksen ennen projektin asetusten käyttöönottoa joko Fabric- tai Docker-taustajärjestelmään.

Suorita täysi npx rayfin up tunnistus soveltaaksesi YAML-autentikointitilaa olemassa olevaan etäsovellukseen.

Autentikointipolut, joita käytössä olevat funktiot käyttävät

Käyttöönotetut funktiot käyttävät kahta erillistä todennuspolkua:

Kulkureitti Tunnistetiedot Identiteetti ja luvat
Ulkoiset yhteydet ctx.Tokens.* Alustan tarjoama resurssitoken Sovelluksen identiteetti ja sen oikeudet ulkoiseen resurssiin
Rayfin DB:n kautta ctx.getDataClient() Invocationin Rayfin-merkki Soittajan henkilöllisyys ja oikeudet Rayfin DB:ssä

Nykyisissä Fabric-sovelluksissa sovelluksen identiteetti on BaaS-tuotteen omistaja.

Ulkoiset yhteydet käyttävät siis esineen omistajan oikeuksia, eivät sovelluksen käyttäjän oikeuksia, joka kutsuu funktion. Myönnä sovelluksen identiteetille kaikki ulkoiset resurssit ja API:t, joita Functions-koodi kutsuu, vaativat oikeudet.

Yleisön määrittäminen tai funktioiden käyttöönotto ei anna sovelluksen identiteettioikeuksia ulkoiselle resurssille.

Sovelluksen kirjautuminen ja valtuutus toiminnon käynnistämiseen ovat erillisiä, jos sovellus-identiteetti käyttää ulkoisia resursseja.

Rayfin-tietokannan pääsy käyttää aina Rayfin-tunnistetta ja säilyttää soittajan henkilöllisyyden ja tietokantaoikeudet. Asetus services.functions.auth.type: application ei vaihda Rayfin DB:n pääsyä sovelluksen identiteettiin.

Audience-ilmoituksista, resurssitokeneista, käyttöoikeuksista ja paikallisesta kehityskäyttäytymisestä katso Yhdistä funktiot ulkoisiin resursseihin.

Suorita sovellus paikallisesti

Kirjaudu sisään sovelluksen juurikansiosta:

cd my-app
npx rayfin login

Käynnistä frontend ja paikalliset toiminnot isännöivät:

npm run dev

Funktioilla varustetussa projektissa kuvataan npm run dev .rayfin dev Tämä komento soveltaa skeemaa, käynnistää paikallisen funktioiden isännän ja käynnistää Vite-kehityspalvelimen. Avaa paikallinen URL, joka on tulostettu terminaalissa, ja pidä terminaali käynnissä samalla kun kehität ja debuggaat sovellusta.

Jos haluat käynnistää vain funktioiden isännän, esimerkiksi kun ajat frontendin erikseen, käytä seuraavaa komentoa:

cd my-app
npx rayfin dev 

Deploy to Fabric

Ota käyttöön sovelluksen tiedot, staattinen sivusto ja toiminnot:


npx rayfin up --workspace <workspace-name>

Korvaa <WORKSPACE> kohteen Fabric-työtilan nimellä.

Lisää funktioita olemassa olevaan sovellukseen

Ota ominaisuus käyttöön olemassa olevan Fabric-sovelluksen juuresta ja käynnistä funktioprojekti kerran:


npx rayfin functions init

Alustuksen jälkeen lisää funktioiden toteutukset .rayfin/functions/src/function_app.ts

Rajoitukset

  • Funktion omistajuus: Vain käyttäjädatan funktioyksikön omistaja voi muokata ja julkaista Functions-koodia.
  • Julkaisun jäähdytys: Odota vähintään kaksi minuuttia julkaisun jälkeen ennen kuin julkaiset uudelleen. Tämä jäähdytysaika koskee julkaisua Functions-selaimen sisäisestä portaalista, käyttäjätietofunktioiden Visual Studio Code -laajennuksesta, Git-tuontitoiminnosta tai käyttöönottoputkista.
  • Käyttöönottopaketin koko: Functions-ZIP-tiedosto ei saa ylittää 30 MB.
  • Pyyntökuorman koko: Käyttäjätietofunktioiden palvelu dokumentoi maksimissaan 4 MB kaikille pyyntöparametreille yhteensä. Tämän rajoituksen odotetaan koskevan Rayfin-funktioita, mutta sitä ei ole vahvistettu.
  • Suorituksen aikakatkaisu: Funktio voi toimia jopa 240 sekuntia.
  • Kutsulokin säilyttäminen: Historialliset kutsulokit säilytetään oletuksena 30 päivää.
  • Sovelluksen identiteetti: Sovelluksen identiteetti on tällä hetkellä BaaS-tuotteen omistaja.

Alueelliset saatavuusvaatimukset ja lisätietoja käyttäjädatan funktioiden rajoituksista löytyy kohdasta Service Details and Limitations of Fabric user data functions.