Controla el comportamiento del escalamiento

La cantidad máxima de instancias en Cloud Functions es una función que te permite limitar el grado en que tu función se escalará en respuesta a las solicitudes entrantes.

En Cloud Functions, el escalamiento se logra creando nuevas instancias de tu función. Cada una de estas instancias solo puede manejar una solicitud a la vez, por lo que los picos grandes en el volumen de solicitudes pueden generar muchas instancias.

Por lo general, esto es conveniente, pero en algunos casos es posible que desees limitar la cantidad total de instancias que pueden coexistir en un momento determinado. Por ejemplo, tu función puede interactuar con una base de datos que solo pueda controlar una cierta cantidad de conexiones abiertas simultáneas.

Usa cantidades máximas de instancias

Puedes establecer cantidades máximas de instancias para una función individual durante la implementación. Cada función puede tener su propia cantidad máxima de instancias. Las funciones se escalan de forma independiente unas de otras.

Configura el límite máximo de instancias

Para establecer el límite máximo de instancias a través de la herramienta de línea de comandos de gcloud, usa el marcador --max-instances en el momento de la implementación:

gcloud beta functions deploy FUNCTION_NAME --max-instances 10 FLAGS...

En el ejemplo anterior, FLAGS... refiere a otras opciones que pasas durante la implementación de tu función. A fin de obtener una referencia completa para el comando de deploy, incluidas las funciones Beta, consulta gcloud beta functions deploy.

También puedes establecer cantidades máximas de instancias durante la creación de funciones en GCP Console. Para ello, sigue estos pasos:

  1. Ve a la página Descripción general de Cloud Functions.

  2. Haz clic en Crear función.

  3. Completa los campos obligatorios para tu función.

  4. Haz clic en Más para expandir la configuración avanzada.

  5. En la sección Cantidad máxima de instancias de función, ingresa el valor deseado.

Borra el límite máximo de instancias

Si deseas borrar el límite establecido en tu función, puedes usar el marcador --clear-max-instances en el momento de la implementación:

gcloud beta functions deploy FUNCTION_NAME --clear-max-instances

También puedes borrar el límite máximo de instancias en GCP Console:

  1. Ve a la página Descripción general de Cloud Functions.

  2. Haz clic en una función existente para ir a la página de detalles.

  3. Haz clic en Editar.

  4. Haz clic en Más para expandir la configuración avanzada.

  5. En la sección Cantidad máxima de instancias de la función, ingresa “0” o deja el campo vacío.

Límites y recomendaciones

En esta sección, se brindan pautas para utilizar la cantidad máxima de instancias.

Supera la cantidad máxima de instancias

En circunstancias normales, tu función se escala creando instancias nuevas para controlar la carga de tráfico entrante. Sin embargo, cuando estableces un límite máximo de instancias, puede darse una situación en la que no haya suficientes instancias para cumplir con esa carga de tráfico. En ese caso, las solicitudes entrantes se ponen en cola durante un máximo de 60 segundos. Durante este período de 60 segundos, si una instancia termina de procesar una solicitud, estará disponible para procesar las solicitudes en cola. Si no hay instancias disponibles durante el período de 60 segundos, la solicitud falla.

Garantías de escalamiento

El límite máximo de instancias es un límite superior. Establecer un límite alto no significa que tu función escalará hasta la cantidad especificada de instancias. Solo significa que la cantidad de instancias que pueden coexistir en cualquier momento no debe exceder el límite.

Picos de tráfico

En algunos casos, como los aumentos rápidos de tráfico, Cloud Functions puede, por un corto período, crear algunas instancias más que el valor máximo especificado de instancias. Si tu función no puede tolerar este comportamiento temporal, tal vez desees tener en cuenta un margen de seguridad y establecer un valor de instancias máximo inferior al que puede tolerar tu función.

Implementaciones

Cuando implementas una versión nueva de tu función, Cloud Functions migra gradualmente el tráfico de la versión anterior a la nueva. Debido a que los límites máximos de instancias se establecen para cada versión de tu función, puedes exceder temporalmente el límite especificado durante el período posterior a la implementación.

Instancias inactivas y minimización de inicios en frío

Para minimizar el impacto de inicios en frío, Cloud Functions a menudo mantendrá una reserva de instancias inactivas para tu función. Estas instancias están listas para manejar solicitudes en caso de un aumento de tráfico repentino.

Por ejemplo, cuando una instancia terminó de manejar una solicitud, la instancia puede permanecer inactiva por un período en caso de que se deba procesar otra solicitud. Una instancia inactiva puede conservar recursos, como conexiones de bases de datos abiertas, en caso de que se deba procesar otra solicitud.

Valores “0”

Establecer las instancias máximas en “0” hace que se borren los límites de instancias máximas existentes. Establecer un valor “0” no detiene tu función.

Obtén ayuda y, también, informa errores

Si tienes algún problema cuando usas la cantidad máxima de instancias mientras te encuentras en la versión Beta, haz una publicación en el Grupo de usuarios Beta de Cloud Functions.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions