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.
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 :
Your 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'ChannelFlowCallback
API. Pour plus d'informations à ce sujet, consultez la section 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 identity objet.
Type Le type de message. ChannelFlow ne 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 par la suite, et ChannelFlowCallbackL'API génère un message d'erreur Forbidden Exception. Pour renvoyer les résultats, appelez l'ChannelFlowCallback
API.