Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Desarrollo de código de aplicación para App Runner
En este capítulo se analiza la información sobre el tiempo de ejecución y las pautas de desarrollo que debe tener en cuenta al desarrollar o migrar el código de la aplicación para su despliegue. AWS App Runner
Información de tiempo de ejecución
Ya sea que proporciones una imagen de contenedor o que App Runner cree una por ti, App Runner ejecuta el código de tu aplicación en una instancia de contenedor. Estos son algunos aspectos clave del entorno de ejecución de la instancia de contenedor.
-
Compatibilidad con el marco: App Runner es compatible con cualquier imagen que implemente una aplicación web. Es independiente del lenguaje de programación que elijas y del servidor o marco de aplicaciones web que utilices, si lo utilizas. Para su comodidad, ofrecemos tiempos de ejecución gestionados específicos de cada plataforma para diversas plataformas de programación, a fin de agilizar el proceso de creación de aplicaciones y la creación de imágenes abstractas.
-
Solicitudes web: App Runner proporciona soporte para HTTP 1.0 y HTTP 1.1 a las instancias contenedoras. Para obtener más información sobre la configuración del servicio, consulteConfiguración de un servicio de App Runner. No es necesario implementar la gestión del tráfico seguro HTTPS. App Runner redirige todas las solicitudes HTTP entrantes a los puntos finales HTTPS correspondientes. No es necesario configurar ningún ajuste para permitir la redirección de las solicitudes web HTTP. App Runner finaliza el TLS antes de pasar las solicitudes a la instancia del contenedor de la aplicación.
nota
-
Hay un límite de tiempo de espera total de 120 segundos para las solicitudes HTTP. Los 120 segundos incluyen el tiempo que tarda la aplicación en leer la solicitud, incluido el cuerpo, y en terminar de escribir la respuesta HTTP.
-
El límite de tiempo de espera de lectura y respuesta de la solicitud depende de las aplicaciones que utilices. Estas aplicaciones pueden tener sus propios tiempos de espera internos, por ejemplo, el servidor HTTP para Python, Gunicorn, tiene un límite de tiempo de espera predeterminado de 30 segundos. En esos casos, el límite de tiempo de espera de la aplicación anula el límite de 120 segundos de App Runner.
-
No necesitas configurar los conjuntos de cifrado TLS ni ningún otro parámetro, ya que App Runner, al ser un servicio totalmente gestionado, gestiona la terminación de TLS por ti.
-
-
Aplicaciones sin estado: actualmente, App Runner no admite aplicaciones con estado. Por lo tanto, App Runner no garantiza la persistencia del estado más allá de la duración del procesamiento de una sola solicitud web entrante.
-
Almacenamiento: App Runner amplía o reduce automáticamente las instancias de tu aplicación App Runner en función del volumen de tráfico entrante. Puede configurar las opciones de escalado automático para su aplicación App Runner. Dado que el número de instancias actualmente activas que procesan las solicitudes web se basa en el volumen de tráfico entrante, App Runner no puede garantizar que los archivos se conserven más allá del procesamiento de una sola solicitud. Por lo tanto, App Runner implementa el sistema de archivos en la instancia contenedora como almacenamiento efímero, lo que implica que los archivos son transitorios. Por ejemplo, los archivos no se conservan cuando pausas y reanudas el servicio de App Runner.
App Runner te proporciona 3 GB de almacenamiento efímero y utiliza una parte de los 3 GB de almacenamiento efímero para la imagen de contenedor extraída, comprimida y descomprimida de la instancia. El servicio App Runner puede usar el almacenamiento efímero restante. Sin embargo, no se trata de un almacenamiento permanente debido a su naturaleza apátrida.
nota
Puede haber situaciones en las que los archivos de almacenamiento persistan en todas las solicitudes. Por ejemplo, si la siguiente solicitud llega a la misma instancia, los archivos de almacenamiento se conservarán. La persistencia de los archivos de almacenamiento en todas las solicitudes puede resultar útil en determinadas situaciones. Por ejemplo, al gestionar una solicitud, puede almacenar en caché los archivos que la aplicación descarga si es posible que las solicitudes futuras los necesiten. Esto podría acelerar la gestión de solicitudes en el futuro, pero no puede garantizar que la velocidad aumente. El código no debe dar por sentado que aún existe un archivo que se descargó en una solicitud anterior.
-
Variables de entorno: de forma predeterminada, App Runner hace que la variable de
PORT
entorno esté disponible en tu instancia de contenedor. Puede configurar el valor de la variable con la información del puerto y agregar variables y valores de entorno personalizados. También puede hacer referencia a los datos confidenciales almacenados en el AWS Secrets Manageralmacén de AWS Systems Manager parámetros como variables de entorno. Para obtener más información sobre la creación de variables de entorno, consulteHacer referencia a variables de entorno. -
Función de instancia: si el código de tu aplicación realiza llamadas a algún AWS servicio mediante las API del servicio o uno de los AWS SDK, crea una función de instancia mediante AWS Identity and Access Management (IAM). A continuación, adjúntelo a su servicio de App Runner cuando lo cree. Incluye todos los permisos de acción de AWS servicio que tu código requiere en tu rol de instancia. Para obtener más información, consulte Rol de instancia.
Directrices de desarrollo de código
Tenga en cuenta estas pautas al desarrollar código para una aplicación web de App Runner.
-
Diseñe código sin estado: diseñe la aplicación web que implemente en su servicio de App Runner para que no tenga estado. El código debe suponer que ningún estado persiste más allá de la duración del procesamiento de una sola solicitud web entrante.
-
Elimine archivos temporales: cuando crea archivos, se almacenan en un sistema de archivos y ocupan parte de la asignación de almacenamiento de su servicio. Para evitar out-of-storage errores, no guardes los archivos temporales durante períodos prolongados. Equilibre el tamaño del almacenamiento con la velocidad de gestión de las solicitudes al tomar decisiones sobre el almacenamiento en caché de los archivos.
-
Inicio de instancias: App Runner proporciona cinco minutos de tiempo de inicio de la instancia. La instancia debe escuchar las solicitudes en sus puertos de escucha configurados y estar en buen estado a los cinco minutos de su inicio. Durante el tiempo de inicio, a las instancias de App Runner se les asigna una CPU virtual (vCPU) en función de la configuración de la vCPU. Para obtener más información sobre la configuración de vCPU disponible, consulte. Configuraciones compatibles con App Runner
Una vez que la instancia se inicia correctamente, pasa a un estado inactivo y espera las solicitudes. El pago se basa en la duración del inicio de la instancia, con un cargo mínimo de un minuto por inicio de la instancia. Para obtener información sobre precios, consulte Precios de AWS App Runner
.