Direkt zum Inhalt

Wie behebe ich Gesprächsablauffehler in Amazon Connect?

Lesedauer: 4 Minute
0

Ich möchte Gesprächsablauffehler in Amazon Connect beheben.

Lösung

Gesprächsablaufprotokolle aktivieren

Aktiviere Ablaufprotokolle. Verwende Gesprächsablaufprotokolle, um zu verstehen, wie ein Anruf die verschiedenen Blöcke des Gesprächsablaufs durchläuft. Außerdem kannst du Gesprächsablaufprotokolle verwenden, um Fehler zu beheben und zu isolieren.

Exportiere deine Abläufe, um zu sehen, wie der Anruf den Ablauf durchläuft, um Gesprächsablaufprotokolle zu korrelieren oder das Problem in einer Sandbox-Umgebung zu reproduzieren.

Den Gesprächsablauffehler identifizieren

Verwende die Amazon-CloudWatch-Metriken ContactFlowErrors und ContactFlowFatalError, um Gesprächsablauffehler zu überwachen und zu identifizieren.

Gehe wie folgt vor, um fehlerbezogene Ereignisse zu finden:

  1. Öffne die CloudWatch-Konsole.
  2. Wähle im Navigationsbereich unter Logs (Protokolle) die Option Log Insights (Einblicke protokollieren) aus.
  3. Wähle den Namen der Protokollgruppe für deine Amazon-Connect-Instance-Protokolle aus. Das Format ist /aws/connect/yourinstancename.
  4. Gib in der oberen rechten Ecke eine Abfragezeitskala an.
  5. Führe die folgende Abfrage für einen bestimmten Zeitraum aus:
    fields @timestamp, @message| filter @message like 'Results'
    | parse @message '"Results":"*","ContactId":"*","ContactFlowId":"*","ContactFlowName":"*","ContactFlowModuleType":"*"' as Results, ContactId, ContactFlowId, ContactFlowName, BlockType
    | filter Results like 'rror' or Results like 'ailed' or Results like 'imeout' or Results like 'xception' or Results like 'No prompt provided' or Results like 'Instance has reached concurrent Lambda thread access limit' or Results like 'nsupported' or Results like 'nvalid' or Results like 'not found' or Results like 'execution limit reached'
    | sort @timestamp asc
    | display Timestamp, Results, ContactId, ContactFlowId, ContactFlowName, BlockType
    -oder-
    Führe die folgende Abfrage für eine bestimmte Kontakt-ID aus:
    fields @timestamp, @message| sort @timestamp desc
    | filter ContactId = "162faf0b-4e68-4a4b-bbde-96c9631f2a95"
    Hinweis: Ersetze den Wert für ContactId durch deine Kontakt-ID.

Um den Gesprächsablauffehler zu beheben, überprüfe die Konfigurationsdetails des CloudWatch-Alarms. Ermittle, ob du die Metrik ContactFlowErrors oder ContactFlowFatalError verwendet hast, um den Alarm und die damit verbundenen Gesprächsabläufe zu konfigurieren.

Wenn die Alarmmetrik ContactFlowFatalError ist, könnte es sich beim Fehler um ein Serviceproblem handeln, da der Ablauf aufgrund eines Systemfehlers nicht ausgeführt werden konnte. Wenn die Alarmmetrik ContactFlowErrors ist, bedeutet dies, dass Amazon Connect einen Kontaktblock in den Fehlerzweig geleitet hat.

Überprüfe dann die Protokolle, die sich auf den betroffenen Gesprächsablauf beziehen, um den Block zu identifizieren, der den Fehler verursacht hat. Weitere Informationen zu Ablaufblöcken findest du unter Ablaufblock-Definitionen im Ablauf-Designer in Amazon Connect.

Hinweis: Gesprächsablaufblöcke können zu Fehlern in CloudWatch führen, aber kein entsprechendes CloudWatch-Protokoll erzeugen.

Behebung von Lambda-Fehlern in Gesprächsabläufen

Der Block Invoke Lambda Function (Lambda-Funktion aufrufen) ruft AWS Lambda auf und gibt optional Schlüssel-Wert-Paare zurück, die du zum Festlegen von Kontaktattributen verwenden kannst. Dieser Block kann zu Gesprächsablauffehlern führen.

Führe die folgende Abfrage in CloudWatch Logs Insights aus, um Lambda-Funktionsfehler zu untersuchen:

fields @timestamp, @message| sort @timestamp desc
| filter Results LIKE "Error"

Die Ausgabe sieht ähnlich wie die folgende aus:

{
    "Results": "The Lambda Function Returned an Error.",
    "ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
    "ContactFlowId": "contact-flow-id",
    "ContactFlowName": "chat",
    "ContactFlowModuleType": "InvokeExternalResource",
    "Timestamp": "2023-12-20T14:14:13.794Z",
    "Parameters": {
        "FunctionARN": "arn:aws:lambda:us-west-2:1099999:function:Connect-Wallboard-Historical-Metrics",
    },
    "TimeLimit": "3000"
}

Der betroffene ContactFlowModuletype von InvokeExternalResource bezieht sich auf eine Lambda-Funktion, einen Gesprächsablaufnamen und einen Fehler. Finde die betroffene Lambda-Funktion. Korreliere dann die Zeitstempel oder die Kontakt-ID, um das genaue Ereignis abzurufen, das den Fehler in den Lambda-Ausführungsprotokollen verursacht hat.

Das Folgende ist ein Beispiel für einen Fehler in den Gesprächsablaufprotokollen, den der InvokeExternalResource-Block verursacht:

{
    "Results": "Status Code: 403; Error Code: AccessDeniedException; RequestID: 435c21cc-19d8-4847-864e-e32867fe3a70
    "ContactId": "alebb22a-93c4-4f90-8f22-b3718c4578E0",
    "ContactFlowId": " arn:aws:lambda:us-west-2:1099999/contact-flow/65569e69-5c67-4061-8776-fd1d501c4838",
}

Der Fehler „Access Denied“ bedeutet, dass der Gesprächsablauf keinen Zugriff zum Aufrufen der Lambda-Funktion hat. Informationen zum Hinzufügen einer Funktion zur Instance findest du unter Add a Lambda function to your Amazon Connect instance (Zu deiner Amazon-Connect-Instance eine Lambda-Funktion hinzufügen).

Es gibt keine RequestId, die Amazon-Connect-Protokollnachrichten für Gesprächsabläufe mit Lambda-Ausführungsprotokollen verknüpft. Wenn die Lambda-Funktionen das Aufrufereignis drucken, verwende die ContactId, um die Gesprächsablaufprotokolle und die Ausführungsprotokolle der Lambda-Funktion zu korrelieren. Wenn die Funktion das Aufrufereignis nicht druckt, verwende den Zeitstempel in den Gesprächsablaufprotokollen, um die Ausführungsprotokolle der Lambda-Funktion zu filtern.

Wenn der Block Invoke Lambda Function (Lambda-Funktion aufrufen) einen Fehler zurückgibt, die Lambda-Funktionen jedoch keinen entsprechenden Eintrag enthalten, überprüfe die folgenden Konfigurationen:

  • Die Lambda-Nutzdaten sind möglicherweise NULL.
  • Die von der Funktion zurückgegebene Ausgabe muss ein flaches Objekt aus Schlüssel- und Wertepaaren mit Werten sein, die alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.
  • Die Antwort der Lambda-Funktion ist keine einfache Zeichenfolgenzuordnung, oder die Antwort ist größer als 32 KB. Es hat sich bewährt, die von der Lambda-Funktion zurückgegebene Ausgabe zu testen, um sicherzustellen, dass Amazon Connect Funktionen, die Lambda zurückgibt, korrekt verwendet.

Um Fehler im Gesprächsablauf zu vermeiden, kannst du die native Anrufsimulation von Amazon Connect verwenden, bevor du den Gesprächsablauf in der Produktion bereitstellst.

AWS OFFICIALAktualisiert vor 7 Monaten