Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
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.