Modes d'appel Lambda
L'API Invoke peut être appelée selon deux modes : le mode événement et le mode demande-réponse.
-
Le mode événement place en file d'attente la charge utile pour un appel asynchrone.
-
Le mode demande-réponse appelle de manière synchrone la fonction avec la charge utile fournie et renvoie une réponse immédiatement.
Dans les deux cas, l'exécution de la fonction est toujours effectuée dans un environnement d'exécution Lambda, mais la charge utile emprunte des chemins différents. Pour en savoir plus, consultez la section « Environnements d'exécution Lambda » dans ce document.
Vous pouvez également utiliser d'autres services AWS qui effectuent des appels en votre nom. Le mode d'appel utilisé dépend du service AWS que vous utilisez et de la façon dont il est configuré. Pour en savoir plus sur la façon dont les autres services AWS s'intègrent à Lambda, consultez Utilisation d'AWS Lambda avec d'autres services.
Lorsque Lambda reçoit un appel demande-réponse, celui-ci est transmis directement au service d'appel. Si le service d'appel n'est pas disponible, les appelants peuvent temporairement placer en file d'attente la charge utile côté client afin de retenter l'appel un certain nombre de fois. Si le service d'appel reçoit la charge utile, il tente alors d'identifier un environnement d'exécution disponible pour la demande, puis transmet la charge utile à cet environnement d'exécution afin de terminer l'appel. S'il n'existe aucun environnement d'exécution ou qu'aucun n'est approprié, il en sera créé un de manière dynamique en réponse à la demande. Pendant le transit, les charges utiles d'appel envoyées au service d'appel sont sécurisées à l'aide du protocole TLS 1.2+. Le trafic au sein du service Lambda (depuis l'équilibreur de charge vers le bas) passe par un cloud privé virtuel (VPC) interne isolé, détenu par le service Lambda, au sein de la région AWS à laquelle la demande a été envoyée.

Figure 2 – Modèle d'appel selon le mode AWS Lambdademande-réponse
Les charges utiles du mode d'appel événement sont toujours placées en file d'attente pour être traitées avant l'appel. Toutes les charges utiles sont placées, à des fins de traitement, dans une file d'attente Amazon Simple Queue Service
Les événements en file d'attente sont récupérés par lots par la flotte d'interrogateurs de Lambda. La flotte d'interrogateurs est un groupe d'instances EC2 dont le but est de traiter les appels en mode événement en file d'attente qui n'ont pas encore été traités. Lorsque la flotte d'interrogateurs récupère un événement en file d'attente qu'elle doit traiter, elle le fait en le transmettant au service d'appel, comme le ferait un client dans le cas d'un appel en mode demande-réponse.
Si l'appel ne peut pas être effectué, la flotte d'interrogateurs stocke temporairement l'événement, en mémoire, sur l'hôte jusqu'à ce qu'elle soit en mesure de terminer l'exécution ou jusqu'à ce que le nombre de tentatives d'exécution soit dépassé. Aucune donnée de charge utile n'est jamais écrite sur le disque de la flotte d'interrogateurs à proprement parler. La flotte d'interrogateurs peut être affectée à tous les clients AWS, ce qui permet de réduire le délai d'appel au maximum. Pour en savoir plus sur les services susceptibles d'accepter le mode d'appel événement, consultez la section Utilisation d'AWS Lambda avec d'autres services.