Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Οι συναρτήσεις είναι συναρτήσεις TypeScript που εκτελούνται στον διακομιστή μέσα στην εφαρμογή Fabric. Χρησιμοποιήστε συναρτήσεις για λογική που δεν πρέπει να εκτελούνται στο πρόγραμμα περιήγησης, όπως η εργασία με μυστικά, η πρόσβαση σε προνομιακά δεδομένα και η κλήση κατάντη υπηρεσιών με την ταυτότητα της εφαρμογής.
Κάθε συνάρτηση καταχωρείται με ένα όνομα και εκτίθεται ως τελικό σημείο HTTP με δυνατότητα κλήσης. Το frontend του React καλεί τη συνάρτηση μέσω του πληκτρολογημένου προγράμματος-πελάτη Rayfin, επομένως δεν χρειάζεται να υλοποιήσετε αιτήματα, δρομολόγηση ή χειρισμό διακριτικών.
Σημείωμα
Οι εντολές σε αυτό το άρθρο χρησιμοποιούν μια έκδοση προεπισκόπησης του Rayfin CLI.
Πότε να χρησιμοποιήσετε μια συνάρτηση
Χρησιμοποιήστε μια συνάρτηση Rayfin για:
- Καλέστε ένα εξωτερικό API με ένα διακριτικό εφαρμογής. Παραδείγματα περιλαμβάνουν το Azure AI Foundry, το Azure DevOps, το Fabric, το Azure Storage και το Azure Key Vault.
- Διαβάστε ή γράψτε τη βάση δεδομένων της εφαρμογής με ασφάλεια σε επίπεδο γραμμών που επιβάλλεται από τον διακομιστή.
- Κρατήστε τα κλειδιά API, τα ονόματα ανάπτυξης μοντέλων και άλλα μυστικά μακριά από τον κώδικα πελάτη.
- Εκτελέστε ενορχήστρωση, όπως κλήσεις fan-out, συνάθροιση ή προτροπή AI, κοντά στα δεδομένα.
Προαπαιτούμενα στοιχεία
Πριν ξεκινήσετε, εγκαταστήστε ή δημιουργήστε τους ακόλουθους πόρους:
- Node.js 20 ή αργότερα και npm.
- Ένα ικρίωμα εφαρμογής Fabric που δημιουργήθηκε με το Rayfin CLI.
- Azure Functions Core Tools, τα οποία χρησιμοποιεί ο κεντρικός υπολογιστής τοπικών συναρτήσεων για εντοπισμό σφαλμάτων.
Εγκαταστήστε το Azure Functions Core Tools έκδοση 4:
npm install --global azure-functions-core-tools@4
Δημιουργία εφαρμογής με συναρτήσεις
Δημιουργήστε μια εφαρμογή και αρχικοποιήστε τις λειτουργίες της:
npm create @microsoft/rayfin@latest
cd my-app
npx rayfin functions init
Η rayfin functions init εντολή προσθέτει το έργο συναρτήσεων, τη διαμόρφωση TypeScript και ένα αρχείο συνάρτησης εκκίνησης στην υπάρχουσα εφαρμογή.
Δημιουργήστε την εφαρμογή με το GitHub Copilot
Το ικρίωμα περιλαμβάνει τις οδηγίες του GitHub Copilot και τις δεξιότητες που απαιτούνται για την εργασία με το έργο. Ανοίξτε το έργο στο Visual Studio Code και περιγράψτε την εφαρμογή που θέλετε να δημιουργήσετε στο GitHub Copilot Chat.
Για παράδειγμα, χρησιμοποιήστε την ακόλουθη προτροπή για να δημιουργήσετε έναν βοηθό ελέγχου αιτήματος έλξης AI:
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 μπορεί να δημιουργήσει και να ενημερώσει τα απαιτούμενα αρχεία και στοιχεία. Μπορείτε επίσης να ζητήσετε από τον πράκτορα να εκτελέσει την εφαρμογή, να εντοπίσει σφάλματα στις λειτουργίες τοπικά και να αναπτύξει την εφαρμογή.
Κατανόηση της διάταξης του έργου
Η εντολή αρχικοποίησης συναρτήσεων ενημερώνει rayfin/rayfin.yml και δημιουργεί rayfin/functions. Μια τυπική εφαρμογή με λειτουργίες έχει την ακόλουθη δομή:
my-app/
├── rayfin/
│ ├── rayfin.yml
│ ├── data/
│ │ ├── TripPlan.ts
│ │ └── schema.ts
│ └── functions/
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── function_app.ts
│ └── types.ts
└── src/
└── services/
Τα αρχεία εξυπηρετούν τους ακόλουθους σκοπούς:
| Διαδρομή | Σκοπός |
|---|---|
rayfin/rayfin.yml |
Διαμορφώνει τον έλεγχο ταυτότητας, τα δεδομένα, τις λειτουργίες και τις στατικές υπηρεσίες φιλοξενίας. |
rayfin/data/ |
Περιέχει τα μοντέλα δεδομένων και τις εξαγωγές σχήματος της εφαρμογής. |
rayfin/functions/package.json |
Ορίζει εξαρτήσεις και δημιουργεί σενάρια για το έργο συναρτήσεων. |
rayfin/functions/tsconfig.json |
Ρυθμίζει τις παραμέτρους της δομής TypeScript για συναρτήσεις. |
rayfin/functions/src/function_app.ts |
Περιέχει τις υλοποιήσεις των συναρτήσεών σας. |
rayfin/functions/src/types.ts |
Περιέχει τους τύπους που δημιουργούνται AppFunctionsSchema . Μην επεξεργαστείτε αυτό το αρχείο με μη αυτόματο τρόπο. |
src/ |
Περιέχει το frontend του React και τυχόν κοινόχρηστους τύπους τομέα ή περιτυλίγματα. |
Όταν ενεργοποιείτε τις λειτουργίες, rayfin/rayfin.yml το περιλαμβάνει την υπηρεσία συναρτήσεων:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Έλεγχος ταυτότητας εφαρμογής
Οι ενεργοποιημένες λειτουργίες απαιτούν ρητό έλεγχο ταυτότητας εφαρμογής σε rayfin/rayfin.yml:
services:
functions:
enabled: true
auth:
type: application
buildCommand: npm run build
Σετ auth.type: applicationσκαλωσιών νέων λειτουργιών.
Οι απενεργοποιημένες λειτουργίες μπορούν να παραλείψουν auth. Ωστόσο, εάν παρέχετε auth, πρέπει να περιλαμβάνει:
auth:
type: application
Μια πλήρης npx rayfin up και η κανονική npx rayfin dev ροή επικυρώνουν αυτήν τη ρύθμιση πριν από την εφαρμογή ρυθμίσεων έργου είτε στο παρασκήνιο Fabric είτε στο Docker.
Εκτελέστε μια πλήρη npx rayfin up εκτέλεση για να εφαρμόσετε τη λειτουργία ελέγχου ταυτότητας YAML σε μια υπάρχουσα απομακρυσμένη εφαρμογή.
Διαδρομές ελέγχου ταυτότητας που χρησιμοποιούνται από αναπτυγμένες λειτουργίες
Οι αναπτυγμένες λειτουργίες χρησιμοποιούν δύο ξεχωριστές διαδρομές ελέγχου ταυτότητας:
| Διαδρομή πρόσβασης | Διαπιστευτήρια | Ταυτότητα και δικαιώματα |
|---|---|---|
Εξωτερικές συνδέσεις μέσω ctx.Tokens.* |
Διακριτικό πόρου που παρέχεται από την πλατφόρμα | Ταυτότητα εφαρμογής και τα δικαιώματά της στον εξωτερικό πόρο |
Rayfin DB μέσω ctx.getDataClient() |
Το διακριτικό Rayfin του Invocation | Ταυτότητα και δικαιώματα καλούντος στο Rayfin DB |
Για τις τρέχουσες εφαρμογές Fabric, η ταυτότητα της εφαρμογής είναι ο κάτοχος του στοιχείου BaaS.
Επομένως, οι εξωτερικές συνδέσεις χρησιμοποιούν τα δικαιώματα του κατόχου του στοιχείου και όχι τα δικαιώματα του χρήστη της εφαρμογής που καλεί τη συνάρτηση. Εκχωρήστε στην ταυτότητα της εφαρμογής τα δικαιώματα που απαιτούνται από κάθε εξωτερικό πόρο και API που καλείται από τον κώδικα συναρτήσεων.
Η δήλωση κοινού ή η ανάπτυξη συναρτήσεων δεν εκχωρεί δικαιώματα ταυτότητας εφαρμογής σε εξωτερικό πόρο.
Η είσοδος στην εφαρμογή και η εξουσιοδότηση για την κλήση μιας συνάρτησης είναι ξεχωριστές από την πρόσβαση της ταυτότητας της εφαρμογής σε εξωτερικούς πόρους.
Η πρόσβαση Rayfin DB χρησιμοποιεί πάντα το διακριτικό Rayfin και διατηρεί την ταυτότητα και τα δικαιώματα βάσης δεδομένων του καλούντος. Η ρύθμιση services.functions.auth.type: application δεν αλλάζει την πρόσβαση Rayfin DB στην ταυτότητα της εφαρμογής.
Για δηλώσεις ακροατηρίου, διακριτικά πόρων, δικαιώματα και συμπεριφορά τοπικής ανάπτυξης, ανατρέξτε στο θέμα Σύνδεση συναρτήσεων σε εξωτερικούς πόρους.
Εκτέλεση της εφαρμογής τοπικά
Από τον ριζικό φάκελο της εφαρμογής, συνδεθείτε:
cd my-app
npx rayfin login
Ξεκινήστε το frontend και τον κεντρικό υπολογιστή τοπικών λειτουργιών:
npm run dev
Σε ένα έργο με δυνατότητα συναρτήσεων, npm run dev οι αντιστοιχίσεις σε rayfin dev. Αυτή η εντολή εφαρμόζει το σχήμα, ξεκινά τον κεντρικό υπολογιστή τοπικών συναρτήσεων και ξεκινά τον διακομιστή ανάπτυξης Vite. Ανοίξτε την τοπική διεύθυνση URL που εκτυπώνεται στο τερματικό και διατηρήστε το τερματικό σε λειτουργία ενώ αναπτύσσετε και διορθώνετε την εφαρμογή.
Για να ξεκινήσετε μόνο τις συναρτήσεις host, για παράδειγμα όταν εκτελείτε το frontend ξεχωριστά, χρησιμοποιήστε την ακόλουθη εντολή:
cd my-app
npx rayfin dev
Ανάπτυξη στο Fabric
Αναπτύξτε τα δεδομένα, τη στατική τοποθεσία και τις λειτουργίες της εφαρμογής:
npx rayfin up --workspace <workspace-name>
Αντικαταστήστε <WORKSPACE> με το όνομα του χώρου εργασίας Fabric προορισμού.
Προσθήκη συναρτήσεων σε μια υπάρχουσα εφαρμογή
Από τη ρίζα μιας υπάρχουσας εφαρμογής Fabric, ενεργοποιήστε τη δυνατότητα και προετοιμάστε το έργο συναρτήσεων μία φορά:
npx rayfin functions init
Μετά την προετοιμασία, προσθέστε υλοποιήσεις συναρτήσεων στο rayfin/functions/src/function_app.ts.
Περιορισμοί
- Ιδιοκτησία λειτουργίας: Μόνο ο κάτοχος του στοιχείου συναρτήσεων δεδομένων χρήστη μπορεί να τροποποιήσει και να δημοσιεύσει τον κωδικό Λειτουργίες.
- Χρόνος επαναπρογραμματισμού δημοσίευσης: Περιμένετε τουλάχιστον δύο λεπτά μετά τη δημοσίευση, προτού δημοσιεύσετε ξανά. Αυτό το cooldown ισχύει κατά τη δημοσίευση από την πύλη Functions στο πρόγραμμα περιήγησης, την επέκταση Visual Studio Code των συναρτήσεων δεδομένων χρήστη, την ενέργεια εισαγωγής Git ή τις διοχετεύσεις ανάπτυξης.
- Μέγεθος πακέτου ανάπτυξης: Το αρχείο ZIP Functions δεν μπορεί να υπερβαίνει τα 30 MB.
- Μέγεθος ωφέλιμου φορτίου αιτήματος: Η υπηρεσία λειτουργιών δεδομένων χρήστη τεκμηριώνει το μέγιστο ποσό των 4 MB για όλες τις παραμέτρους αιτήματος συνδυαστικά. Αυτό το όριο αναμένεται να ισχύει για τις λειτουργίες Rayfin, αλλά δεν έχει επαληθευτεί.
- Χρονικό όριο εκτέλεσης: Μια συνάρτηση μπορεί να εκτελεστεί έως και 240 δευτερόλεπτα.
- Διατήρηση αρχείου καταγραφής κλήσεων: Τα αρχεία καταγραφής κλήσεων ιστορικού διατηρούνται για 30 ημέρες από προεπιλογή.
- Ταυτότητα εφαρμογής: Η ταυτότητα της εφαρμογής είναι επί του παρόντος ο κάτοχος του στοιχείου BaaS.
Για τις τοπικές απαιτήσεις διαθεσιμότητας και περισσότερες λεπτομέρειες σχετικά με τους περιορισμούς των συναρτήσεων δεδομένων χρήστη, ανατρέξτε στο θέμα Λεπτομέρειες υπηρεσίας και περιορισμοί των συναρτήσεων δεδομένων χρήστη Fabric.