porta microsoft management azure azure-functions webhooks

microsoft - porta azure



¿Cómo escalan las funciones de Azure? (2)

La documentación de escala para las funciones de Azure es un poco más clara sobre los detalles de cómo las funciones de Azure deciden cuándo agregar más instancias de una aplicación.

Digamos, por ejemplo, que tengo una función que es activada por un webhook de Github. 10,000 personas se comprometen simultáneamente con el repositorio de Github (sin conflictos de fusión;), y Github llama a mi función 10,000 veces en un período de tiempo muy corto.

¿Qué puedo esperar que suceda? Específicamente,

  1. ¿Azure Functions acelerará las llamadas de webhook? es decir, ¿Azure Functions rechazará ciertas llamadas de función si mi aplicación de función está bajo una carga alta?
  2. ¿Azure Functions pone en cola las solicitudes de alguna manera? Si es así, ¿dónde / cómo?
  3. ¿Cuántas instancias de mi aplicación de función creará Azure Functions en este escenario? ¿Uno para cada solicitud (es decir, 10,000) y cada una se ejecutará en paralelo?
  4. Si la función de mi aplicación se redujo a cero instancias, porque no había ninguna carga en ella, ¿podría esperar ver algún "tiempo de calentamiento" antes de que se ejecute la primera función? ¿Aproximadamente cuánto tiempo?

  1. probado hoy tardó más de segundos :(

ACTUAL PERFORMANCE -------------- ClientConnected: 13:58:41.589 ClientBeginRequest: 13:58:41.592 GotRequestHeaders: 13:58:41.592 ClientDoneRequest: 13:58:41.592 Determine Gateway: 0ms DNS Lookup: 65ms TCP/IP Connect: 40ms HTTPS Handshake: 114ms ServerConnected: 13:58:41.703 FiddlerBeginRequest: 13:58:41.816 ServerGotRequest: 13:58:41.817 ServerBeginResponse: 14:00:36.790 GotResponseHeaders: 14:00:36.790 ServerDoneResponse: 14:00:36.790 ClientBeginResponse: 14:00:36.790 ClientDoneResponse: 14:00:36.790 Overall Elapsed: **0:01:55.198**


  1. Azure Functions no rechazará una llamada de webhook, pero en el caso de una carga repentina y extrema, algunas solicitudes pueden agotarse. Para las páginas web, por favor incluya reintentar en el cliente, como una buena práctica.
  2. No están en cola en ningún lugar persistente. Son (detalle de implementación) administrados por IIS.
  3. (Detalle de implementación) Número de instancias no es una cosa difícil de configurar. Tenemos ciertas protecciones inéditas, pero estamos diseñados para escalar bastante lejos. Sus solicitudes serán manejadas por múltiples instancias.
  4. Sí. En este momento, es bastante fuerte (segundos), pero estaremos trabajando para mejorarlo. Para situaciones sensibles al rendimiento, se recomienda un disparador de canario o temporizador para mantenerlo despierto.

Soy del equipo de Azure Functions. Las cosas que marqué como detalles de implementación no son promesas y probablemente también cambiarán a medida que evolucionemos en nuestro servicio; Sólo un intento de transparencia.