Wie behebe ich Gesprächsablauffehler in Amazon Connect?

Lesedauer: 5 Minute
0

Ich möchte Gesprächsabläufe untersuchen, um herauszufinden, welcher Block innerhalb des Gesprächsablaufs auf den Fehlerzweig folgt.

Kurzbeschreibung

Ein Tutorial zur Behebung von Gesprächsablauffehlern finden Sie im Workshop zum Beheben von Gesprächsablauffehlern in Amazon Connect.

Um Gesprächsabläufe zu untersuchen und Probleme zu beheben, müssen Sie die folgenden Voraussetzungen erfüllen:

Gesprächsablaufprotokolle

Schalten Sie Ablauf-Protokolle ein. Verwenden Sie Gesprächsablaufprotokolle, um zu verstehen, wie ein Anruf die verschiedenen Blöcke des Gesprächsablaufs durchläuft. Verwenden Sie außerdem Gesprächsablaufprotokolle, um Fehler zu beheben und herauszufinden, wo Fehler auftreten.

Gesprächsablaufexporte

Informationen zum Exportieren von Ablauf-Anweisungen finden Sie unter Importieren/Exportieren von Abläufen.

Verwenden Sie die Exporte, um die Gesprächsabläufe besser zu verstehen:

  • Sehen Sie, wie der Anruf durch den Ablauf übertragen wird.
  • Korrelieren Sie die Gesprächsablaufprotokolle.
  • Reproduzieren Sie das Problem in einer Sandbox-Umgebung.

Amazon CloudWatch-Metriken für Amazon Connect

Weitere Informationen finden Sie unter Überwachen Ihrer Instance mit CloudWatch.

Verwenden Sie die Metriken ContactFlowErrors und ContactFlowFatalError, um Ereignisse im Zusammenhang mit Gesprächsabläufen zu überwachen und zu beheben:

  • Die Metrik ContactFlowFatalError gibt an, wie oft ein Ablauf aufgrund eines Systemfehlers nicht ausgeführt werden konnte. Zum Beispiel ein Amazon Connect-Ausfall.
  • Die Metrik ContactFlowErrors gibt an, wie oft der Fehlerzweig für einen Gesprächsablauf ausgeführt wird.

Um Gesprächsablauffehler zu beheben, fragen Sie Ihre CloudWatch Logs Insights ab, um zu ermitteln, welcher Block im Gesprächsablauf auf den Fehlerzweig folgt. Verwenden Sie dann den Block, um die Grundursache des Fehlers zu identifizieren.

Lösung

Führen Sie zunächst eine Abfrage aus, um die zugehörigen Fehlerereignisse zu sehen:

1.    Öffnen Sie die Amazon-CloudWatch-Konsole.

2.    Wählen Sie Protokolleinblicke im Navigationsbereich aus.

3.    Wählen Sie den Namen der Protokollgruppe für Ihre Amazon Connect-Instance-Protokolle aus. Das Format ist /aws/connect/yourinstancename.

4.    Geben Sie in der oberen rechten Ecke eine Zeitskala für die Abfrage an.

5.    Führen Sie 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ühren Sie die folgende Abfrage für eine bestimmte Kontakt-ID aus:

Hinweis: Ersetzen Sie den Wert für KontaktID durch Ihre Kontakt-ID.

fields @timestamp, @message
| sort @timestamp desc
| filter ContactID = "162faf0b-4e68-4a4b-bbde-96c9631f2a95"

Lesen Sie anschließend die folgenden Ressourcen, um den Gesprächsablauffehler zu beheben:

  • CloudWatch-Alarm-Konfigurationsdetails, um zu identifizieren, welche Metrik (ContactFlowErrors oder ContactFlowFatalError) den Alarm und die zugehörigen Gesprächsabläufe des Alarms konfiguriert hat. Wenn die Metrik ContactFlowFatalError lautet, könnte dies ein Serviceproblem sein, da der Ablauf aufgrund eines Systemfehlers nicht ausgeführt werden konnte. Wenn die Metrik, die den Alarm konfiguriert, ContactFlowErrors lautet, bedeutet dies, dass ein Gesprächsblock den Fehlerzweig entlang geleitet wurde.
  • Protokolle, die sich auf den betroffenen Gesprächsablauf beziehen, um zu ermitteln, welcher Block den Fehler verursacht hat. Weitere Informationen zu Ablaufsblöcken finden Sie unter Ablaufsblock-Definitionen.

Manchmal führen Gesprächsablaufblöcke zu Fehlern in CloudWatch, aber sie haben keine entsprechenden CloudWatch-Protokolle. Eine Tabelle mit häufig verwendeten Gesprächsblöcken finden Sie im Anhang des Workshops zur Behebung von Gesprächsablauffehlern in Amazon Connect.

AWS-Lambda-Fehler in Gesprächsabläufen

Die häufigsten Fehler im Gesprächsablauf treten beim Block Aufrufen der Lambda-Funktion auf. Dieser Gesprächsablauf-Block ruft AWS Lambda auf und gibt optional Schlüssel-Wert-Paare zurück, die Sie zum Festlegen von Kontaktattributen verwenden können.

Führen Sie 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 wie folgt 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 ContactFlowModule-Typ von InvokeExternalResource bezieht sich auf eine Lambda-Funktion, den Gesprächsablaufnamen und einen Fehler. Finden Sie die betroffene Lambda-Funktion. Korrelieren Sie dann die Zeitstempel oder die Kontakt-ID, um das genaue Ereignis, das den Fehler verursacht hat, in den Lambda-Ausführungsprotokollen zu ermitteln.

Ausnahmen für verweigerten Zugriff Im Folgenden finden Sie ein Beispiel für einen Fehler in den Gesprächsablaufprotokollen, den der Block InvokeExternalResource 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 „Zugriff verweigert“ weist darauf hin, dass der Gesprächsablauf keinen Zugriff hat, um die Lambda-Funktion aufzurufen. Eine ausführliche Anleitung zum Hinzufügen einer Funktion zur Instance finden Sie unter Hinzufügen einer Lambda-Funktion zu Ihrer Amazon Connect-Instance.

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, verwenden Sie die ContactId, um die Gesprächsablaufprotokolle und die Ausführungsprotokolle der Lambda-Funktion zu korrelieren. Wenn die Funktion das Aufrufereignis nicht druckt, verwenden Sie den Zeitstempel in den Gesprächsablaufprotokollen, um die Ausführungsprotokolle der Lambda-Funktion zu filtern.

Wenn der Block Aufrufen der Lambda-Funktion einen Fehler zurückgibt, es aber keinen entsprechenden Eintrag in den Lambda-Funktionen gibt, überprüfen Sie die folgenden Konfigurationen:

  • Die Lambda-Payload könnte NULL sein.
  • Die von der Funktion zurückgegebene Ausgabe muss ein flaches Objekt aus Schlüssel- und Wertepaaren sein, dessen Werte alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.
  • Die Antwort der Lambda-Funktion ist keine einfache Zeichenkettenzuordnung, oder die Antwort ist größer als 32 k. Es ist eine bewährte Methode, die von Ihrer Lambda-Funktion zurückgegebene Ausgabe zu testen, um sicherzustellen, dass die Funktionen korrekt verwendet werden, wenn sie an Amazon Connect zurückgegeben werden.

Ein Gesprächsablauffehler kann aufgrund mehrerer Blöcke auftreten. Weitere Informationen zu Blöcken und Fehlerursachen finden Sie im Anhang des Workshops zur Behebung von Gesprächsablauffehlern in Amazon Connect.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr