Ejercicio: Prueba del punto de conexión y revisión de los registros
Este proyecto guiado consta de los siguientes ejercicios:
- Creación de la aplicación de funciones
- Implementación de una función de desencadenador HTTP
- Prueba del punto de conexión y revisión de registros
En este ejercicio, probará el punto de conexión de la función, habilitará la supervisión, protegerá la función con una clave de acceso y revisará los registros de invocación. Esto le guía por el ciclo de vida completo de la implementación, protección y supervisión de una función sin servidor.
Este ejercicio incluye las siguientes tareas:
- Prueba del punto de conexión HTTP en un explorador
- Comprobación de la función en el portal
- Habilitación de Application Insights
- Restricción del acceso a la función
- Prueba del acceso restringido
- Revisión de los registros de invocación
Resultado: El punto de conexión fue probado con éxito y se confirmaron los registros de ejecución en el portal.
Tarea 1: Probar el punto de conexión HTTP en un explorador
Llame al punto de conexión de la función para comprobar que responde correctamente. Esto valida que la función sin servidor está implementada, en ejecución y accesible desde la red pública de Internet.
- Abra una nueva pestaña del explorador.
- Pegue la dirección URL de invocación que copió de la salida de implementación del ejercicio anterior en la barra de direcciones y presione Entrar.
- Confirme que el explorador muestra Hello, world! (o un saludo similar). Esta es la respuesta predeterminada de la plantilla de desencadenador HTTP.
- Abra una ventana del explorador privado o de incógnito, pegue la misma dirección URL y presione Entrar.
- Confirme que la función responde sin necesidad de iniciar sesión. Esto funciona porque establece el nivel de autorización en Anónimo al crear la función.
Nota:
Paso de validación: Confirme que el punto de conexión público responde correctamente con y sin parámetros de consulta y funciona en una ventana de incógnito sin credenciales.
Tarea 2: Comprobación de la función en el portal
Confirme que la función implementada aparece en Azure Portal junto con la aplicación de funciones que creó anteriormente.
- En Azure Portal, en la barra de búsqueda del portal, busque Function App y seleccione Aplicación de funciones.
- Seleccione la aplicación de funciones que creó en el ejercicio anterior.
- En la página Información general, en Funciones, confirme que GetStatus aparece en la lista con un desencadenador HTTP.
Nota:
Paso de validación: Confirme que la función GetStatus aparece en la lista de funciones de Function App en el portal.
Tarea 3: Habilitación de Application Insights
Al crear la aplicación de funciones, omitió la pestaña Supervisión y aceptó los valores predeterminados. Ahora que desea realizar un seguimiento de las invocaciones, debe habilitar Application Insights. Este es un patrón común en Azure: puede agregar supervisión después del hecho sin volver a crear los recursos.
- Seleccione GetStatus en la lista de funciones.
- En el menú superior, seleccione Invocaciones.
- La página muestra un mensaje que indica que Application Insights no está configurado. Seleccione el botón Configurar Application Insights .
- En la página de configuración de Application Insights, seleccione Activar Application Insights.
- Antes de seleccionar Aplicar, anote el nombre y la ubicación del área de trabajo de Log Analytics que se muestran en la página. Anote los cuatro últimos caracteres del nombre del área de trabajo y la ubicación: necesita esta información durante la limpieza.
- Seleccione Aplicar. Cuando aparezca el cuadro de diálogo Aplicar configuración de supervisión , observe que se reiniciará el sitio, seleccione Sí. Espere a que se complete la configuración.
- Actualice la página del portal (presione F5) para que el portal seleccione la nueva configuración de Application Insights.
Nota:
Azure crea el área de trabajo de Log Analytics en un grupo de recursos denominado DefaultResourceGroup-{region}. Esto es independiente del grupo de recursos del proyecto y debe limpiarse por separado.
Nota:
Paso de validación: Confirme que Application Insights ya está habilitado. La página Invocaciones ya no debe mostrar el mensaje de configuración.
Tarea 4: Restringir el acceso a la función
Ahora que la supervisión captura datos, cambie el nivel de autorización para que la función requiera una clave. Esto muestra cómo proteger un punto de conexión sin servidor.
En Azure Portal, seleccione el icono de Cloud Shell en la barra de herramientas superior para volver a abrir Cloud Shell.
Vuelva a la carpeta del proyecto:
cd func-gp-endpointEjecute el comando siguiente para cambiar el nivel de autorización de anónimo a función:
sed -i "s/authLevel: 'anonymous'/authLevel: 'function'/" src/functions/GetStatus.jsPara comprobar el cambio, ejecute:
grep authLevel src/functions/GetStatus.jsConfirme que la salida muestra
authLevel: 'function'.Vuelva a implementar la función:
FUNC_APP_NAME=$(az functionapp list --resource-group rg-gp-functions-endpoint --query "[0].name" -o tsv) func azure functionapp publish $FUNC_APP_NAMEEspere a que la implementación se complete.
Nota:
Paso de validación: Confirme que la salida de implementación muestra la función GetStatus publicada correctamente.
Tarea 5: Prueba del acceso restringido
Compruebe que la función ahora rechaza todas las solicitudes no autenticadas y, a continuación, use una clave de función para recuperar el acceso.
- Vuelva a la pestaña del explorador donde ha probado previamente la dirección URL de la función y actualice la página.
- Confirme que recibe una respuesta 401 No autorizada . La función ahora requiere una clave para cada solicitud porque ha cambiado el nivel de autorización de anónimo a función.
- Vuelva a Azure Portal. En la barra de búsqueda del portal, busque Function App y seleccione Function App.
- Seleccione la aplicación de funciones y, a continuación, seleccione GetStatus en la lista de funciones.
- En el menú superior, seleccione Claves de función.
- Copie el valor de clave predeterminado .
- Vuelva a la pestaña del explorador con la dirección URL de la función. Agregue ?code= seguido de la clave que copió al final de la dirección URL y presione Entrar.
- Confirme que la función responde ahora con Hello, world! de nuevo. La clave en la URL demuestra que está autorizado para llamar a la función.
Nota:
Paso de validación: Confirme que la función devuelve 401 sin una clave y se realiza correctamente con la clave anexada.
Tarea 6: Revisión de los registros de invocación
Compruebe Application Insights para ver los registros de las invocaciones de función. El tiempo invertido en las tareas anteriores dio tiempo a Application Insights para procesar los datos.
- En la barra de búsqueda del portal, busque Function App y seleccione Function App.
- Seleccione la aplicación de funciones y, a continuación, seleccione GetStatus en la lista de funciones.
- En el menú superior, seleccione Invocaciones.
- Confirme que el registro muestra las invocaciones correctas (estado 200), incluidas las llamadas anónimas de la tarea 1 y la llamada autenticada por claves de la tarea 5.
- Seleccione una entrada de invocación para ver detalles como el código de estado, la duración y la marca de tiempo.
Nota:
Es posible que las respuestas no autorizadas 401 no aparezcan en la pestaña Invocaciones de función. Azure rechaza las solicitudes no autorizadas en el nivel de host antes de invocar la función, por lo que no se registran como ejecuciones de funciones.
Nota:
Paso de validación: Confirme que los registros de invocación muestran las solicitudes correctas, lo que demuestra que Application Insights captura la actividad de la función.
Sugerencia
Si los registros de invocación no aparecen inmediatamente, espere hasta cinco minutos y seleccione Actualizar. Application Insights puede tardar tiempo en procesar nuevos datos.