IVS-Chat-Nachrichtenüberprüfungs-Handler - Amazon IVS

IVS-Chat-Nachrichtenüberprüfungs-Handler

Ein Nachrichtenrezension-Handler ermöglicht es Ihnen, Nachrichten zu überprüfen und/oder zu ändern, bevor sie an einen Raum geliefert werden. Wenn ein Nachrichtenrezension-Handler mit einem Raum verknüpft ist, wird er für jede SendMessage-Anforderung an diesen Raum aufgerufen. Der Handler erzwingt die Geschäftslogik Ihrer Anwendung und bestimmt, ob eine Nachricht zugelassen, verweigert oder geändert werden soll. Amazon IVS Chat unterstützt AWS-Lambda-Funktionen als Handler.

Erstellen einer Lambda-Funktion

Bevor Sie einen Nachrichtenrezension-Handler für einen Raum einrichten, müssen Sie eine Lambda-Funktion mit einer ressourcenbasierten IAM-Richtlinie erstellen. Die Lambda-Funktion muss sich im selben AWS-Konto und in derselben AWS-Region befinden wie der Raum, mit dem Sie die Funktion verwenden. Die ressourcenbasierte Richtlinie gibt Amazon IVS Chat die Berechtigung zum Aufrufen Ihrer Lambda-Funktion. Anweisungen finden Sie unter Ressourcenbasierte Richtlinie für Amazon IVS Chat.

Workflow

Workflow zum Erstellen einer Lambda-Funktion mit einer ressourcenbasierten IAM-Richtlinie.

Anforderungssyntax

Wenn ein Client eine Nachricht sendet, ruft Amazon IVS Chat die Lambda-Funktion mit einer JSON-Nutzlast auf:

{ "Content": "string", "MessageId": "string", "RoomArn": "string", "Attributes": {"string": "string"}, "Sender": { "Attributes": { "string": "string" }, "UserId": "string", "Ip": "string" } }

Anforderungstext

Feld Beschreibung

Attributes

Attribute, die mit dem Ereignis verknüpft sind.

Content

Ursprünglicher Inhalt der Nachricht.

MessageId

Die Nachrichten-ID. Generiert von IVS Chat.

RoomArn

Der ARN des Raums, an den Nachrichten gesendet werden.

Sender

Informationen zum Absender. Dieses Objekt hat mehrere Felder:

  • Attributes – Metadaten über den Absender, die während der Authentifizierung erstellt wurden. Diese können verwendet werden, um dem Kunden weitere Informationen über den Absender zu geben, z. B. Avatar-URL, Badges, Schriftart und Farbe.

  • UserId – Eine anwendungsspezifische Kennung des Betrachters (Endbenutzers), der diese Nachricht gesendet hat. Diese kann von der Clientanwendung verwendet werden, um entweder in der Messaging-API oder in den Anwendungsdomänen auf den Benutzer zu verweisen.

  • Ip – Die IP-Adresse des Clients, der die Nachricht sendet.

Antwortsyntax

Die Handler-Lambda-Funktion muss eine JSON-Antwort mit der folgenden Syntax zurückgeben. Antworten, die nicht der folgenden Syntax entsprechen oder die Feldeinschränkungen nicht erfüllen, sind ungültig. In diesem Fall wird die Nachricht je nach FallbackResult-Wert, den Sie in Ihrem Nachrichtenrezension-Handler angeben, zugelassen oder abgelehnt; siehe MessageReviewHandler in der Amazon-IVS-Chat-API-Referenz.

{ "Content": "string", "ReviewResult": "string", "Attributes": {"string": "string"}, }

Antwortfelder

Feld Beschreibung

Attributes

Attribute, die mit der Nachricht verknüpft sind, die von der Lambda-Funktion zurückgegeben wird.

Wenn ReviewResult eine DENY ist, kann in Attributes ein Reason angegeben werden; z. B.:

"Attributes": {"Reason": "denied for moderation

In diesem Fall erhält der Absenderclient einen WebSocket 406-Fehler mit dem Grund in der Fehlermeldung. (Siehe WebSocket-Fehler in der Amazon-IVS-Chat-Messaging-API-Referenz.)

  • Größenbeschränkungen: Maximal 1 KB

  • Erforderlich: Nein

Content

Inhalt der von der Lambda-Funktion zurückgegebenen Nachricht. Er kann je nach Geschäftslogik bearbeitet oder original sein.

  • Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Die maximale Länge der MaximumMessageLength, die Sie definiert haben, als Sie den Raum erstellt/aktualisiert haben. Weitere Informationen finden Sie in der Amazon-IVS-Chat-API-Referenz. Dies gilt nur, wenn ReviewResult ALLOW ist.

  • Erforderlich: Ja

ReviewResult

Das Ergebnis der Überprüfungsverarbeitung zum Umgang mit der Nachricht. Falls zugelassen, wird die Nachricht an alle mit dem Raum verknüpften Benutzer übermittelt. Falls verweigert, wird die Nachricht an keinen Benutzer zugestellt.

  • Zulässige Werte: ALLOW | DENY

  • Erforderlich: Ja

Beispiel-Code

Unten ist ein Beispiel für Lambda-Handler in Go. Dabei wird der Nachrichteninhalt geändert, die Nachrichtenattribute werden unverändert beibehalten und die Nachricht wird zugelassen.

package main import ( "context" "github.com/aws/aws-lambda-go/lambda" ) type Request struct { MessageId string Content string Attributes map[string]string RoomArn string Sender Sender } type Response struct { ReviewResult string Content string Attributes map[string]string } type Sender struct { UserId string Ip string Attributes map[string]string } func main() { lambda.Start(HandleRequest) } func HandleRequest(ctx context.Context, request Request) (Response, error) { content := request.Content + "modified by the lambda handler" return Response{ ReviewResult: "ALLOW", Content: content, }, nil }

Verknüpfen und Trennen eines Handlers mit/von einem Raum

Sobald Sie den Lambda-Handler eingerichtet und implementiert haben, verwenden Sie die Amazon-IVS-Chat-API:

  • Um den Handler einem Raum zuzuordnen, rufen Sie CreateRoom oder UpdateRoom auf und geben Sie den Handler an.

  • Um den Handler von einem Raum zu trennen, rufen Sie UpdateRoom mit einem leeren Wert für MessageReviewHandler.Uri auf.

Überwachung von Fehlern mit Amazon CloudWatch

Sie können Fehler bei der Nachrichtenüberprüfung mit Amazon CloudWatch überwachen und Alarme oder Dashboards erstellen, um die Änderungen bestimmter Fehler anzuzeigen oder darauf zu reagieren. Wenn ein Fehler auftritt, wird die Nachricht je nach FallbackResult-Wert, den Sie angeben, wenn Sie den Handler einem Raum zuordnen, zugelassen oder verweigert; siehe MessageReviewHandler in der Amazon-IVS-Chat-API-Referenz.

Es gibt mehrere Arten von Fehlern:

  • InvocationErrors treten auf, wenn Amazon IVS Chat einen Handler nicht aufrufen kann.

  • ResponseValidationErrors treten auf, wenn ein Handler eine ungültige Antwort zurückgibt.

  • AWS-Lambda-Errors treten auf, wenn ein Lambda-Handler einen Funktionsfehler zurückgibt, wenn er aufgerufen wurde.

Weitere Informationen zu Aufruffehlern und Fehlern bei der Antwortvalidierung (ausgegeben von Amazon IVS Chat) finden Sie in den Amazon-IVS-Chat-Informationen unter Überwachen von Amazon-IVS-Streaming mit niedriger Latenz. Weitere Informationen zu AWS Lambda-Fehlern finden Sie unter Arbeiten mit Lambda-Metriken.