-1

Ma fonction AWS Lambda intégrée à l'URL de requête AWS API-Gateway expire à chaque première requête, mais elle fonctionne pour la demande suivante.La fonction AWS Lambda expire à la première invocation, fonctionne sur la deuxième invocation

Remarque: Nous avons également essayé de conserver les Lambdas au chaud en les planifiant dans CloudWatch, mais cela n'a pas fonctionné.

+3

Bien que Lambda puisse expirer lors de la première invocation de * votre * fonction Lambda, ce n'est généralement pas le cas. Quel est votre délai d'attente configuré? Quel langage de programmation utilisez-vous? Que fait réellement votre fonction Lambda lorsqu'elle est invoquée? Télécharge-t-il des fichiers volumineux au démarrage, par exemple? – jarmod

+1

Nous avons besoin de voir votre gestionnaire afin de vous aider. Pouvez-vous inclure cela dans votre question? – dashmug

+0

Salut @jarmod mon problème réel est avec la passerelle API avec Get requête quand mon lambda est intégré à API Gateway et appelé en dehors d'AWS (comme iPad Client) le problème de délai ci-dessus se passe, il n'y a pas de problème avec ma fonction Lambda => Quel est votre délai d'attente configuré? = Pour Lambda son 5min mais pour la passerelle API son 30sec fixe. => Quel langage de programmation utilisez-vous? => Python => Ma fonction lambda appellera une API Google pour apporter des informations et les convertir et les renvoyer sous forme de JSON. Il appelle également d'autres fonctions Lambda en interne. => Est-ce qu'il télécharge des fichiers volumineux au démarrage = Non –

Répondre

1

C'est le problème avec le démarrage à froid.

Vous pouvez faire quelques-unes des suivantes pour améliorer la vitesse de démarrage à froid,

Si vous en utilisant Node.js,

Webpack:

pack tous les modules qui sont dans des fichiers séparés dans un seul fichier.

Si vous utilisez d'autres langues,

Nombre de fichiers:

Conserver le nombre de fichiers en moins nombre

LazyLoad:

Ne pas charger tout frontale, chargement paresseux ou modules de charge en cas de besoin.

Espérons que ça aide.

1

Sans trop savoir au sujet de votre cas d'utilisation spécifique, voici deux suggestions générales:

  1. Augmenter la mémoire allouée à vos fonctions, ce qui augmente également proportionnellement CPU. Parce que vos fonctions sont appelées très rarement, le coût supplémentaire de l'augmentation de la taille de la mémoire sera compensé par des temps de démarrage à froid plus rapides et par conséquent une durée facturée moins élevée. Réduisez la taille de votre code: un .zip plus petit, en supprimant les require() inutiles dans Node.js, etc. Par exemple, si vous incluez la bibliothèque Async juste pour supprimer un callback imbriqué, renoncez à améliorer les performances.

Référez-vous à https://forums.aws.amazon.com/thread.jspa?threadID=181348 pour plus d'options.

+0

Nous avons fait avec une première suggestion pour augmenter la taille de la mémoire, mais pas de chance. Je dois vérifier le code une fois et supprimer les fichiers inutiles ** Note **: Im ayant un problème avec API-Gateway où il est intégré à la fonction lambda et appelé en dehors d'AWS comme les applications client IOS –