Compatibilidad de API en Azure Static Web Apps con Azure Functions

Azure Static Web Apps proporciona puntos de conexión de API sin servidor a través de Azure Functions. Mediante Azure Functions, las API se escalan dinámicamente según la demanda e incluyen las características siguientes:

  • Seguridad integrada con acceso directo a los datos de autenticación y autorización basada en roles del usuario.

  • Enrutamiento de conexión directa que hace que la ruta de api esté disponible para la aplicación web de forma segura sin necesidad de reglas de CORS personalizadas.

Las API de Azure Static Web Apps se admiten en dos configuraciones posibles en función del plan de hospedaje:

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

  • Traiga sus propias funciones: opcionalmente, puede proporcionar una aplicación de Azure Functions existente de cualquier tipo de plan que vaya acompañada de todas las características de Azure Functions. Con esta configuración, es responsable de controlar una implementación independiente para la aplicación de Functions.

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 los desencadenadores de Azure Functions Solo HTTP Todo
Entornos de ejecución de Azure Functions admitidos Node.js 12
.NET Core 3.1
.NET 6.0
Python 3.8
Todo
Planes de hospedaje de Azure Functions admitidos 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 de api esté disponible para la aplicación web de forma segura sin necesidad de reglas de CORS personalizadas.
Modelo de programación de Durable Functions
Identidad administrada
Administración de tokens de autenticación y autorización de Azure App Service
Funciones de API disponibles fuera de Azure Static Web Apps
Referencias de Key Vault

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 de api.

Funciones administradas Traiga sus propias funciones
Aunque la ruta de 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 de 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. Para activar el registro, habilite Application Insights en la aplicación de Azure Functions.

Restricciones

Funciones administradas Traiga sus propias funciones
  • Los desencadenadores se limitan a HTTP.
  • La aplicación de Azure Functions debe estar en Node.js 12, .NET Core 3.1, .NET 6.0 o Python 3.8.
  • 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
  • Es responsable de administrar la implementación de la aplicación de Azure Functions.

Pasos siguientes