Compatibilidad de API en Azure Static Web Apps con Azure Container Apps
Azure Container Apps es una plataforma administrada para hospedar contenedores y microservicios sin servidor.
Al vincular la aplicación contenedora en su aplicación web estática, las solicitudes a la aplicación web estática con una ruta que comienza por /api
se enrutan a la misma ruta en la aplicación contenedora.
De forma predeterminada, cuando una aplicación contenedora está vinculada a una aplicación web estática, la aplicación contenedora solo acepta solicitudes que se envían a través de la aplicación web estática vinculada. Una aplicación contenedora se puede vincular a una sola aplicación web estática a la vez.
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.
Nota:
La integración con Azure Container Apps requiere el plan Estándar de Static Web Apps.
No se admite la integración de back-end en entornos de solicitud de incorporación de cambios de Static Web Apps.
Requisitos previos
Para vincular una aplicación contenedora a la aplicación web estática, debe tener un recurso de Container Apps existente y una aplicación web estática.
Resource | Descripción |
---|---|
Azure Container Apps | Si aún no tiene una, siga los pasos descritos en la guía Implementación de la primera aplicación de contenedor. |
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 instancia de Azure Container App existente que expone un punto de conexión a través de la siguiente ubicación.
https://my-container-app.red-river-123.eastus2.azurecontainerapps.io/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 apuntan al mismo punto de conexión de API. El punto de conexión de la aplicación contenedora debe tener el prefijo /api
, ya que Static Web Apps coincide con las solicitudes realizadas para /api
y realiza un proxy de toda la ruta de acceso al recurso vinculado.
Vincular una aplicación contenedora
Para vincular una aplicación de contenedor como back-end de API para 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 al que desea vincular la instancia de API Management. Seleccione Vínculo.
En Tipo de recurso back-end, seleccione Aplicación contenedora.
En Subscription (Suscripción), seleccione la suscripción que contiene la aplicación contenedora que desea vincular.
En Nombre del recurso, seleccione la aplicación contenedora.
Seleccione Vínculo.
Una vez completado el proceso de vinculación, las solicitudes a las rutas que comienzan por /api
se enrutan a la aplicación contenedora vinculada.
Administración del acceso a la aplicación contenedora
La aplicación contenedora está configurada con un proveedor de identidades denominado Azure Static Web Apps (Linked)
que solo permite el tráfico que se realiza mediante proxy a través de la aplicación web estática. Para que la aplicación de contenedora sea accesible para otras aplicaciones, actualice su configuración de autenticación para agregar otro proveedor de identidades o cambie la configuración de seguridad para permitir el acceso no autenticado.
Desvincular una aplicación contenedora
Para desvincular una aplicación contenedora desde 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 contenedora.
Seleccione Unlink (Desvincular).
Una vez completado el proceso de desvinculación, las solicitudes a las rutas que comienzan por /api
ya no están enrutados a la aplicación contenedora.
Nota:
Para evitar exponer accidentalmente la aplicación contenedora 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 (Linked) [Azure Static Web Apps (vinculado)] de la configuración de autenticación dela aplicación contenedora.
Eliminación de la autenticación del recurso Container Apps
Para permitir que el recurso de Container Apps reciba tráfico anónimo, siga estos pasos para quitar el proveedor de identidades:
En Azure Portal, vaya al recurso Container Apps.
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 de Static Web Apps.
Seleccione Quitar autenticación para quitar la autenticación y permitir el tráfico anónimo al recurso de Container Apps.
El recurso de Container Apps ahora puede recibir tráfico anónimo.