

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 canal pour la messagerie du SDK Amazon Chime
<a name="processor-setup"></a>

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.

**Conditions préalables**
+ 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](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) 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, voir [AWS Lambda run role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) 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 le`ChannelFlowCallback API`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chime:ChannelFlowCallback"
            ],
            "Resource": [
            "arn:aws:chime:us-east-1:111122223333:appInstance/*"
            ]
        }
    ]
}
```

------

**Note**  
Suivez les meilleures pratiques relatives aux fonctions Lambda. Pour plus d'informations, consultez les rubriques suivantes :   
[Meilleures pratiques en matière d'efficacité des performances](https://docs.aws.amazon.com/whitepapers/latest/serverless-architectures-lambda/performance-efficiency-best-practices.html) 
[Bonnes pratiques pour travailler avec AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
[Configuration de la simultanéité réservée](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html#configuration-concurrency-reserved)
[invocation asynchrone](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)

**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  
*ChannelArn*L'ARN du canal  
*Contenu* du message à traiter  
*CreatedTimestamp*Heure à laquelle le message a été créé  
*LastEditedTimestamp*Heure à laquelle un message a été modifié  
*MessageId*L'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](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_Identity.html).  
*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'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelFlowCallback.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelFlowCallback.html)API génère un message d'erreur Forbidden Exception. Pour renvoyer les résultats, appelez l'`ChannelFlowCallback`API.