Traer las propias funciones a Azure Static Web Apps
Azure Static Web Apps proporciona integración de API para permitirle crear aplicaciones web front-end que dependen de las API de back-end para los datos y los servicios. Las dos opciones de integración de API son: funciones administradas y traiga sus propios back-end. Para obtener más información sobre las diferencias entre estas opciones, consulte la información general.
En este artículo se muestra cómo vincular una aplicación de Azure Functions existente a un recurso de Azure Static Web Apps.
Nota:
La integración con Azure Functions requiere el plan Estándar de Static Web Apps.
La integración de back-end no se admite en entornos de solicitud de incorporación de cambios de Static Web Apps.
Requisitos previos
Para vincular una aplicación de funciones a la aplicación web estática, debe tener un recurso de Azure Functions existente y una aplicación web estática.
Resource | Descripción |
---|---|
Funciones de Azure | Si aún no tiene una, siga los pasos descritos en la guía Introducción a Azure Functions . |
Aplicación web estática existente | Si aún no tiene una, siga los pasos de la guía de introducción para crear una aplicación web estática Sin plataforma. |
Ejemplo
Considere una aplicación de Azure Functions existente que expone un punto de conexión a través de la siguiente ubicación.
https://my-functions-app.azurewebsites.net/api/getProducts
Una vez vinculado, puede acceder a ese mismo punto de conexión a través de la ruta de acceso api
desde la aplicación web estática, como se indica en esta dirección URL de ejemplo.
https://red-sea-123.azurestaticapps.net/api/getProducts
Ambas direcciones URL de punto de conexión apuntan a la misma función. El punto de conexión de la aplicación de funciones debe tener el /api
prefijo, ya que Static Web Apps coincide con las solicitudes realizadas en /api
y proxies toda la ruta de acceso al recurso vinculado.
Vinculación de una aplicación de Azure Functions existente
Eliminación de funciones administradas del recurso de Static Web Apps (si está presente)
Antes de asociar una aplicación de Functions existente, primero debe ajustar la configuración de la aplicación web estática para quitar funciones administradas si tiene alguna.
- Establezca el valor
api_location
en una cadena vacía (""
) en el archivo de configuración del flujo de trabajo.
Vinculación de la aplicación de Azure Functions al recurso Static Web Apps
Abra la instancia de Static Web Apps en Azure Portal.
En el menú Configuración, seleccione API.
En la fila Producción, seleccione Vincular para abrir la ventana Vincular nuevo back-end.
Escriba la siguiente configuración.
Configuración Valor Tipo de recurso back-end Seleccionar Aplicación de función. Suscripción Seleccione el nombre de su suscripción de Azure. Nombre del recurso Seleccione el nombre de la aplicación Azure Functions. Ranura de back-end Seleccione el nombre de ranura para la función de Azure. Seleccione Vínculo.
La aplicación Azure Functions ahora está asignada a la ruta /api
de la aplicación web estática.
Importante
Asegúrese de establecer el valor api_location
en una cadena vacía (""
) en el archivo de configuración del flujo de trabajo antes de vincular una aplicación de funciones existente. Además, las llamadas asumen que la aplicación de funciones externa conserva el prefijo de ruta api
predeterminado. Muchas aplicaciones quitan este prefijo en host.json. Asegúrese de que el prefijo está en su en la configuración, ya que, de lo contrario, se producirá un error en la llamada.
Implementación
Usted es responsable de configurar un flujo de trabajo de implementación para la aplicación de Azure Functions.
Desvincular una aplicación de Azure Functions
Desvincular la aplicación de Functions de Static Web Apps
Para desvincular una aplicación de funciones de una aplicación web estática, siga estos pasos:
En Azure Portal, vaya a la aplicación web estática.
Seleccione APIs en el menú de navegación.
Busque el entorno que desea desvincular y seleccione el nombre de la aplicación de funciones.
Seleccione Unlink (Desvincular).
Cuando se completa el proceso de desvinculación, las solicitudes a las rutas que comienzan por /api
ya no se envían a la aplicación de Azure Functions.
Nota:
Para evitar exponer accidentalmente la aplicación de funciones al tráfico anónimo, el proveedor de identidades creado por el proceso de vinculación no se elimina automáticamente. Puede eliminar el proveedor de identidades denominado Azure Static Web Apps (vinculado) de la configuración de autenticación de la aplicación de funciones.
Eliminación de la autenticación del recurso de Azure Functions
Para permitir que la aplicación de Azure Functions reciba tráfico anónimo, siga estos pasos para quitar el proveedor de identidades:
En Azure Portal, vaya al recurso de Azure Functions.
Seleccione Autenticación en el menú de navegación.
En la lista de proveedores de identidades, elimine el proveedor de identidades relacionado con el recurso Static Web Apps.
Seleccione Quitar autenticación para quitar la autenticación y permitir el tráfico anónimo al recurso de Azure Functions.
La aplicación de funciones ahora puede recibir tráfico anónimo.
Restricciones de seguridad
Autenticación y autorización: si las directivas de autenticación y autorización aún no están configuradas en la aplicación de funciones existente, la aplicación web estática tendrá acceso exclusivo a la API. Para que la aplicación de funciones sea accesible para otras aplicaciones, agregue otro proveedor de identidades o cambie la configuración de seguridad para permitir el acceso no autenticado.
Nota:
Si habilita la autenticación y autorización en la aplicación de funciones vinculada, debe usar la versión 2 del proveedor de autenticación y autorización de Azure App Service.
Accesibilidad pública requerida: una aplicación de funciones existente no debe aplicar las siguientes configuraciones de seguridad.
- Restricción de la dirección IP de la aplicación de funciones.
- Restricción del tráfico a través de vínculos privados o puntos de conexión de servicio.
Claves de acceso de función: si la función requiere una clave de acceso, debe proporcionar a la clave llamadas desde la aplicación estática a la API.
Restricciones
- Solo hay una aplicación de Azure Functions disponible para una sola aplicación web estática.
- El valor
api_location
de la configuración del flujo de trabajo debe establecerse en una cadena vacía. - No se admite en Static Web Apps entornos de solicitud de incorporación de cambios.
- Aunque la aplicación de Azure Functions puede responder a varios desencadenadores, la aplicación web estática solo puede acceder a las funciones a través de puntos de conexión HTTP.