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.
En este artículo se muestra cómo ejecutar manualmente una función no desencadenada por HTTP a través de una solicitud HTTP con formato especial.
En algunos contextos, como durante el desarrollo y la solución de problemas, es posible que tenga que ejecutar "a petición" una función de Azure desencadenada indirectamente. Algunos ejemplos de desencadenadores indirectos son las funciones según una programación o las funciones que se ejecutan como el resultado de los eventos.
El procedimiento descrito en este artículo equivale a usar la funcionalidad Test/Run de la pestaña Code + Test de una función en el portal de Azure. También puede usar Visual Studio Code para ejecutar funciones manualmente.
Requisitos previos
Los ejemplos de este artículo utilizan una herramienta de prueba de HTTP. Asegúrese de elegir una herramienta que mantenga los datos seguros. Para más información, vea Herramientas de prueba HTTP.
Definición de la ubicación de la solicitud
Para ejecutar una función no desencadenada por HTTP, necesita una manera de enviar una solicitud a Azure para ejecutar la función. La dirección URL que se usa para hacer esta solicitud tiene un formato específico.
Definición de la ubicación de la solicitud: nombre de host + ruta de acceso a la carpeta + nombre de la función
- Nombre del host: La ubicación pública de la aplicación de funciones se compone del nombre de la aplicación de funciones más azurewebsites.net o su dominio personalizado. Cuando trabaja con ranuras de implementación que se utilizan para el almacenamiento provisional, la parte del nombre de host es el nombre de host de producción con anexados. En el ejemplo anterior, la URL será para una ranura denominada .
- Ruta de acceso de carpeta: para obtener acceso a funciones no desencadenadas por HTTP a través de una solicitud HTTP, debe enviar la solicitud a través de la ruta de acceso . Las API bajo la ruta son solo accesibles con autorización.
- Nombre de la función: El nombre de la función que quiere ejecutar.
Las siguientes consideraciones se aplican cuando se realizan solicitudes a los puntos de conexión de administrador en la aplicación de función:
- Al realizar solicitudes a cualquier punto de conexión bajo la ruta especificada, debe proporcionar la clave maestra de la aplicación en el encabezado de la petición.
- Cuando se ejecuta localmente, no se aplica la autorización y no se requiere la clave maestra de la función. Puede llamar a la función directamente omitiendo el encabezado.
- Al acceder a los puntos de conexión de la aplicación de función en una ranura de implementación, asegúrese de usar el nombre de host específico de la ranura en la URL de solicitud, junto con la clave maestra específica de la ranura.
Obtener la clave maestra
Puede obtener la clave maestra desde el portal de Azure o mediante el CLI de Azure.
Precaución
Debido a los permisos elevados en su función de aplicación concedidos por la clave maestra, no debe compartir esta clave con terceros ni distribuirla en una aplicación. La clave solo se debe enviar a un punto de conexión HTTPS.
Vaya a la aplicación de funciones en el portal Azure, seleccione App Keys y, a continuación, la clave
_master.Busque la clave maestra para copiar.
En la sección Editar clave, copie el valor de la clave en el portapapeles y, a continuación, seleccione Aceptar.
Copie la clave maestra en el portapapeles.
Llamada a la función
En el portal de Azure, vaya a la parte superior de la aplicación de funciones y elija la función.
Seleccione Código + prueba y, a continuación, Registros. Cuando ejecute manualmente la función desde su herramienta de prueba HTTP, aquí verá los mensajes de la función registrados.
Captura de pantalla que muestra la página "Code + test" (Código + prueba) con un mensaje de los registros mostrados.
En la herramienta de prueba HTTP, use la ubicación de solicitud que definió como la URL de solicitud y asegúrese de que el método de solicitud HTTP es POST e incluya estos dos encabezados de solicitud:
Clave Importancia x-functions-keyEl valor de clave maestra pegado desde el portapapeles. Content-Typeapplication/jsonAsegúrese de que la carga/cuerpo de la solicitud POST sea . El valor de específico que proporcione dependerá del tipo de desencadenador, pero solo puede ser un valor de cadena, numérico o booleano. En el caso de los servicios que usan cargas JSON como, por ejemplo, Azure Service Bus, la carga JSON de prueba se debe escapar y serializar como una cadena.
Si no desea pasar datos de entrada a la función, debe pasar un diccionario vacío como el cuerpo de la solicitud POST. Para obtener más información, consulte el artículo de referencia del desencadenador no HTTP concreto.
Envíe la solicitud POST HTTP. La respuesta debería ser una respuesta HTTP 202 (Aceptada).
A continuación, vuelva a la función en el portal de Azure. Revise los registros y verá los mensajes procedentes de la llamada manual a la función.
Vea los registros para ver los resultados de la prueba de clave maestra.
La forma en que se accede a los datos enviados al desencadenador depende del tipo de desencadenador y del lenguaje de la función. Para obtener más información, consulte los ejemplos de referencia del desencadenador específico.
Pasos siguientes
Pruebas locales de Event Grid con la aplicación web de visualización