Zdieľať cez


Kurz: Vyvolanie údajových funkcií používateľov z konzolovej aplikácie jazyka Python

Ak chcete vyvolať položky funkcie údajov používateľa štruktúry z konzolovej aplikácie v jazyku Python, môžete odoslať požiadavky HTTP na koncový bod funkcie, ktorý je potrebné spustiť. V tomto rýchlom štarte sa dozviete, ako nastaviť aplikáciu v jazyku Python pomocou visual Studia Code.

Požiadavky

Vytvorenie aplikácie Microsoft Entra

Nasledujúce kroky vysvetľujú, ako nakonfigurovať podporu pre aplikáciu ReactJS v Microsoft Entra.

  1. Registrácia aplikácie pomocou krokov opísaných v téme Stručný návod: Registrácia aplikácie pomocou platformy identity spoločnosti Microsoft.

  2. Hodnoty ID aplikácie (klienta) aplikácie Microsoft Entra a ID adresára (nájomníka) sa zobrazia v poli Súhrn. Tieto hodnoty si zaznamenajte, pretože sú potrebné neskôr.

  3. V zozname Spravovať vyberte povolenia rozhrania APIa potom Pridať povolenie.

  4. Pridajte službu PowerBI, vyberte položku Delegované povolenia a vyberte položku UserDataFunction.Execute.All alebo položku. Execute.All povolenia. Skontrolujte, či sa nevyžaduje súhlas správcu.

  5. Vráťte sa do nastavenia Spravovať a vyberte Overenie>Pridať platformu>Jednostránková aplikácia.

  6. Na lokálne účely vývoja pridajte do http://localhost:3000 časti Identifikátory URI presmerovania a potvrďte, že je aplikácia povolená pre postup kódu oprávnenia s overeným kľúčom pre Exchange kódov (PKCE). Ak chcete zmeny uložiť, vyberte tlačidlo Konfigurovať. Ak aplikácia narazí na chybu súvisiacu s požiadavkami medzi zdrojmi, pridajte platformu mobilných a desktopových aplikácií v predchádzajúcom kroku s rovnakým identifikátorom URI presmerovania.

  7. Späť na overovania , prejdite nadol na rozšírené nastavenia a v časti Povoliťverejné klientske postupy vyberte položku Áno pre Povoliť nasledujúce mobilné postupy a postupy pracovnej plochy.

Vytvorenie konzolovej aplikácie

  1. Funkcia musí byť verejne prístupná. V prieskumníkovi funkcií ukážte na názov funkcie, vyberte ikonu troch bodiek (...), ktorá sa zobrazí, a potom vyberte položky Vlastnosti. Na otvorínej table Vlastnosti povoľte verejný prístup. Takisto by ste si mali poznamenať verejnej URL adresy, ktoré môžete použiť v aplikácii jazyka Python.

  2. Vytvorte nový priečinok pre aplikáciu jazyka Python, napríklad môj-data-app. Otvorte priečinok v editore Visual Studio Code.

  3. Nastavte virtuálne prostredie jazyka Python v editore Visual Studio Code. Ak chcete vytvoriť lokálne prostredia v editore Visual Studio Code, otvorte paletu príkazov pomocou kombinácie klávesov Ctrl + Shift + P a potom vyhľadajte a vyberte príkaz Python: Vytvoriť prostredie.

    • Príkaz zobrazí zoznam typov prostredia a vyberie venv.
    • Vyberte verziu interpreta jazyka Python jazyku Python 3.11.
  4. Spustením nasledujúceho príkazu aktivujte virtuálne prostredie v termináli Visual Studio Code.

    venv\Scripts\activate.bat
    
  5. Potom spustite príkaz na inštaláciu knižníc jazyka Python potrebných pre tento príklad.

    pip install azure-identity, requests 
    
  6. Vytvorte app.py súbor a pomocou kódu vyvolajte položku údajových funkcií používateľa.

    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

    Príkladom je účely vývoja iba. Pred použitím aplikácie pre prípad produkčného použitia aktualizujte aplikáciu tak, aby používala overenie MICROSOFT Entra ID.

Vyvolanie funkcie z externej aplikácie

Funkcie možno vyvolať vydaním volania REST na URL adresu koncového bodu. Vyberte funkciu, ktorú chcete vyvolať v prieskumníkovi Functions a vyberte položky Kopírovať URL adresu funkcie. Možnosť externe používať túto URL adresu môžete zapnúť alebo vypnúť aj z ponuky Vlastnosti.

Snímka obrazovky zobrazujúca spôsob lokálneho ladenia pomocou bodov prerušenia.

Potom túto URL adresu použite v aplikácii na vyvolanie funkcie. Pozrite si Vyvolanie údajových funkcií používateľa z aplikácie

Výstupná schéma

Pri vyvolaní funkcie údajov používateľa z externej aplikácie bude mať výstupná schéma nasledujúci formát:

{
  "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*/
       }
     },
  ]
}

Vrátia sa nasledujúce vlastnosti:

  • functionName: Názov spustenej funkcie.
  • invocationId: ID vyvolania na vykonanie funkcie.
  • stav: Výsledok spustenia funkcie a podporované hodnoty sú Succeeded, BadRequest, , Faileda TimeoutResponseTooLarge.
  • výstup: Výstupná hodnota vrátená funkciou.
  • chýb: Ak sa zaznamenajú nejaké chyby, vráti sa zoznam jednotlivých chýb s ich názvom, chybovým hlásením a vlastnosťami chyby.

Kódy odpovede

Funkcia vráti nasledujúce kódy HTTP ako výsledok spustenia.

kód odpovede Správa Opis
200 Úspech Požiadavka bola úspešná.
400 Zlá požiadavka Žiadosť nebola platná. Táto odpoveď môže byť spôsobená chýbajúcimi alebo nesprávnymi hodnotami vstupných parametrov, typmi údajov alebo názvami. Táto reakcia môže byť spôsobená aj vypnutím verejného prístupu pre funkciu.
403 Zakázané Odpoveď bola príliš veľká a vyvolanie zlyhalo.
408 Časový limit žiadosti Žiadosť zlyhala, pretože spustenie trvá viac ako 200 sekúnd.
409 Konflikt Žiadosť nebolo možné dokončiť z dôvodu konfliktného stavu. Môže to byť spôsobené nespracovanou výnimkou alebo chybou s povereniami používateľa.
422 Zlá požiadavka Požiadavka zlyhala z dôvodu UserThrownError vyvolanej vo funkcii.
500 Interná chyba servera Žiadosť zlyhala z dôvodu internej chyby v službe.

Ladenie a testovanie

Ladenie aplikácie v editore Visual Studio Code pomocou ladiaceho nástroja jazyka Python. Ak je to potrebné, pridajte body prerušenia na ladenie prípadných problémov. Ďalšie informácie

Ďalšie kroky