Configuration d'un processeur de canaux - Kit SDK Amazon Chime

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'un processeur de canaux

Pour commencer à utiliser les flux de canaux, vous devez d'abord créer une fonction Lambda du processeur pour gérer le prétraitement adapté à votre cas d'utilisation. Par exemple, vous pouvez mettre à jour le contenu ou les métadonnées des messages, refuser des messages et empêcher leur envoi, ou laisser passer le message d'origine.

Prérequis
  • La fonction Lambda doit se trouver dans le même AWS compte et dans les mêmes AWS régions que le. AppInstance

Octroi d'autorisations d'invocation

Vous devez autoriser le service de messagerie du SDK Amazon Chime à appeler votre ressource Lambda. Pour plus d'informations sur les autorisations, reportez-vous à la section Utilisation de politiques basées sur les ressources pour. AWS Lambda Par exemple :

Principal : « messaging.chime.amazonaws.com »

Action : Lambda : InvokeFunction

Effet : Autoriser

AWS SourceAccount : Votre AWS AccountId.

AWS SourceArn : "arn:aws:chime:region:AWS AccountId: appInstance/"

Note

Vous pouvez fournir un ID d'instance d'application spécifique pour appeler votre processeur, ou utiliser un caractère générique pour autoriser toutes les instances d'application Amazon Chime SDK d'un compte à appeler votre processeur.

Octroi d'autorisations de rappel

Vous devez également autoriser les fonctions Lambda de votre processeur à appeler l'ChannelFlowCallbackAPI. Pour plus d'informations à ce sujet, voir AWS Lambda run role dans le guide du AWS Lambda développeur.

Vous pouvez ajouter une politique intégrée au rôle d'exécution de votre fonction Lambda. Cet exemple permet au processeur d'invoquer leChannelFlowCallback API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "chime:ChannelFlowCallback" ], "Resource": [ "arn:aws:chime:Region:AwsAccountId:appInstance/*" ] } ] }
Note

Suivez les meilleures pratiques relatives aux fonctions Lambda. Pour plus d'informations, consultez les rubriques suivantes :

Invocation des fonctions Lambda du processeur

Lorsqu'un utilisateur envoie un message, la demande d'entrée suivante invoque la fonction Lambda du processeur.

{ "EventType": "string" "CallbackId": "string" "ChannelMessage": { "MessageId": "string", "ChannelArn": "string", "Content": "string", "Metadata": "string", "Sender":{ "Arn": "string", "Name": "string" }, "Persistence": "string", "LastEditedTimestamp": "string", "Type": "string", "CreatedTimestamp": "string", } }
EventType

L'événement envoyé au processeur. La valeur est une CHANNEL_MESSAGE_EVENT constante.

CallbackId

Le jeton utilisé lors de l'appel de ChannelFlowCallback l'API depuis le processeur.

ChannelMessage

ChannelArnL'ARN du canal

Contenu du message à traiter

CreatedTimestampHeure à laquelle le message a été créé

LastEditedTimestampHeure à laquelle un message a été modifié

MessageIdL'identifiant du message

Métadonnées Métadonnées des messages à traiter

Booléen de persistance qui contrôle si le message est conservé sur le back-end. Valeurs valides : PERSISTENT | NON_PERSISTENT

Expéditeur L'expéditeur du message. Type : un identityobjet.

Type Le type de message. ChannelFlowne prend en charge que les types de STANDARD messages. Valeur valide : STANDARD

La fonction du processeur détermine ce qui suit à propos de chaque message.

  • S'il faut mettre à jour le contenu du message, les métadonnées ou les deux

  • Refuser ou non un message

  • S'il faut laisser un message inchangé

Une fois le traitement terminé, la fonction Lambda du processeur renvoie le résultat au service de messagerie Amazon Chime SDK afin que le message puisse être envoyé à tous les destinataires. L'état du message est marqué PENDING jusqu'à ce que la fonction Lambda du processeur renvoie les résultats. La fonction Lambda du processeur dispose de 48 heures pour renvoyer les résultats. Nous ne garantissons pas la livraison des messages après cela, et l'ChannelFlowCallbackAPI génère un message d'erreur Forbidden Exception. Pour renvoyer les résultats, appelez l'ChannelFlowCallbackAPI.