Comment résoudre les problèmes liés aux échecs de la fonction Lambda dans un flux de contact Amazon Connect ?

Dernière mise à jour : 24/08/2021

La fonction AWS Lambda que j'ai ajoutée à mon instance Amazon Connect ne parvient pas à appeler lorsque mon flux de contact tente d'appeler la fonction. Comment puis-je résoudre ce problème ?

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis AWS Command Line Interface (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Vérifiez que la politique basée sur les ressources de votre fonction Lambda accorde à Amazon Connect l'autorisation d'appeler la fonction

1.    Si ce n'est pas déjà fait, activez la journalisation des flux de contacts pour votre instance Amazon Connect.

2.    Recherchez tous les messages d'erreur AccessDeniedException dans vos journaux de flux de contacts. Cette erreur s'affiche lorsque la politique basée sur les ressources AWS Identity and Access Management (IAM) de votre fonction n'accorde pas à Amazon Connect l'autorisation d'appeler la fonction.

Remarque : vous pouvez également consulter manuellement la politique basée sur les ressources de votre fonction pour voir si elle inclut les autorisations requises. Pour plus d'informations, consultez Utilisation des politiques basées sur les ressources pour AWS Lambda.

Pour ajouter les autorisations requises

Exécutez la commande add-permission d'AWS CLI. Incluez le mandataire connect.amazonaws.com et l'Amazon Resource Name (ARN) de votre instance Amazon Connect.

Pour plus d'informations, consultez la section Créer une fonction Lambda dans le guide de l'administrateur Amazon Connect. Vous pouvez aussi lire la partie Accorder l'accès aux fonctions aux services AWS dans le guide du développeur Lambda.

Exemple de politique basée sur les ressources pour une fonction Lambda qui accorde à Amazon Connect l'autorisation d'appeler la fonction

Important : remplacez <Qualified AWS Lambda ARN> par l'ARN de votre fonction. Remplacez <Amazon Connect ARN> par l'ARN de votre instance Amazon Connect.

{
    "Version": "2012-10-17",
    "Id": "default",
    "Statement": [
        {
            "Sid": "100",
            "Effect": "Allow",
            "Principal": {
              "Service": "connect.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource":  "<Qualified AWS Lambda ARN>",
            "Condition": {
              "ArnLike": {
                "AWS:SourceArn": "<Amazon Connect ARN>"
              }
            }
        }
     ]
}

Vérifiez la réponse de votre fonction Lambda

Suivez les instructions de la section Vérifier la réponse de la fonction du guide de l'administrateur Amazon Connect. Lorsque vous testez la sortie renvoyée par votre fonction Lambda, vérifiez les éléments suivants :

  • La sortie est un objet plat de paires clé-valeur.
  • Les paires clé-valeur comprennent uniquement des caractères alphanumériques, tirets et tirets de soulignement.
  • L'objet n'est ni imbriqué ni complexe.
  • La taille des données renvoyées est inférieure à 32 Ko de données UTF-8.

Vérifiez que le paramètre « Timeout » (Délai d'attente) de votre fonction Lambda accorde une durée suffisamment longue pour permettre à votre fonction d'invoquer

Si votre fonction n'invoque pas dans le délai défini dans le paramètre Timeout (Délai d'attente ), le contact achemine la branche Error (Erreur) du bloc de contacts Invoquer la fonction AWS Lambda. Le paramètre de Timeout (Délai d'attente) par défaut est de 3 secondes. Le paramètre de Timeout (Délai d'attente) maximum est de 8 secondes.

Pour savoir combien de temps l'appel de votre fonction prend, consultez les métriques de Duration (Durée) de votre fonction dans Amazon CloudWatch.

Pour consulter et modifier le paramètre Timeout (Délai d'attente) de votre fonction Lambda, consultez Bloc de contact : Invoquer la fonction AWS Lambda.

Remarque : pour inclure des fonctions Lambda dans votre flux de contact qui prennent plus de 8 secondes à appeler, utilisez des fonctions Lambda asynchrones avec Amazon Connect.

Si vous appelez plusieurs fonctions Lambda, assurez-vous que la durée de la séquence de fonctions est inférieure à 20 secondes

Amazon Connect limite la durée d'une séquence de fonctions Lambda à 20 secondes. Pour invoquer plusieurs fonctions qui durent plus de 20 secondes, vous pouvez ajouter un bloc de contact d'invite de lecture entre chacune des fonctions.

Pour plus d'informations, consultez la section Lambda de Bonnes pratiques avec Amazon Connect dans le guide de l'administrateur Amazon Connect.

Identifiez et résolvez toute autre erreur qui cause l'échec de votre fonction


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?