Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per richiamare gli elementi della funzione dati utente di Fabric da un'applicazione console in Python, è possibile inviare richieste HTTP all'endpoint della funzione che deve essere eseguito. Questa guida introduttiva illustra come configurare un'app Python con Visual Studio Code.
Prerequisiti
- Installare Visual Studio Code.
- Scarica Python 3.1 nel computer locale.
- Crea gratuitamente un account di Microsoft Fabric, se non ne hai già uno.
- Creare un'area di lavoro.
- Crea un elemento di funzioni dati utente e pubblicalo. Vedere questi articoli su come crearne uno in Visual Studio Code o su come crearne uno nel portale. Pubblica le modifiche in modo che l'elemento delle funzioni dati utente sia pronto per essere richiamato.
Creare un'app Microsoft Entra
I passaggi seguenti illustrano come configurare il supporto per un'applicazione ReactJS in Microsoft Entra.
Registrare un'applicazione usando i passaggi descritti in Avvio rapido: Registrare un'applicazione con Microsoft Identity Platform.
I valori ID applicazione (client) e ID Directory (tenant) dell'app Microsoft Entra vengono visualizzati nella casella Riepilogo. Registrare questi valori perché sono necessari in un secondo momento.
Nell'elenco Gestisci selezionare autorizzazioni API , quindi Aggiungi autorizzazione.
Aggiungere il servizio PowerBI, selezionare Autorizzazioni delegate e selezionare UserDataFunction.Execute.All o elemento. Autorizzazioni Execute.All . Verificare che il consenso dell'amministratore non sia obbligatorio.
Tornare all'impostazione Gestisci e selezionare Autenticazione> Aggiungiun'applicazione a pagina singola>.
Ai fini dello sviluppo locale, aggiungere
http://localhost:3000in URI di reindirizzamento e verificare che l'applicazione sia abilitata per il flusso del codice di autorizzazione con la chiave di prova per Lo scambio di codice (PKCE). Selezionare il pulsante Configura per salvare le modifiche. Se l'applicazione rileva un errore correlato alle richieste tra le origini, aggiungere la piattaforma applicazioni per dispositivi mobili e desktop nel passaggio precedente con lo stesso URI di reindirizzamento.Tornare a Authentication, scorrere verso il basso fino a Advanced Settings e, in Consenti flussi client pubblici, selezionare Sì per Abilitare i flussi per dispositivi mobili e desktop seguenti.
Creare un'applicazione console
La funzione deve essere accessibile pubblicamente. In Esplora funzioni passare il puntatore del mouse sul nome della funzione e selezionare l'icona con i puntini di sospensione (...) visualizzata, quindi selezionare Proprietà. Nel riquadro Proprietà visualizzato, abilita Accesso pubblico. È anche necessario prendere nota dell'URL pubblico da usare nell'applicazione Python.
Crea una nuova cartella per l'app Python, ad esempio my-data-app. Aprire la cartella in Visual Studio Code.
Configurare l'ambiente virtuale Python in Visual Studio Code. Per creare ambienti locali in Visual Studio Code, aprire il riquadro comandi con CTRL+MAIUSC+P, quindi cercare e selezionare il comando Python: Crea ambiente.
- Il comando presenta un elenco di tipi di ambiente e seleziona venv.
- Seleziona la versione dell'interprete Python 3.11.
Eseguire il comando seguente per attivare l'ambiente virtuale nel terminale di Visual Studio Code.
venv\Scripts\activate.batEsegui quindi il comando per installare le librerie Python necessarie per questo esempio.
pip install azure-identity, requestsCrea un file
app.pye usa il codice per richiamare l'elemento delle funzioni dati utente.from azure.identity import InteractiveBrowserCredential import requests import json # Acquire a token # DO NOT USE IN PRODUCTION. # Below code to acquire token is to test the User data function endpoint and is for the purpose of development only. # For production, always register an application in a Microsoft Entra ID tenant and use the appropriate client_id and scopes. app = InteractiveBrowserCredential() scp = 'https://analysis.windows.net/powerbi/api/user_impersonation' result = app.get_token(scp) if not result.token: print('Error:', "Could not get access token") # Prepare headers headers = { 'Authorization': f'Bearer {result.token}', 'Content-Type': 'application/json' } FUNCTION_URL = '<REPLACE WITH USER DATA FUNCTION URL>' # Prepare the request data data = '{"name": "John"}' # JSON payload to send to the Azure Function headers = { # "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } 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())) except Exception as e: print({"error": str(e)}, 500) if __name__ == "__main__": app.run(debug=True)Nota
L'esempio è solo a scopo di sviluppo. Aggiorna l'applicazione in modo che utilizzi l'autenticazione Microsoft Entra ID, prima di usare l'applicazione per un caso d'uso di produzione.
Chiamata di una funzione da un'applicazione esterna
Le funzioni possono essere richiamate eseguendo una chiamata REST all'URL dell'endpoint. Seleziona la funzione che si vuole richiamare in Esplora funzioni e seleziona Copia URL funzione. È anche possibile attivare o disattivare la possibilità di usare questo URL esternamente dal menu Proprietà.
Usa quindi questo URL nell'applicazione per richiamare la funzione. Vedi Richiamare le funzioni dei dati utente da un'applicazione
Schema di output.
Quando si richiama una funzione dati utente da un'applicazione esterna, lo schema di output avrà il formato seguente:
{
"functionName": "hello_fabric",
"invocationId": "1234567890",
"status": "Succeeded | BadRequest | Failed | Timeout | ResponseTooLarge",
"output": /*shows the result of the function dependeing on the output type*/,
"errors": [
{
"name": "Error name",
"message": "Error message",
"properties": {
/*Key value pairs custom to error*/
}
},
]
}
Vengono restituite le seguenti proprietà:
- functionName: nome della funzione eseguita.
- invocationId: ID chiamata per l'esecuzione di una funzione.
-
status: il risultato dell'esecuzione della funzione e i valori supportati sono
Succeeded,BadRequest,FailedTimeouteResponseTooLarge. - output: valore di output restituito dalla funzione.
- errori: se sono stati acquisiti errori, verrà restituito un elenco di ogni errore con il nome, il messaggio di errore e le proprietà degli errori.
Codici di risposta
La funzione restituirà i codici HTTP seguenti in seguito all'esecuzione.
| Codice della risposta | Message | Descrizione |
|---|---|---|
| 200 | Success | La richiesta è riuscita. |
| 400 | Richiesta non valida | Richiesta non valida. Questa risposta potrebbe essere dovuta a valori di parametri di input mancanti o non corretti, tipi di dati o nomi. Questa risposta potrebbe anche essere causata dalla disattivazione dell'accesso pubblico per una funzione. |
| 403 | Vietato | La risposta era troppo grande e la chiamata non è riuscita. |
| 408 | Timeout richiesta | La richiesta non è riuscita a causa dell'esecuzione che richiede più di 200 secondi. |
| 409 | Conflitto | Impossibile completare la richiesta a causa di uno stato in conflitto. Ciò potrebbe essere causato da un'eccezione non gestita o da un errore con le credenziali utente. |
| 422 | Richiesta non valida | La richiesta non è riuscita a causa di un userThrownError generato nella funzione. |
| 500 | Errore interno del server | La richiesta non è riuscita a causa di un errore interno nel servizio. |
Debugging e collaudo
Eseguire il debug dell'applicazione in Visual Studio Code usando il debugger Python. Aggiungei punti di interruzione se necessario per eseguire il debug in caso di problemi. Ulteriori informazioni