Muistiinpano
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoja.
Tälle sivulle pääsy edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoja.
Jos haluat kutsua Fabric User Data -funktiokohteita Pythonin konsolisovelluksesta, voit lähettää HTTP-pyyntöjä suoritettavaan funktion päätepisteeseen. Tässä pikaoppaassa opit määrittämään Python-sovelluksen Visual Studio Coden avulla.
Ennakkovaatimukset
- Asenna Visual Studio Code.
- Lataa Python 3.1 paikallisessa tietokoneessa.
- Luo Microsoft Fabric -tili maksutta, jos sinulla ei ole sellaista.
- Luo työtila.
- Luo käyttäjätietofunktiokohde ja julkaise se. Tutustu näihin artikkeleihin , joissa kerrotaan, miten voit luoda sellaisen Visual Studio Codessa tai portaalissa. Julkaise muutokset, jotta käyttäjän tietofunktiokohde on valmis käynnistymään.
Luo Microsoft Entra -sovellus
Seuraavissa vaiheissa kerrotaan, kuinka ReactJS-sovelluksen tuki määritetään Microsoft Entrassa.
Rekisteröi sovellus noudattamalla ohjeita kohdassa Pikaopas: Sovelluksen rekisteröinti Microsoftin käyttäjätietoympäristössä.
Microsoft Entra -sovelluksen sovelluksen (asiakasohjelman) tunnuksen ja hakemiston (vuokraajan) tunnuksen arvot näkyvät Yhteenveto-ruudussa. Tallenna nämä arvot, koska niitä tarvitaan myöhemmin.
Valitse Hallinta -luettelosta -ohjelmointirajapinnan käyttöoikeudetja valitse sitten Lisää käyttöoikeus -.
Lisää PowerBI-palvelu, valitse Delegoidut käyttöoikeudet ja valitse UserDataFunction.Execute.All tai kohde. Suorita.Kaikki käyttöoikeudet. Varmista, että järjestelmänvalvojan suostumusta ei tarvita.
Palaa Hallinta-asetukseen ja valitse Todennus>Lisää alustan>yksisivuinen sovellus.
Lisää paikallisiin kehitystarkoituksiin kohtaan
http://localhost:3000Uudelleenohjauksen URI-osoitteet ja varmista, että sovellus on otettu käyttöön valtuutuskoodin työnkulussa, jossa on Koodin vaihto -ohjelman (PKCE) todisteavain. Tallenna muutoksesi valitsemalla Määritä-painike. Jos sovellus kohtaa virheen, joka liittyy alkuperän välisiin pyyntöihin, lisää mobiili- ja työpöytäsovellusympäristö edellisessä vaiheessa samalla uudelleenohjaus-URI:lla.Siirry
Authentication -alaspäin kohtaanLisäasetukset - ja valitseSalli julkisen asiakkaan työnkulut -kohdassaKyllä Ota käyttöön seuraavat mobiili- ja työpöytätyönkulut .
Konsolisovelluksen luominen
Funktion on oltava julkisesti käytettävissä. Siirrä funktioiden hallinnassa hiiren osoitin funktion nimen päälle, valitse näkyviin tulevasta ellipsikuvakkeesta (...) ja valitse sitten ominaisuudet-. Ota avautuvassa Ominaisuudet-ruudussa käyttöön Julkinen käyttöoikeus -. Kirjaa muistiin myös julkinen URL-, jota käytetään Python-sovelluksessasi.
Luo uusi kansio Python-sovelluksellesi, esimerkiksi oma tietosovellus -. Avaa kansio Visual Studio Codessa.
Määritä Python-virtuaaliympäristö Visual Studio Codessa. Jos haluat luoda paikallisia ympäristöjä Visual Studio Codessa, avaa komentopalettinäppäinyhdistelmällä Ctrl+Vaihto+P ja etsi ja valitse sitten Python: Luo ympäristö -komento.
- Komento esittää luettelon ympäristötyypeistä ja valitsee venv.
- Valitse Python-tulkkiversio, Python 3.11.
Suorita seuraava komento aktivoidaksesi virtuaaliympäristön Visual Studio Code -päätteessä.
venv\Scripts\activate.batAsenna seuraavaksi tässä esimerkissä tarvittavat Python-kirjastot suorittamalla komento.
pip install azure-identity, requestsLuo
app.pytiedosto ja käynnistä käyttäjätietofunktiokohde koodilla.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)Muistiinpano
Esimerkki on tarkoitettu vain kehitystarkoituksiin vain. Päivitä sovellus käyttämään Microsoft Entra ID -todennusta ennen sovelluksen käyttämistä tuotantokäyttötapauksessa.
Funktion käynnistäminen ulkoisesta sovelluksesta
Funktiot voidaan käynnistää antamalla REST-kutsu päätepisteen URL-osoitteeseen. Valitse funktio, jonka haluat käynnistää Functions Explorer -, ja valitse Kopioi funktion URL-osoite. Voit myös ottaa tämän URL-osoitteen ulkoisen käytön käyttöön tai poistaa sen käytöstä ominaisuudet - valikosta.
Käytä sitten tätä URL-osoitetta sovelluksessasi funktion kutsumiseksi. Katso Käyttäjätietofunktioiden käynnistäminen sovelluksen
Tulosrakenne
Kun käynnistät käyttäjätietofunktion ulkoisesta sovelluksesta, tulosterakenne on seuraavassa muodossa:
{
"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*/
}
},
]
}
Seuraavat ominaisuudet palautetaan:
- functionName: Suoritettavan funktion nimi.
- invocationId: Funktion suorituksen kutsutunnus.
-
status: Funktion suorituksen tulos ja tuetut arvot ovat
Succeeded,BadRequest,Failed,TimeoutjaResponseTooLarge. - tuloste: Funktion palauttama tulostearvo.
- virheet: Jos virheitä siepattiin, tämä palauttaa luettelon virheistä sekä niiden nimet, virhesanoman ja virheominaisuudet.
Vastauskoodit
Funktio palauttaa seuraavat HTTP-koodit suorituksen tuloksena.
| Vastauskoodin | Viesti | Kuvaus |
|---|---|---|
| 200 | Onnistui | Pyyntö onnistui. |
| 400 | Virheellinen pyyntö | Pyyntö ei ollut pätevä. Tämä vastaus voi johtua puuttuvista tai virheellisistä syöttöparametrien arvoista, tietotyypeistä tai nimistä. Tämä reaktio voi johtua myös siitä, että julkinen pääsy on poistettu käytöstä jonkin toiminnon ajaksi. |
| 403 | Kielletty | Vastaus oli liian suuri ja kutsu epäonnistui. |
| 408 | Pyydä aikakatkaisua | Pyyntö epäonnistui, koska suoritus kesti yli 200 sekuntia. |
| 409 | Ristiriita | Pyyntöä ei voitu täyttää ristiriitaisen tilan vuoksi. Tämä voi johtua käsittelemättömästä poikkeuksesta tai virheestä käyttäjän tunnistetiedoissa. |
| 422 | Virheellinen pyyntö | Pyyntö epäonnistui funktiossa esitettyjen UserThrownError-virheiden vuoksi. |
| 500 | Sisäisen palvelimen virhe | Pyyntö epäonnistui palvelun sisäisen virheen vuoksi. |
Virheenkorjaus ja testaus
Tee sovelluksen virheenkorjaus Visual Studio Codessa python-virheenkorjausohjelman avulla. Lisää keskeytyskohtia tarvittaessa mahdollisten ongelmien vianmäärityksen korjaukseksi. Lisätietoja