Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para invocar funciones de tratamiento de datos de usuario de Fabric desde una aplicación de consola en Python, puede enviar solicitudes HTTP al endpoint de la función que necesita ejecutarse. En este inicio rápido, aprenderá a configurar una aplicación de Python mediante Visual Studio Code.
Prerrequisitos
- Instale Visual Studio Code.
- Descargue Python 3.1 en el equipo local.
- Cree una cuenta de Microsoft Fabric de forma gratuita si no tiene una.
- Crear un área de trabajo.
- Cree un elemento de funciones de datos de usuario y publíquelo. Consulte estos artículos sobre cómo crear uno en Visual Studio Code o cómo crear uno en el portal. Publique los cambios para que el elemento de funciones de datos de usuario esté listo para invocarse.
Crear una aplicación de Microsoft Entra
En los pasos siguientes se explica cómo configurar la compatibilidad con una aplicación ReactJS en Microsoft Entra.
Registro de una aplicación mediante los pasos descritos en Inicio rápido: Registro de una aplicación con la plataforma de identidad de Microsoft.
Los valores de Id. de aplicación de aplicación de Microsoft Entra (cliente) e Id. de directorio (inquilino) aparecen en el cuadro Resumen. Registre estos valores porque son necesarios más adelante.
En la lista Administrar, seleccione permisos de APIy luego Agregar permiso.
Agregue el servicio PowerBI, seleccione Permisos delegados y seleccione UserDataFunction.Execute.All o elemento. Permisos Execute.All . Confirme que el consentimiento del administrador no es necesario.
Vuelva a la configuración Administrar y seleccione Autenticación>Agregar una> de plataforma.
Para fines de desarrollo local, agregue
http://localhost:3000en URI de redirección y confirme que la aplicación está habilitada para el flujo de código de autorización con clave de prueba para Intercambio de código (PKCE). Seleccione el botón Configurar para guardar los cambios. Si la aplicación encuentra un error relacionado con las solicitudes entre orígenes, agregue la plataforma aplicaciones móviles y de escritorio en el paso anterior con el mismo URI de redirección.Vuelva a Autenticación, desplácese hasta Configuración avanzada y, en Permitir flujos de clientes públicos, seleccione Sí para Habilitar los siguientes flujos de dispositivos móviles y de escritorio.
Creación de una aplicación de consola
La función debe ser accesible públicamente. En el Explorador de Funciones, mantenga el puntero sobre el nombre de la función y seleccione el icono de puntos suspensivos (...) que aparece y, a continuación, seleccione Propiedades. En el panel Propiedades que se abre, habilite el acceso público. También debe tomar nota de la dirección URL pública que se va a usar en la aplicación Python.
Cree una nueva carpeta para la aplicación de Python, por ejemplo my-data-app. Abra la carpeta en Visual Studio Code.
Configure el entorno virtual de Python en Visual Studio Code. Para crear entornos locales en Visual Studio Code, abra la paleta Comandos con Ctrl+Mayús+P y, a continuación, busque y seleccione el comando Python: Create Environment.
- El comando presenta una lista de tipos de entorno y selecciona venv.
- Seleccione la versión del intérprete de Python Python 3.11.
Ejecute el comando siguiente para activar el entorno virtual en el terminal de Visual Studio Code.
venv\Scripts\activate.batA continuación, ejecute el comando para instalar las bibliotecas de Python necesarias para este ejemplo.
pip install azure-identity, requestsCree un archivo
app.pyy use el código para invocar el elemento de funciones de datos de usuario.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:
El ejemplo es solo para fines de desarrollo. Actualice la aplicación para usar la autenticación de Microsoft Entra ID antes de usar la aplicación para un caso de uso de producción.
Invocación de una función desde una aplicación externa
Las funciones se pueden invocar mediante la emisión de una llamada REST a la dirección URL del punto de conexión. Seleccione la función que desea invocar en el Explorador de Functions y seleccione Copiar dirección URL de la función. También puede activar o desactivar la capacidad de usar esta dirección URL externamente desde el menú Propiedades.
A continuación, use esta dirección URL en la aplicación para invocar la función. Consulte Invocar funciones de datos de usuario desde una aplicación
Esquema de salida
Al invocar una función de datos de usuario desde una aplicación externa, el esquema de salida tendrá el formato siguiente:
{
"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*/
}
},
]
}
Se devuelven las siguientes propiedades:
- functionName: nombre de la función que se ejecutó.
- invocationId: identificador de invocación para la ejecución de una función.
-
status: el resultado de la ejecución de la función y los valores admitidos son
Succeeded,BadRequest,FailedTimeoutyResponseTooLarge. - salida: el valor de salida devuelto por la función.
- errores: si se capturaron errores, devolverá una lista de cada error con su nombre, mensaje de error y propiedades de error.
Códigos de respuesta
La función devolverá los siguientes códigos HTTP como resultado de la ejecución.
| Código de respuesta | Mensaje | Descripción |
|---|---|---|
| 200 | Success | La solicitud fue exitosa. |
| 400 | Solicitud incorrecta | La solicitud no era válida. Esta respuesta podría deberse a que faltan valores de parámetros de entrada, tipos de datos o nombres incorrectos. Esta respuesta también podría deberse a que el acceso público está desactivado para una función. |
| 403 | Prohibido | La respuesta era demasiado grande y se produjo un error en la invocación. |
| 408 | Tiempo de espera de solicitud | Error en la solicitud debido a que la ejecución tarda más de 200 segundos. |
| 409 | Conflicto | No se pudo completar la solicitud debido a un estado en conflicto. Esto podría deberse a una excepción no controlada o a un error con credenciales de usuario. |
| 422 | Solicitud incorrecta | Error en la solicitud debido a un userThrownError generado en la función . |
| 500 | Error interno del servidor | Error en la solicitud debido a un error interno en el servicio. |
Depuración y pruebas
Depure la aplicación en Visual Studio Code mediante el depurador de Python. Agregue puntos de interrupción si es necesario para depurar si hay algún problema. Más información