Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Μπορείτε να καλέσετε συναρτήσεις δεδομένων χρήστη Fabric από εξωτερικές εφαρμογές στέλνοντας αιτήσεις HTTP στο δημόσιο τελικό σημείο της συνάρτησης. Αυτό σας δίνει τη δυνατότητα να ενσωματώσετε την επιχειρηματική λογική του Fabric σε εφαρμογές web, δέσμες ενεργειών αυτοματισμού, μικροϋπηρεσίες ή οποιοδήποτε σύστημα εκτός του περιβάλλοντος Fabric.
Σε αυτό το πρόγραμμα εκμάθησης:
- Καταχώρηση εφαρμογής Microsoft Entra για έλεγχο ταυτότητας
- Λάβετε τη δημόσια διεύθυνση URL της λειτουργίας και ενεργοποιήστε τη δημόσια πρόσβαση
- Δημιουργήστε μια εφαρμογή κονσόλας Python που καλεί τη συνάρτηση
- Κατανόηση του σχήματος απόκρισης και των κωδικών κατάστασης HTTP
Προαπαιτούμενα στοιχεία
- Ο κώδικας του Visual Studio είναι εγκατεστημένος στον τοπικό υπολογιστή σας.
- Python 3.11 εγκατεστημένο στον τοπικό σας υπολογιστή.
- Ένας λογαριασμός Microsoft Fabric. Μπορείτε να εγγραφείτε για μια δωρεάν δοκιμή.
- Ένας χώρος εργασίας Fabric.
- Ένα δημοσιευμένο στοιχείο συναρτήσεων δεδομένων χρήστη. Για οδηγίες, ανατρέξτε στην ενότητα Δημιουργία συναρτήσεων δεδομένων χρήστη στον κώδικα του Visual Studio ή Δημιουργία συναρτήσεων δεδομένων χρήστη στην πύλη.
Δημιουργία εφαρμογής Microsoft Entra
Για να καλέσετε συναρτήσεις δεδομένων χρήστη από μια εξωτερική εφαρμογή, πρέπει να καταχωρήσετε μια εφαρμογή στο Microsoft Entra ID. Αυτή η εγγραφή εφαρμογής παρέχει τα διαπιστευτήρια που χρησιμοποιεί η εφαρμογή Python για τον έλεγχο ταυτότητας.
Μεταβείτε στο κέντρο διαχείρισης του Microsoft Entra και καταχωρήστε μια εφαρμογή χρησιμοποιώντας τα βήματα που περιγράφονται στη Γρήγορη εκκίνηση: Καταχώρηση μιας εφαρμογής στην πλατφόρμα ταυτοτήτων της Microsoft.
Οι τιμές Αναγνωριστικό εφαρμογής (υπολογιστής-πελάτης) της εφαρμογής Microsoft και Αναγνωριστικό καταλόγου (μισθωτής) εμφανίζονται στο πλαίσιο Σύνοψη. Καταγράψτε αυτές τις τιμές, επειδή απαιτούνται αργότερα.
Στη λίστα Διαχείριση, επιλέξτε δικαιώματα APIκαι, στη συνέχεια, Προσθήκη δικαιώματος.
Προσθέστε την υπηρεσία PowerBI, επιλέξτε Δικαιώματα με ανάθεση και επιλέξτε UserDataFunction.Execute.All ή στοιχείο. Execute.All δικαιώματα. Επιβεβαιώστε ότι δεν απαιτείται συγκατάθεση διαχειριστή.
Επιστρέψτε στη ρύθμιση Διαχείριση και επιλέξτε Έλεγχος ταυτότητας>Προσθήκη πλατφόρμας>Εφαρμογή μίας σελίδας.
Για σκοπούς τοπικής ανάπτυξης, προσθέστε
http://localhost:3000στην περιοχή URIs ανακατεύθυνσης και επιβεβαιώστε ότι η εφαρμογή έχει ενεργοποιηθεί για τη ροή του κωδικού εξουσιοδότησης με το κλειδί επαλήθευσης για Exchange κώδικα (PKCE). Επιλέξτε το κουμπί Ρύθμιση παραμέτρων για να αποθηκεύσετε τις αλλαγές σας. Εάν η εφαρμογή αντιμετωπίσει σφάλμα που σχετίζεται με αιτήματα μεταξύ προελεύσεων, προσθέστε την πλατφόρμα εφαρμογών για κινητές συσκευές και επιτραπέζιους υπολογιστές στο προηγούμενο βήμα με το ίδιο URI ανακατεύθυνσης.Επιστρέψτε στοελέγχου ταυτότητας
, κάντε κύλιση προς τα κάτω στην περιοχή Ρυθμίσεις για προχωρημένους και, στην περιοχήΝα επιτρέπονται οι δημόσιες ροές προγράμματος-πελάτη , επιλέξτεΝαι γιαΕνεργοποιήστε τις παρακάτω ροές για κινητές συσκευές και υπολογιστές .
Δημιουργία εφαρμογής κονσόλας
Τώρα που έχετε μια εγγραφή εφαρμογής, δημιουργήστε μια εφαρμογή κονσόλας Python που ελέγχει την ταυτότητα και καλεί τη λειτουργία δεδομένων χρήστη.
Λάβετε τη διεύθυνση URL της συνάρτησης για κλήση
Κάθε συνάρτηση δεδομένων χρήστη έχει μια μοναδική δημόσια διεύθυνση URL που χρησιμεύει ως τελικό σημείο REST API. Για να μπορέσετε να καλέσετε τη συνάρτηση από μια εξωτερική εφαρμογή, πρέπει να ενεργοποιήσετε τη δημόσια πρόσβαση και να λάβετε τη διεύθυνση URL.
Για να λάβετε τη διεύθυνση URL της συνάρτησης:
Στην πύλη Fabric, ανοίξτε το στοιχείο συναρτήσεων δεδομένων χρήστη.
Βεβαιωθείτε ότι βρίσκεστε σε λειτουργία μόνο εκτέλεσης και όχι σε λειτουργία ανάπτυξης .
Στην Εξερεύνηση συναρτήσεων, τοποθετήστε το δείκτη του ποντικιού πάνω από το όνομα της συνάρτησης και επιλέξτε τα αποσιωπητικά (...).
Επιλέξτε Ιδιότητες.
Στο τμήμα παραθύρου Ιδιότητες, βεβαιωθείτε ότι η δημόσια πρόσβαση είναι ενεργοποιημένη. Εάν όχι, επιλέξτε την εναλλαγή για να την ενεργοποιήσετε.
Αντιγράψτε τη δημόσια διεύθυνση URL για χρήση στην εφαρμογή Python.
Φιλοδώρημα
Εάν η δημόσια πρόσβαση είναι ήδη ενεργοποιημένη, μπορείτε να παραλείψετε το παράθυρο Ιδιότητες. Στην Εξερεύνηση συναρτήσεων, επιλέξτε τα αποσιωπητικά (...) δίπλα στο όνομα της συνάρτησης και επιλέξτε Αντιγραφή διεύθυνσης URL συνάρτησης. Αυτό αντιγράφει την ίδια διεύθυνση URL με τη δημόσια διεύθυνση URL στο τμήμα παραθύρου Ιδιότητες.
Στον κώδικα της εφαρμογής σας, αντικαταστήστε το
FUNCTION_URLσύμβολο κράτησης θέσης με τη διεύθυνση URL που αντιγράψατε.
Ρυθμίστε το έργο σας Python
Δημιουργήστε ένα έργο Python με εικονικό περιβάλλον και εγκαταστήστε τις απαιτούμενες εξαρτήσεις.
Δημιουργήστε έναν νέο φάκελο για την εφαρμογή Python, για παράδειγμα
my-data-app.Ανοίξτε το φάκελο στον κώδικα του Visual Studio.
Ανοίξτε την Παλέτα εντολών (Ctrl+Shift+P) και αναζητήστε Python: Create Environment.
Επιλέξτε venv ως τύπο περιβάλλοντος.
Επιλέξτε Python 3.11 ως έκδοση διερμηνέα.
Ανοίξτε ένα νέο τερματικό στον κώδικα του Visual Studio (Ctrl+').
Ενεργοποιήστε το εικονικό περιβάλλον Python:
Παράθυρα:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activateΕγκαταστήστε τις απαιτούμενες βιβλιοθήκες Python:
pip install azure-identity requests
Προσθέστε τον κωδικό της εφαρμογής
Προσθέστε τον κώδικα Python που πραγματοποιεί έλεγχο ταυτότητας με το Microsoft Entra ID και καλεί τη συνάρτηση δεδομένων χρήστη.
Δημιουργήστε ένα αρχείο με όνομα
app.pyστο φάκελο του έργου σας.Προσθέστε τον παρακάτω κώδικα. Αντικαταστήστε
<REPLACE WITH USER DATA FUNCTION URL>με τη δημόσια διεύθυνση URL που αντιγράψατε νωρίτερα.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token using interactive browser authentication # This opens a browser window for the user to sign in with their Microsoft account credential = InteractiveBrowserCredential() scope = "https://analysis.windows.net/powerbi/api/user_impersonation" token = credential.get_token(scope) if not token.token: print("Error: Could not get access token") exit(1) # Prepare headers with the access token headers = { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" } FUNCTION_URL = "<REPLACE WITH USER DATA FUNCTION URL>" # Prepare the request data (modify to match your function's expected input) data = {"name": "John"} try: # Call the user data function public URL response = requests.post(FUNCTION_URL, json=data, headers=headers) response.raise_for_status() print(json.dumps(response.json(), indent=2)) except Exception as e: print(f"Error: {e}")Σημείωση
Αυτό το παράδειγμα χρησιμοποιείται
InteractiveBrowserCredentialγια απλότητα, η οποία ανοίγει ένα πρόγραμμα περιήγησης για αλληλεπιδραστική είσοδο. Για εφαρμογές παραγωγής, μεταβιβάστε το καιtenant_idαπό τηνclient_idκαταχωρημένη εφαρμογή Microsoft Entra στοInteractiveBrowserCredentialή χρησιμοποιήστε διαφορετικό τύπο διαπιστευτηρίων, όπωςClientSecretCredentialγια έλεγχο ταυτότητας από υπηρεσία σε υπηρεσία. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Βιβλιοθήκη προγράμματος-πελάτη Azure Identity για Python.
Εκτελέστε την εφαρμογή
Για να εκτελέσετε την εφαρμογή, χρησιμοποιήστε την ακόλουθη εντολή στο τερματικό:
python app.py
Ανοίγει ένα παράθυρο του προγράμματος περιήγησης για να εισέλθετε με το λογαριασμό Microsoft. Μετά τον έλεγχο ταυτότητας, η εφαρμογή καλεί τη λειτουργία δεδομένων χρήστη και εκτυπώνει την απάντηση.
Για να εντοπίσετε σφάλματα στην εφαρμογή στον κώδικα του Visual Studio, ορίστε σημεία διακοπής κάνοντας κλικ στην υδρορροή δίπλα στους αριθμούς γραμμών και, στη συνέχεια, πατήστε F5 για να ξεκινήσει ο εντοπισμός σφαλμάτων. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Εντοπισμός σφαλμάτων Python στον κώδικα του Visual Studio.
Σχήμα εξόδου
Όταν καλείτε μια συνάρτηση δεδομένων χρήστη από μια εξωτερική εφαρμογή, το σώμα απόκρισης ακολουθεί αυτό το σχήμα JSON:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded",
"output": "Hello, John!",
"errors": []
}
Η απόκριση περιλαμβάνει αυτές τις ιδιότητες:
- functionName: Το όνομα της συνάρτησης που εκτελέστηκε.
- invocationId: Ένα μοναδικό αναγνωριστικό για την εκτέλεση αυτής της συγκεκριμένης συνάρτησης. Χρήσιμο για την αντιμετώπιση προβλημάτων και τη συσχέτιση αρχείων καταγραφής.
-
status: Το αποτέλεσμα της εκτέλεσης της συνάρτησης. Πιθανές τιμές είναι
Succeeded,BadRequest,Failed,Timeout, καιResponseTooLarge. -
output: Η επιστρεφόμενη τιμή της συνάρτησής σας. Ο τύπος και η δομή δεδομένων εξαρτώνται από το τι επιστρέφει η συνάρτησή σας. Για παράδειγμα, εάν η συνάρτησή σας επιστρέφει μια συμβολοσειρά,
outputείναι μια συμβολοσειρά. Εάν η συνάρτησή σας επιστρέφει ένα λεξικό,outputτο είναι ένα αντικείμενο JSON. -
errors: Μια λίστα σφαλμάτων που καταγράφηκαν κατά την εκτέλεση. Κάθε σφάλμα περιλαμβάνει ένα ,
messageκαι έναnameπροαιρετικόpropertiesαντικείμενο που περιέχει ζεύγη κλειδιού-τιμής με περισσότερες λεπτομέρειες. Αδειάστε όταν η λειτουργία είναι επιτυχής.
Κωδικοί απόκρισης
Η συνάρτηση επιστρέφει τους ακόλουθους κωδικούς HTTP ως αποτέλεσμα της εκτέλεσης.
| κωδικού απόκρισης | Μήνυμα | Περιγραφή |
|---|---|---|
| 200 | Επιτυχία | Η αίτηση ολοκληρώθηκε με επιτυχία. |
| 400 | Κακή αίτηση | Το αίτημα δεν ήταν έγκυρο. Αυτή η απόκριση μπορεί να οφείλεται σε ελλιπείς ή λανθασμένες τιμές παραμέτρων εισόδου, τύπους δεδομένων ή ονόματα. Αυτή η απόκριση θα μπορούσε επίσης να προκληθεί από την απενεργοποίηση της δημόσιας πρόσβασης για μια λειτουργία. |
| 403 | Δεν επιτρέπεται | Η απόκριση ήταν πολύ μεγάλη και η κλήση απέτυχε. |
| 408 | Αίτημα Timeout | Το αίτημα απέτυχε επειδή η εκτέλεση διήρκεσε περισσότερο από τον μέγιστο επιτρεπόμενο χρόνο. |
| 409 | Διένεξη | Δεν ήταν δυνατή η ολοκλήρωση του αιτήματος λόγω κατάστασης διένεξης. Αυτό το σφάλμα μπορεί να οφείλεται σε μια εξαίρεση που δεν έχει αντιμετωπιστεί ή σε ένα σφάλμα με τα διαπιστευτήρια χρήστη. |
| 422 | Κακή αίτηση | Το αίτημα απέτυχε λόγω ενός UserThrownError που προέκυψε στη συνάρτηση. |
| 500 | Σφάλμα εσωτερικού διακομιστή | Το αίτημα απέτυχε λόγω εσωτερικού σφάλματος στην υπηρεσία. |