Compartir a través de


Soporte de API en Azure Static Web Apps con Azure Functions

Las aplicaciones web front-end suelen llamar a las API de back-end para datos y servicios. De forma predeterminada, Azure Static Web Apps proporciona puntos de conexión de API sin servidor integrados a través de Azure Functions.

API de Azure Functions en Static Web Apps están disponibles en dos configuraciones posibles según el plan de alojamiento.

  • Administración de funciones: de forma predeterminada, la API de una aplicación web estática es una aplicación Azure Functions administrada e implementada por Azure Static Web Apps asociada a algunas restricciones.

  • Traiga sus propias funciones: Opcionalmente, puede proporcionar una aplicación existente de Azure Functions de cualquier tipo de plan, la cual incluye todas las características de Azure Functions. Con esta configuración, usted es responsable de gestionar una implementación independiente para la aplicación de funciones.

En la tabla siguiente se comparan las diferencias entre el uso de funciones administradas y existentes.

Característica Funciones administradas Traiga sus propias funciones
Acceso a Azure Functions triggers y enlaces Solo HTTP Todos
Se admiten los entornos de ejecución de Azure Functions runtimes1 Consulte lenguajes y entornos de ejecución admitidos. Todos
Planes de hosting compatibles de Azure Functions Consumo Consumo
Premium
Dedicado
Seguridad integrada con acceso directo a los datos de autenticación y autorización basada en roles del usuario
Integración del enrutamiento que hace que la ruta /api esté disponible para la aplicación web de forma segura sin necesidad de reglas de CORS personalizadas.
modelo de programación Durable Functions
Identidad administrada
Administración de tokens para la autenticación y autorización en Azure App Service
Funciones de API disponibles fuera de Azure Static Web Apps
referencias de Key Vault

1 Para especificar la versión del runtime de las funciones administradas, agregue un archivo de configuración a la aplicación de front-end y establezca la apiRuntimepropiedad . La compatibilidad está sujeta a la directiva de compatibilidad de Azure Functions Language Runtime.

Las opciones de API para Static Web Apps incluyen los siguientes servicios de Azure:

Para más información, consulte la Información general de APIs.

Configuración

Los puntos de conexión de API están a disposición de la aplicación web a través de la ruta api.

Funciones administradas Traiga sus propias funciones
Aunque la ruta /api es fija, tiene control sobre la ubicación de la carpeta de código fuente de la aplicación de funciones administrada. Para cambiar esta ubicación, edite el archivo YAML del flujo de trabajo, que se encuentra en la carpeta .github/workflows de su repositorio. Las solicitudes a la ruta /api se envían a la aplicación de Azure Functions existente.

Solución de problemas y registros

Los registros solo están disponibles si agrega Application Insights.

Funciones administradas Traiga sus propias funciones
Para activar el registro, habilite Application Insights en la aplicación web estática. Active el registro habilitando Application Insights en la aplicación Azure Functions.

Restricciones

Además de la API de Static Web Apps constraints, también se aplican las restricciones siguientes a las API de Azure Functions:

Funciones administradas Traiga sus propias funciones
  • Los desencadenadores y enlaces están limitados a HTTP.
  • La aplicación Azure Functions debe estar en Node.js 12, Node.js 14, Node.js 16, Node.js 18, Node.js 20 (versión preliminar), .NET Core 3.1, .NET 6.0, .NET 7.0, .NET 8.0, Python 3.8, Python 3.9 o Python 3.10.
  • El servicio administra algunas configuraciones de la aplicación, por lo que el tiempo de ejecución reserva los siguientes prefijos:
    • APPSETTING_, AZUREBLOBSTORAGE_, AZUREFILESSTORAGE_, AZURE_FUNCTION_, CONTAINER_, DIAGNOSTICS_, DOCKER_, FUNCTIONS_, IDENTITY_, MACHINEKEY_, MAINSITE_, MSDEPLOY_, SCMSITE_, SCM_, WEBSITES_, WEBSITE_, WEBSOCKET_, AzureWeb
  • El servicio usa internamente algunas etiquetas de aplicación. Por lo tanto, se reservan las siguientes etiquetas:
    • AccountId, EnvironmentId, FunctionAppId.
  • Es responsable de administrar la implementación de la aplicación de Functions.

Pasos siguientes