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

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 |
---|---|
|
Attribute, die mit dem Ereignis verknüpft sind. |
|
Ursprünglicher Inhalt der Nachricht. |
|
Die Nachrichten-ID. Generiert von IVS Chat. |
|
Der ARN des Raums, an den Nachrichten gesendet werden. |
|
Informationen zum Absender. Dieses Objekt hat mehrere Felder:
|
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 |
---|---|
|
Attribute, die mit der Nachricht verknüpft sind, die von der Lambda-Funktion zurückgegeben wird. Wenn
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.)
|
|
Inhalt der von der Lambda-Funktion zurückgegebenen Nachricht. Er kann je nach Geschäftslogik bearbeitet oder original sein.
|
|
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.
|
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.