Configuración de la simultaneidad reservada - AWS Lambda

Configuración de la simultaneidad reservada

En Lambda, la simultaneidad representa la cantidad de solicitudes que la función puede tolerar al mismo tiempo. Hay dos tipos de controles de concurrencia disponibles:

  • Concurrencia reservada: la concurrencia reservada garantiza el número máximo de instancias simultáneas para la función. Cuando una función ha reservado simultaneidad, ninguna otra función puede usarla. No hay ningún cargo por configurar la concurrencia reservada para una función.

  • Concurrencia aprovisionada: la concurrencia aprovisionada inicializa un número solicitado de entornos de ejecución para que estén preparados para responder a las invocaciones de su función. Tenga en cuenta que la configuración de la concurrencia aprovisionada genera cargos en su cuenta de AWS.

En este tema se detalla cómo administrar y configurar la simultaneidad reservada. Si desea disminuir la latencia de las funciones, use la simultaneidad aprovisionada.

La simultaneidad es el número de solicitudes que la función atiende en un momento dado. Cuando se invoca la función, Lambda asigna una instancia para procesar el evento. Cuando el código de la función termina de ejecutarse, puede encargarse de otra solicitud. Si la función se invoca de nuevo mientras se sigue procesando una solicitud, se asigna otra instancia, lo que aumenta la simultaneidad de la función. La simultaneidad total de todas las funciones de su cuenta está sujeta a una cuota por región.

Configuración de la simultaneidad reservada

Para administrar la configuración de la simultaneidad reservada para una función, utilice la consola de Lambda.

Para reservar la simultaneidad para una función
  1. Abra la página de Functions (Funciones) en la consola de Lambda.

  2. Elija una función.

  3. Elija Configuración y, a continuación, elija Simultánea.

  4. En Simultaneidad, elija Editar.

  5. Seleccione Simultaneidad de reserva. Escriba la cantidad de simultaneidad que reservar para la función.

  6. Seleccione Save.

Puede reservar hasta el valor de Unreserved account concurrency (Simultaneidad de cuenta no reservada) mostrado, menor a 100 para funciones que no tienen simultaneidad reservada. Para aplicar la limitación controlada a una función, establezca la concurrencia reservada en cero. Esto impide que los eventos se procesen hasta que elimine el límite.

El ejemplo siguiente muestra dos funciones con grupos de simultaneidad reservada, y el grupo de simultaneidad no reservada usado por otras funciones. Los errores de restricción ocurren cuando toda la simultaneidad de un grupo está en uso.


        Simultaneidad reservada asignada a dos funciones.
Leyenda
  • Simultaneidad de la función

  • Simultaneidad reservada

  • Simultaneidad no reservada

  • Limitación.

La reserva de simultaneidad tiene los siguientes efectos.

  • Otras funciones no pueden evitar que la función se escale: todas las funciones de su cuenta en la misma región sin simultaneidad reservada comparten el grupo de simultaneidad no reservada. Sin simultaneidad reservada, otras funciones pueden utilizar toda la simultaneidad disponible. Esto impide que la función se amplíe cuando sea necesario.

  • Su función no se puede escalar fuera de control: la simultaneidad reservada también limita que la función utilice la simultaneidad de un grupo no reservado, lo que limita su simultaneidad máxima. Puede reservar simultaneidad para evitar que la función utilice toda la simultaneidad disponible en la región o que sobrecargue los recursos empleados posteriormente.

La configuración de la simultaneidad por función puede afectar al grupo de simultaneidad que está disponible para otras funciones. Para evitar problemas, limite el número de usuarios que pueden utilizar las operaciones de la API PutFunctionConcurrency y DeleteFunctionConcurrency.

Configuración de simultaneidad con la API de Lambda

Para administrar la configuración de simultaneidad con el SDK de AWS CLI o AWS, utilice las siguientes operaciones de la API.

Para configurar la simultaneidad reservada con la AWS CLI, use el comando put-function-concurrency. El comando siguiente reserva una simultaneidad de 100 para una función llamada my-function:

aws lambda put-function-concurrency --function-name my-function --reserved-concurrent-executions 100

Debería ver los siguientes datos de salida:

{ "ReservedConcurrentExecutions": 100 }