Streaming de réponses pour les fonctions Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Streaming de réponses pour les fonctions Lambda

Les fonctions Lambda peuvent renvoyer nativement les charges utiles de réponse aux clients via la fonction Lambda ou à l'aide de l'InvokeWithResponseStreamAPI (via le AWS SDK URLs ou des appels d'API directs). Votre fonction Lambda peut également diffuser des charges utiles de réponse via l'intégration du proxy Amazon API Gateway, qui utilise l'InvokeWithResponseStreamAPI pour appeler votre fonction. Le streaming de réponses peut profiter aux applications sensibles à la latence en améliorant les performances de temps au premier octet (TTFB). En effet, vous pouvez renvoyer des réponses partielles au client dès qu'elles sont disponibles. En outre, les fonctions de diffusion des réponses peuvent renvoyer des données utiles allant jusqu’à 200 Mo, contre un maximum de 6 Mo pour les réponses mises en mémoire tampon. La diffusion d'une réponse signifie également que votre fonction n'a pas besoin de stocker l'intégralité de la réponse en mémoire. Pour les réponses très volumineuses, cela peut réduire la quantité de mémoire que vous devez configurer pour votre fonction.

Note

Le streaming des réponses Lambda n'est pas encore entièrement disponible. Régions AWS Consultez la section AWS Capacités par région du Builder Center pour connaître la disponibilité des fonctionnalités par région.

La vitesse à laquelle Lambda diffuse vos réponses dépend de la taille de la réponse. Le débit de diffusion pour les 6 premiers Mo de réponse de votre fonction n’est pas plafonné. Pour les réponses supérieures à 6 Mo, le reste de la réponse est soumis à une limite de bande passante. Pour plus d'informations sur la bande passante de diffusion, consultez Limitation de la bande passante pour la diffusion des réponses.

Les réponses en streaming entraînent des coûts et les réponses diffusées en continu ne sont ni interrompues ni arrêtées lorsque la connexion du client appelant est interrompue. Les clients seront facturés pour la durée complète des fonctions. Les clients doivent donc faire preuve de prudence lorsqu'ils configurent des délais d'expiration de fonction prolongés.

Lambda prend en charge le streaming des réponses sur les exécutions gérées par Node.js. Pour les autres langages, y compris Python, vous pouvez utiliser un environnement d'exécution personnalisé avec une intégration d'API d'exécution personnalisée pour diffuser les réponses ou utiliser l'adaptateur Web Lambda.

Note

Lorsque vous testez votre fonction via la console Lambda, vous verrez toujours les réponses comme étant mises en mémoire tampon.

Limitation de la bande passante pour la diffusion des réponses

Les 6 premiers Mo des données utiles de la réponse de votre fonction disposent d’une bande passante non plafonnée. Après cette première rafale, Lambda diffuse votre réponse à un débit maximum de 2. MBps Si les réponses de votre fonction ne dépassent jamais 6 Mo, cette limite de bande passante ne s’applique pas.

Note

Les limites de bande passante s'appliquent uniquement à la charge utile de la réponse de votre fonction, et non à l'accès au réseau par votre fonction.

Le débit de bande passante non plafonnée varie en fonction d'un certain nombre de facteurs, notamment la vitesse de traitement de votre fonction. Vous pouvez normalement vous attendre à un débit supérieur à 2 MBps pour les 6 premiers Mo de réponse de votre fonction. Si votre fonction diffuse une réponse vers une destination située à l'extérieur AWS, le débit de diffusion dépend également de la vitesse de la connexion Internet externe.

Compatibilité du VPC avec la diffusion en continu de réponses

Lorsque vous utilisez des fonctions Lambda dans un environnement VPC, la diffusion en continu des réponses doit tenir compte de certaines considérations importantes :

  • La fonction Lambda ne prend URLs pas en charge le streaming des réponses dans un environnement VPC.

  • Vous pouvez utiliser le streaming de réponses au sein d'un VPC en appelant votre fonction Lambda via le SDK à l'aide de l' AWS API. InvokeWithResponseStream Pour cela, vous devez configurer les points de terminaison VPC appropriés pour Lambda.

  • Pour les environnements VPC, vous devez créer un point de terminaison de VPC d’interface pour Lambda afin de permettre la communication entre vos ressources dans le VPC et dans le service Lambda.

Une architecture typique pour la diffusion en continu des réponses dans un VPC peut inclure :

Client in VPC -> Interface VPC endpoint for Lambda -> Lambda function -> Response streaming back through the same path