

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.

# Utilisation de la messagerie du SDK Amazon Chime
<a name="using-the-messaging-sdk"></a>

Vous utilisez cette section du guide du développeur du SDK Amazon Chime pour créer des applications de messagerie qui s'exécutent sur le service Amazon Chime SDK. Ce SDK fournit les informations conceptuelles et pratiques nécessaires pour créer une application de messagerie de base.

**Topics**
+ [Migration vers l'espace de noms d'identité du SDK Amazon Chime](identity-namespace-migration.md)
+ [Migration vers l'espace de noms de messagerie du SDK Amazon Chime](messaging-namespace-migration.md)
+ [Comprendre les prérequis pour la messagerie du SDK Amazon Chime](messaging-prerequisites.md)
+ [Comprendre les concepts de messagerie du SDK Amazon Chime](messaging-concepts.md)
+ [Comprendre l'architecture de messagerie du SDK Amazon Chime](messaging-architecture.md)
+ [Comprendre les types de messages du SDK Amazon Chime](msg-types.md)
+ [Commencer à utiliser la messagerie du SDK Amazon Chime](getting-started.md)
+ [Comprendre les messages système pour la messagerie du SDK Amazon Chime](system-messages.md)
+ [Exemples de rôles IAM pour la messagerie du SDK Amazon Chime](iam-roles.md)
+ [Comprendre l'autorisation par rôle](auth-by-role.md)
+ [Diffusion de données de messagerie dans la messagerie du SDK Amazon Chime](streaming-export.md)
+ [Utilisation de canaux élastiques pour organiser des événements en direct dans le cadre des réunions du SDK Amazon Chime](elastic-channels.md)
+ [Utilisation des notifications push mobiles pour la messagerie du SDK Amazon Chime afin de recevoir des messages](using-push-notifications.md)
+ [Utilisation de rôles liés à un service pour la messagerie du SDK Amazon Chime](using-roles.md)
+ [Utilisation des flux de canaux pour traiter les messages du SDK Amazon Chime](using-channel-flows.md)
+ [Utilisation en AppInstanceBots tant qu'agents de canaux intelligents pour la messagerie du SDK Amazon Chime](appinstance-bots.md)
+ [Gestion de la rétention des messages pour la messagerie du SDK Amazon Chime](manage-retention.md)
+ [Composants de l'interface utilisateur pour la messagerie du SDK Amazon Chime](ui-components.md)
+ [Intégration de la messagerie du SDK Amazon Chime aux bibliothèques clientes](integrate-client-library.md)
+ [Utilisation de la messagerie du SDK Amazon Chime avec JavaScript](use-javascript.md)

# Migration vers l'espace de noms d'identité du SDK Amazon Chime
<a name="identity-namespace-migration"></a>

L'espace de noms [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) est un espace dédié aux utilisateurs pour créer et gérer les APIs ressources d'identité du SDK Amazon Chime, notamment et. AppInstances AppInstanceUsers Vous utilisez l'espace de noms pour adresser les points de terminaison de l'API d'identité du SDK Amazon Chime dans AWS toutes les régions dans lesquelles ils sont disponibles. Utilisez cet espace de noms si vous commencez tout juste à utiliser le SDK Amazon Chime. Pour plus d'informations sur les régions, reportez-vous [Régions AWS disponibles pour le SDK Amazon Chime](sdk-available-regions.md) à ce guide.

Les applications existantes qui utilisent l'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) doivent prévoir de migrer vers l'espace de noms dédié.

**Topics**
+ [Les raisons de migrer](#identity-migration-reasons)
+ [Avant de procéder à la migration](#id-before-migrating)
+ [Différences entre les espaces de noms](#id-namespace-differences)

## Les raisons de migrer
<a name="identity-migration-reasons"></a>

Nous vous encourageons à migrer vers l'espace de noms [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) pour les raisons suivantes :

**Choix du point de terminaison de l'API**  
[L'espace de noms Amazon Chime SDK Identity est le seul espace de noms d'API capable d'utiliser des points de terminaison d'API dans toutes les régions qui les rendent disponibles.](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html) Si vous souhaitez utiliser des points de terminaison d'API autres que`us-east-1`, vous devez utiliser l'espace de noms Amazon Chime SDK Identity. Pour plus d'informations sur les points de terminaison actuels, reportez-vous [Cartographie des API](migrate-from-chm-namespace.md#name-end-map) à ce guide.

**Messagerie mise à jour et nouvelle APIs**  
Nous ajoutons ou mettons à jour l'identité uniquement APIs dans l'espace de noms Amazon Chime SDK Identity.

## Avant de procéder à la migration
<a name="id-before-migrating"></a>

Avant de procéder à la migration, soyez conscient des différences entre les espaces de noms. Le tableau suivant les répertorie et les décrit.


|  | Espace de noms d'identité du SDK Amazon Chime | Espace de noms Amazon Chime | 
| --- | --- | --- | 
| AWS Espace de noms du SDK | ChimeSDKIdentity | Chime | 
| Régions | Plusieurs | us-east-1 uniquement | 
| Service principal | https://identity.chime.amazonaws.com | https://chime.amazonaws.com | 
| APIs | Uniquement APIs pour l'identité | APIs pour l'identité et d'autres éléments d'Amazon Chime | 
| Expiration des utilisateurs | Disponible | Non disponible | 
| Bots | Disponible | Non disponible | 

## Différences entre les espaces de noms
<a name="id-namespace-differences"></a>

Les sections suivantes expliquent les différences entre les `ChimeSDKIdentity` espaces de noms `Chime` et.

**AWS Espace de noms du SDK**  
L'espace de noms du SDK Amazon Chime utilise le nom officiel. `Chime` L'espace de noms Amazon Chime SDK Identity utilise le nom officiel. `ChimeSDKIdentity` Le format précis du nom varie en fonction de la plateforme.

Par exemple, si vous utilisez le AWS SDK dans Node.js pour créer des identités, vous utilisez une ligne de code pour adresser l'espace de noms.

```
const chimeIdentity = AWS.Chime();
```

Pour migrer vers l'espace de `ChimeSDKIdentity` noms, mettez à jour cette ligne de code avec le nouvel espace de noms et la région du point de terminaison.

```
const chimeIdentity = AWS.ChimeSDKIdentity({ region: "eu-central-1" });
```

**Régions**  
L'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) ne peut adresser que les points de terminaison d'API de la région. `us-east-1` L'espace de noms [Amazon Chime SDK Identity peut adresser](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) les points de terminaison de l'API Amazon Chime SDK Identity dans toutes les régions où ils sont disponibles. Pour obtenir la liste actuelle des régions de points de terminaison, reportez-vous [Régions AWS disponibles pour le SDK Amazon Chime](sdk-available-regions.md) à ce guide.

**Points de terminaison**  
[L'espace de noms [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) utilise des points de terminaison d'API différents de ceux de l'espace de noms Amazon Chime.](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html)

Seul le point de terminaison utilisé pour créer les ressources d'identité peut être utilisé pour les mettre à jour. Cela signifie qu'une AppInstance annonce créée via un point de terminaison ne `eu-central-1` peut être modifiée que via`eu-central-1`. Cela signifie également que vous ne pouvez pas adresser un nom AppInstance créé via l'espace de noms Chime avec l'SDKIdentity espace de noms Chime dans`us-east-1`, ou créer un canal dans une région autre que celle où les membres AppInstance et AppInstanceUser ont été créés. Pour plus d'informations sur les points de terminaison actuels, reportez-vous [Cartographie des API](migrate-from-chm-namespace.md#name-end-map) à ce guide.

**Principal du service**  
L'espace de noms [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) utilise un nouveau principal de service :. `Identity.chime.amazonaws.com` Si vous avez des politiques d'accès SQS, SNS ou IAM qui accordent l'accès au service, vous devez mettre à jour ces politiques pour accorder l'accès au nouveau principal de service.

**APIs**  
L'espace de noms [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) est uniquement APIs destiné à la création et à la gestion des ressources de messagerie, ainsi qu'à l'envoi et à la réception de messages. L'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) inclut APIs d'autres parties du service Amazon Chime ainsi que la messagerie.

**Expiration des utilisateurs**  
Les paramètres d'expiration lors de la création de vous AppInstanceUsers permettent de créer des utilisateurs temporaires. Par exemple, vous pouvez créer des utilisateurs de chat qui n'existent que pendant la durée d'une diffusion importante. Seul l'espace de noms Identity prend en charge les paramètres d'expiration pour AppInstanceUsers.

**Bots**  
Vous utilisez le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_AppInstanceBot.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_AppInstanceBot.html)API pour ajouter des robots de discussion alimentés par Amazon Lex V2 dans vos applications. Vous ne pouvez l'utiliser que AppInstanceBots dans l'espace de noms Identity. Pour plus d'informations sur les robots, reportez-vous [Utilisation en AppInstanceBots tant qu'agents de canaux intelligents pour la messagerie du SDK Amazon Chime](appinstance-bots.md) à ce guide.

**Supplémentaire APIs**  
L'espace de noms Identity contient une liste croissante de noms supplémentaires APIs que l'espace de noms Chime ne possède pas. Si vous commencez à utiliser le SDK Amazon Chime, utilisez l'espace de noms Identity pour accéder à toutes les fonctionnalités les plus récentes. Pour plus d'informations sur la version actuelle APIs, reportez-vous à la section [Identité du SDK Amazon Chime dans le manuel *Amazon Chime* SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) API Reference.

# Migration vers l'espace de noms de messagerie du SDK Amazon Chime
<a name="messaging-namespace-migration"></a>

L'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) est un espace dédié à la création et à la gestion des ressources APIs de messagerie du SDK Amazon Chime. Vous utilisez l'espace de noms pour adresser les points de terminaison de l'API de messagerie du SDK Amazon Chime dans toutes les régions AWS dans lesquelles ils sont disponibles. Utilisez cet espace de noms si vous commencez tout juste à utiliser le SDK Amazon Chime. Pour plus d'informations sur les régions, reportez-vous [Régions AWS disponibles pour le SDK Amazon Chime](sdk-available-regions.md) à ce guide.

Les applications existantes qui utilisent l'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) doivent prévoir de migrer vers l'espace de noms dédié.

**Topics**
+ [Raisons de la migration](#migration-reasons)
+ [Avant de procéder à la migration](#before-migrating)
+ [Différences entre les espaces de noms](#namespace-differences)

## Raisons de la migration
<a name="migration-reasons"></a>

Nous vous encourageons à migrer vers l'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) pour les raisons suivantes :

**Choix du point de terminaison de l'API**  
[L'espace de noms de messagerie du SDK Amazon Chime est le seul espace de noms d'API capable d'utiliser des points de terminaison d'API dans toutes les régions qui les rendent disponibles.](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html) Si vous souhaitez utiliser des points de terminaison d'API autres que l'est des États-Unis (Virginie du Nord), vous devez utiliser l'espace de noms de messagerie du SDK Amazon Chime.  
Pour plus d'informations sur la façon dont la messagerie du SDK Amazon Chime utilise AWS les régions, reportez-vous à la section [Régions disponibles](https://docs.aws.amazon.com/chime-sdk/latest/dg/available-regions.html) de ce guide.

**Messagerie mise à jour et nouvelle APIs**  
Nous ajoutons ou mettons à jour des messages uniquement APIs dans l'espace de noms de messagerie du SDK Amazon Chime.

## Avant de procéder à la migration
<a name="before-migrating"></a>

Avant de procéder à la migration, soyez conscient des différences entre les espaces de noms. Le tableau suivant les répertorie et les décrit.


|  | Espace de noms de messagerie du SDK Amazon Chime | Espace de noms Amazon Chime | 
| --- | --- | --- | 
| AWS Espace de noms du SDK | ChimeSDKMessaging | Chime | 
| Régions | Plusieurs | Est des États-Unis (Virginie du Nord) uniquement | 
| APIs | Uniquement APIs pour la messagerie | APIs pour la messagerie et d'autres parties d'Amazon Chime | 
| Flux | Available | Non disponible | 
| Canaux élastiques | Available | Non disponible | 

## Différences entre les espaces de noms
<a name="namespace-differences"></a>

Les sections suivantes expliquent les différences entre les `Amazon Chime SDK Messaging` espaces de noms `Amazon Chime` et.

**AWS Espace de noms du SDK**  
L'espace de noms du SDK Amazon Chime utilise le nom officiel. `Chime` L'espace de noms de messagerie du SDK Amazon Chime utilise le nom officiel. `ChimeSDKMessaging` Le format précis du nom varie en fonction de la plateforme.

Par exemple, si vous utilisez le AWS SDK dans Node.js pour créer des messages, vous utilisez une ligne de code pour adresser l'espace de noms.

```
const chimeMessaging = AWS.Chime();
```

Pour migrer vers le SDK de messagerie Amazon Chime, mettez à jour cette ligne de code avec le nouvel espace de noms et la région du point de terminaison.

```
const chimeMessaging = AWS.ChimeSDKMessaging({ region: "Europe (Frankfurt)" });
```

**Régions**  
L'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) ne peut adresser que les points de terminaison d'API de la région. `US East (N. Virginia)` L'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) peut s'adresser aux points de terminaison de l'API de messagerie du SDK Amazon Chime dans toutes les régions où ils sont disponibles. Pour obtenir la liste actuelle des régions de messagerie, reportez-vous [Régions AWS disponibles pour le SDK Amazon Chime](sdk-available-regions.md) à ce guide.

**Points de terminaison**  
[L'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) utilise des points de terminaison d'API différents de ceux de l'espace de noms Amazon Chime.](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html)

Seul le point de terminaison utilisé pour créer une ressource de messagerie peut être utilisé pour la modifier. Cela signifie qu'une ressource de messagerie créée via un point de terminaison dans ne `Europe (Frankfurt)` peut être modifiée que via`Europe (Frankfurt)`. Cela signifie qu'un canal créé via un point de terminaison en Europe (Francfort) ne peut être modifié que via l'Europe (Francfort). Cela signifie également que vous ne pouvez pas adresser un canal créé via l'espace de `Chime` noms avec l'espace de `ChimeSDKMessaging` noms situé dans l'est des États-Unis (Virginie du Nord). Pour plus d'informations sur les points de terminaison actuels, reportez-vous [Cartographie des API](migrate-from-chm-namespace.md#name-end-map) à ce guide.

**Principal du service**  
L'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) utilise un nouveau principal de service :. `messaging.chime.amazonaws.com` Si vous avez des politiques d'accès SQS, SNS ou IAM qui accordent l'accès au service, vous devez mettre à jour ces politiques pour accorder l'accès au nouveau principal de service.

**APIs**  
L'espace de noms de [messagerie du SDK Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) est uniquement APIs destiné à la création et à la gestion des ressources de messagerie, ainsi qu'à l'envoi et à la réception de messages. L'espace de noms [Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) inclut APIs d'autres parties du service Amazon Chime ainsi que la messagerie.

**Débits des canaux**  
Les flux de canaux permettent aux développeurs d'exécuter une logique métier sur les messages en cours de vol avant qu'ils ne soient transmis aux membres d'un canal de messagerie. Par exemple, vous pouvez créer des flux qui suppriment les données sensibles telles que les numéros d'identification gouvernementaux, les numéros de téléphone ou les grossièretés des messages avant qu'ils ne soient livrés. Cela peut aider à mettre en œuvre les politiques de communication d'entreprise ou d'autres directives de communication.

Vous pouvez également utiliser les flux de canaux pour exécuter des fonctions telles que l'agrégation des réponses à un sondage avant de renvoyer les résultats aux participants ou l'envoi de messages par SMS. 

Les flux de canaux ne sont disponibles que dans l'espace de `ChimeSDKMessaging` noms. Pour plus d'informations à leur sujet, reportez-vous [Utilisation des flux de canaux pour traiter les messages du SDK Amazon Chime](using-channel-flows.md) à ce guide.

**Canaux élastiques**  
Les canaux élastiques permettent des expériences de chat à grande échelle avec jusqu'à un million d'utilisateurs automatiquement répartis sur un nombre défini de sous-canaux. Les canaux élastiques ne sont disponibles que dans le `ChimeSDKMessaging` point de terminaison. Pour plus d'informations sur les canaux élastiques, reportez-vous [Utilisation de canaux élastiques pour organiser des événements en direct dans le cadre des réunions du SDK Amazon Chime](elastic-channels.md) à ce guide.

**Supplémentaire APIs**  
L'espace de noms Messaging contient une liste croissante de APIs ceux qu'il n'a pas. `Chime` Si vous commencez à utiliser le SDK Amazon Chime, utilisez l'espace de noms de messagerie pour accéder à toutes les fonctionnalités les plus récentes. Pour plus d'informations sur la version actuelle APIs, reportez-vous à la section [Messagerie du SDK Amazon Chime dans le manuel *Amazon Chime* SDK](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) API Reference.

# Comprendre les prérequis pour la messagerie du SDK Amazon Chime
<a name="messaging-prerequisites"></a>

Vous avez besoin des éléments suivants pour utiliser la messagerie du SDK Amazon Chime.
+ La capacité de programmer.
+ Un AWS compte.
+ Autorisations permettant de configurer les rôles IAM pour les applications à l'aide de la messagerie du SDK Amazon Chime.

Dans la majorité des cas, vous devez également :
+ **Une application cliente** : affiche l'interface utilisateur de messagerie, se connecte aux sockets Web à l'aide d'Amazon Chime SDKs, gère l'état.
+ **Une application serveur** — Gère l'identité et les utilisateurs.

# Comprendre les concepts de messagerie du SDK Amazon Chime
<a name="messaging-concepts"></a>

Pour utiliser efficacement la messagerie du SDK Amazon Chime, vous devez comprendre les termes et concepts suivants.

**AppInstance**  
Pour utiliser la messagerie du SDK Amazon Chime, vous devez d'abord créer un. AppInstance AppInstanceUsers Et AppInstance contient et canaux. En général, vous créez un single AppInstance pour votre application. Un AWS compte peut en avoir plusieurs AppInstances. Vous définissez les paramètres au niveau de l'application, tels que la rétention des messages et la configuration du streaming, au AppInstance niveau. AppInstances sont identifiés par un ARN unique au format suivant :`arn:aws:chime:region:aws_account_id:app-instance/app_instance_id`.

**AppInstanceUser**  
AppInstanceUsers sont les entités qui envoient des messages, créent des chaînes, rejoignent des chaînes, etc. Généralement, vous créez un one-to-one mappage d'un `AppInstanceUser` vers un utilisateur de votre application. Vous pouvez également créer une connexion `AppInstanceUser` aux services principaux, ce qui permet aux utilisateurs d'identifier les messages comme provenant d'un service principal. AppInstanceUsers identifié par un ARN, tel que`arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/app_instance_user_id`. Vous contrôlez et`app_instance_user_id`, en tant que bonne pratique, vous réutilisez IDs ce que possède déjà votre application.

**Channel**  
Lorsque vous ajoutez un `AppInstanceUser` à une chaîne, cet utilisateur devient membre et peut envoyer et recevoir des messages. Les chaînes peuvent être publiques, ce qui permet à tout utilisateur de s'ajouter en tant que membre, ou privées, ce qui permet uniquement aux modérateurs de chaînes d'ajouter des membres. Vous pouvez également masquer les membres de la chaîne. Les membres masqués peuvent observer les conversations mais pas envoyer de messages, et ils ne sont pas ajoutés aux membres de la chaîne.

**SubChannel**  
Les membres d'un canal élastique sont divisés dans un conteneur logique appelé SubChannels. Lorsque vous ajoutez un AppInstanceUser à un canal élastique, l'utilisateur devient membre d'un canal SubChannel et peut envoyer et recevoir des messages pour ce canal en particulier SubChannel. Les adhésions aux chaînes et les messages sont d'un SubChannel certain niveau, ce qui signifie qu'un message envoyé par un membre d'une chaîne ne SubChannel sera pas reçu par un membre d'une autre SubChannel. Les membres sont transférés vers un autre canal SubChannels afin de renforcer la nature élastique d'un canal et de promouvoir l'engagement.

**UserMessage**  
Toute `AppInstanceUser` personne appartenant à une chaîne peut envoyer et recevoir des messages utilisateur. Ils `AppInstanceUser` peuvent envoyer `STANDARD` des `CONTROL` messages. `STANDARD`les messages peuvent contenir 4 Ko de données et 1 Ko de métadonnées. `CONTROL`les messages ne peuvent contenir que 30 octets de données. Les messages peuvent être `PERSISTENT` ou`NON_PERSISTENT`. Vous pouvez récupérer `PERSISTENT` des messages depuis l'historique des chaînes. `NON_PERSISTENT`les messages ne sont visibles que par les membres de la chaîne actuellement connectés à la messagerie du SDK Amazon Chime.

**Message du système**  
Le SDK Amazon Chime génère des messages système en réponse à des événements tels que l'adhésion ou le départ de membres d'une chaîne.

# Comprendre l'architecture de messagerie du SDK Amazon Chime
<a name="messaging-architecture"></a>

Vous pouvez utiliser la messagerie du SDK Amazon Chime en tant que SDK côté serveur et côté client. Le côté serveur APIs crée un `AppInstance` et. `AppInstanceUser` Vous pouvez utiliser différents hooks et configurations pour ajouter une logique métier et une validation spécifiques à l'application. Pour plus d'informations à ce sujet, consultez[Diffusion de données de messagerie dans la messagerie du SDK Amazon Chime](streaming-export.md). En outre, les processus côté serveur peuvent appeler APIs au nom d'un `AppInstanceUser` ou contrôler un service dédié représentant `AppInstanceUser` les processus principaux.

Les applications côté client représentées par un `AppInstanceUser` peuvent appeler directement la messagerie du SDK Amazon Chime. APIs Les applications côté client utilisent le WebSocket protocole pour se connecter au SDK de messagerie lorsqu'elles sont en ligne. Lorsqu'ils sont connectés, ils reçoivent des messages en temps réel de tous les canaux dont ils sont membres. Lorsqu'il est déconnecté, un appartient `AppInstanceUser` toujours aux canaux auxquels il a été ajouté, et il peut charger l'historique des messages de ces canaux en utilisant le protocole HTTP du SDK. APIs

Les applications côté client sont autorisées à effectuer des appels d'API de manière unique. `AppInstanceUser` Pour limiter les informations d'identification IAM à une seule`AppInstanceUser`, les applications côté client assument un rôle IAM paramétré via les pools d'identités AWS Cognito ou via une petite API principale auto-hébergée. Pour de plus amples informations sur l'authentification, veuillez consulter [Authentification des applications clientes des utilisateurs finaux pour la messagerie du SDK Amazon Chime](auth-client-apps.md). En revanche, les applications côté serveur ont généralement des autorisations liées à un seul utilisateur d'instance d'application, tel qu'un utilisateur disposant d'autorisations administratives, ou elles sont autorisées à effectuer des appels d'API au nom de tous les utilisateurs de l'instance d'application. 

# Comprendre les types de messages du SDK Amazon Chime
<a name="msg-types"></a>

Vous envoyez des messages par le biais de canaux. Vous pouvez envoyer `STANDARD``CONTROL`, ou `SYSTEM` des messages.
+ `STANDARD`les messages peuvent avoir une taille maximale de 4 Ko et contenir des métadonnées. Les métadonnées sont arbitraires et vous pouvez les utiliser de différentes manières, par exemple pour contenir un lien vers une pièce jointe.
+ `CONTROL`les messages sont limités à 30 octets et ne contiennent pas de métadonnées.
+ `STANDARD`et `CONTROL` les messages peuvent être persistants ou non. Les messages persistants sont conservés dans l'historique d'une chaîne et visualisés à l'aide d'un appel d'`ListChannelMessages`API. Des messages non persistants sont envoyés à tous les via `AppInstanceUser` connectés WebSocket.
+ Le SDK Amazon Chime envoie des `SYSTEM` messages automatisés pour des événements tels que l'adhésion ou le départ de membres d'une chaîne.

# Commencer à utiliser la messagerie du SDK Amazon Chime
<a name="getting-started"></a>

Les rubriques de cette section expliquent comment commencer à créer une application de messagerie Amazon Chime SDK.

**Topics**
+ [Création d'une AppInstance messagerie pour le SDK Amazon Chime](create-app-instance.md)
+ [Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md)
+ [Authentification des applications clientes des utilisateurs finaux pour la messagerie du SDK Amazon Chime](auth-client-apps.md)
+ [Création de canaux pour la messagerie du SDK Amazon Chime](creating-channels.md)
+ [Envoyer des messages dans la messagerie du SDK Amazon Chime](send-messages.md)
+ [Utilisation ExpirationSettings dans la messagerie du SDK Amazon Chime](expiration.md)
+ [Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md)
+ [Configuration des pièces jointes dans la messagerie du SDK Amazon Chime](configure-attachments.md)

# Création d'une AppInstance messagerie pour le SDK Amazon Chime
<a name="create-app-instance"></a>

Pour utiliser la messagerie du SDK Amazon Chime, vous devez d'abord créer un SDK Amazon Chime dans votre compte. `AppInstance` AWS 

**Topics**
+ [Construire un AppInstance](#app-instance-steps)
+ [Création d'un AppInstanceUser](#create-app-instance-user)

## Construire un AppInstance
<a name="app-instance-steps"></a>

**Pour créer et envoyer `AppInstance` des messages**

1. Dans la CLI, exécutez `aws chime-sdk-identity create-app-instance --name NameOfAppInstance.`

1. Dans la réponse de création, notez le`AppInstanceArn`. `arn:aws:chime:region: aws_account_id:app-instance/app_instance_id`.

## Création d'un AppInstanceUser
<a name="create-app-instance-user"></a>

Une fois que vous avez créé un`AppInstance`, vous `AppInstanceUser` en créez un dedans`AppInstance`. Vous le faites généralement lorsqu'un utilisateur s'enregistre ou se connecte pour la première fois à votre application. Vous pouvez également créer une annonce `AppInstanceUser` qui agit pour le compte de vos services principaux.

L'exemple suivant montre comment créer un back-end `AppInstanceUser` :

```
aws chime-sdk-identity create-app-instance-user \
    --app-instance-arn "app_instance_arn" \
    --app-instance-user-id "back-end-worker" \
    --name "back-end-worker"
```

Dans la réponse de création, notez le`AppInstanceUserArn`. Cela prend cette forme :`arn:aws:chime:region: aws_account_id:app-instance/app_instance_id/user/app_instance_user_id`. Dans cet exemple, `app_instance_user_id` c'est « »back-end-worker.

**Note**  
Il est recommandé, lors de la création `AppInstanceUser` d'une application cliente, de `AppInstanceUserId` faire correspondre un identifiant unique existant pour cet utilisateur, tel que celui `sub` d'un fournisseur d'identité. Le nom est un espace réservé facultatif attaché à certaines entités d'API, telles qu'un expéditeur de message. Il vous permet de contrôler le nom d'affichage d'un utilisateur en un seul endroit, sans avoir à le rechercher à partir de l'`AppInstanceUser`ARN, qui est également joint en tant qu'expéditeur d'un message.

# Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime
<a name="call-from-backend"></a>

Une fois que vous avez créé un utilisateur pour représenter vos services principaux, vous créez un canal, vous envoyez des messages à ce canal et vous lisez les messages provenant de ce canal.

Exécutez la commande CLI suivante pour créer un canal public.

```
aws chime-sdk-messaging create-channel \
    --chime-bearer "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn" \
    --name "firstChannel"
```

La commande produit un ARN au format suivant : `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [Comment fonctionne l'autorisation IAM pour les services principaux](#how-iam-works)
+ [Comprendre l'autorisation implicite des API](#api-implicit-auth)
+ [Envoyer et répertorier les messages des chaînes](#send-list-msgs)

## Comment fonctionne l'autorisation IAM pour les services principaux
<a name="how-iam-works"></a>

Dans la commande CLI de la section précédente, notez le `chime-bearer` paramètre. Il identifie l'utilisateur qui crée ou interagit avec des ressources telles que des canaux et des messages. Presque tous les messages du SDK Amazon Chime sont APIs pris `chime-bearer` en paramètre, sauf ceux APIs destinés à être appelés uniquement par les développeurs, tels que. `CreateAppInstance`

Les autorisations IAM pour la APIs messagerie du SDK Amazon Chime nécessitent `app-instance-user-arn ` un code correspondant au paramètre. `chime-bearer` Un canal ARNs supplémentaire, généralement un canal ARNs, peut être requis en fonction de l'API. Pour les services principaux comme dans l'exemple ci-dessus, cela conduit à des politiques IAM comme dans l'exemple suivant :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "chime:SendChannelMessage",
            "chime:ListChannelMessages",
            "chime:CreateChannelMembership",
            "chime:ListChannelMemberships",
            "chime:DeleteChannelMembership",
            "chime:CreateChannel",
            "chime:ListChannels",
            "chime:DeleteChannel"
        ],
        "Resource": [
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/back-end-worker",
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
        ]
    }
}
```

------

Notez l'`AppInstanceUser`ARN et l'ARN du canal dans la `Resource` section. Cet exemple de politique IAM accorde au service principal l'autorisation d'effectuer des appels d'API en tant qu'utilisateur ayant l'ID « »back-end-worker. Si vous souhaitez que votre service principal puisse passer des appels pour les utilisateurs de votre application, remplacez le par`app_instance_user_arn`. `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`

## Comprendre l'autorisation implicite des API
<a name="api-implicit-auth"></a>

Outre les politiques IAM, les APIs messages du SDK Amazon Chime disposent d'autorisations implicites. Par exemple, un utilisateur ne `AppInstanceUser` peut envoyer un message ou répertorier les membres d'une chaîne que dans les chaînes auxquelles appartient l'utilisateur. Une exception à cette règle est un `AppInstanceUser` Who qui a été promu`AppInstanceAdmin`. Par défaut, les administrateurs sont autorisés à accéder à toutes les chaînes de votre application. Dans la plupart des cas d'utilisation, vous n'en avez besoin que pour les services principaux qui contiennent une logique métier significative.

La commande CLI suivante transforme un utilisateur principal en administrateur.

```
aws chime-sdk-identity create-app-instance-admin \
    --app-instance-admin-arn "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn"
```

## Envoyer et répertorier les messages des chaînes
<a name="send-list-msgs"></a>

La commande CLI suivante envoie des messages de canal.

```
aws chime-sdk-messaging send-channel-message \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn" \
    --content "hello world" \
    --type STANDARD \
    --persistence PERSISTENT
```

Les commandes CLI suivantes répertorient les messages des canaux dans l'ordre chronologique inverse.
+ `aws chime list-channel-messages`
+ `aws chime-sdk-messaging list-channel-messages`

```
aws chime-sdk-messaging list-channel-messages \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn"
```

# Authentification des applications clientes des utilisateurs finaux pour la messagerie du SDK Amazon Chime
<a name="auth-client-apps"></a>

Vous pouvez également exécuter la messagerie du SDK Amazon Chime à partir d'applications clientes destinées aux utilisateurs finaux. [Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md)explique comment effectuer des appels d'API tels que create-channel send-channel-message, et. list-channel-messages Les applications clientes des utilisateurs finaux, telles que les navigateurs et les applications mobiles, effectuent ces mêmes appels d'API. Les applications clientes peuvent également se connecter WebSocket pour recevoir des mises à jour en temps réel sur les messages et les événements des canaux dont elles sont membres. Cette section explique comment attribuer des informations d'identification IAM à une application cliente limitée à un utilisateur d'instance d'application spécifique. Une fois que les utilisateurs finaux disposent de ces informations d'identification, ils peuvent effectuer les appels d'API indiqués dans[Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md). Pour voir une démonstration complète d'une application cliente, consultez [ https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat). Pour plus d'informations sur la réception de messages en temps réel provenant des canaux auxquels appartient une application cliente, consultez[Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md).

## Fournir des informations d'identification IAM aux utilisateurs finaux
<a name="connect-id-provider"></a>

La messagerie du SDK Amazon Chime s'intègre nativement aux politiques AWS Identity and Access Management (IAM) pour authentifier les demandes entrantes. La politique IAM définit ce que peut faire un utilisateur individuel. Les politiques IAM peuvent être conçues pour fournir des informations d'identification limitées et limitées pour votre cas d'utilisation. Pour plus d'informations sur la création de politiques pour les utilisateurs de messagerie du SDK Amazon Chime, consultez. [Exemples de rôles IAM pour la messagerie du SDK Amazon Chime](iam-roles.md)

Si vous avez déjà un fournisseur d'identité, vous disposez des options suivantes pour intégrer votre identité existante à la messagerie du SDK Amazon Chime.
+ Vous pouvez utiliser votre fournisseur d'identité existant pour authentifier les utilisateurs, puis intégrer le service d'authentification au AWS Security Token Service (STS) afin de créer votre propre service de vente d'informations d'identification pour les clients. STS permet APIs d'assumer des rôles IAM.
+ Si vous disposez déjà d'un fournisseur d'identité compatible SAML ou OpenID, nous vous recommandons d'utiliser les pools d'identité Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html), qui extraient les appels vers STS et. AWS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) Amazon Cognito s'intègre à OpenID, au SAML et aux fournisseurs d'identité publics tels que Facebook, Login with Amazon, Google et Sign in with Apple.

Si vous n'avez pas de fournisseur d'identité, vous pouvez commencer à utiliser les groupes d'utilisateurs Amazon Cognito. Pour un exemple d'utilisation d'Amazon Cognito avec les fonctionnalités de messagerie du SDK Amazon Chime, [consultez Intégrer des fonctionnalités de chat dans votre application avec la messagerie du SDK Amazon Chime](https://aws.amazon.com/blogs/business-productivity/build-chat-features-into-your-application-with-amazon-chime-sdk-messaging/). 

Vous pouvez également utiliser le [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html)pour créer votre propre service de distribution automatique d'informations d'identification ou créer votre propre fournisseur d'identité.

**Utilisation de STS pour vendre des informations d'identification**  
[Si vous disposez déjà d'un IDP tel que ActiveDirectory LDAP et que vous souhaitez implémenter un service de vente d'informations d'identification personnalisé ou autoriser l'accès au chat aux participants à une réunion non authentifiés, vous pouvez utiliser l'API STS.AWSAssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) Pour ce faire, vous devez d'abord créer un rôle SDK de messagerie dans le SDK Amazon Chime. Pour plus d'informations sur la création de ce rôle, consultez la section [Création d'un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

Le rôle IAM serait autorisé à accéder à l'action de messagerie du SDK Amazon Chime que votre application utiliserait, comme suit :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chime:GetMessagingSessionEndpoint"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "chime:SendChannelMessage",
                "chime:ListChannelMessages",
                "chime:CreateChannelMembership",
                "chime:ListChannelMemberships",
                "chime:DeleteChannelMembership",
                "chime:CreateChannelModerator",
                "chime:ListChannelModerators",
                "chime:DescribeChannelModerator",
                "chime:CreateChannel",
                "chime:DescribeChannel",
                "chime:ListChannels",
                "chime:DeleteChannel",
                "chime:RedactChannelMessage",
                "chime:UpdateChannelMessage",
                "chime:Connect",
                "chime:ListChannelBans",
                "chime:CreateChannelBan",
                "chime:DeleteChannelBan",
                "chime:ListChannelMembershipsForAppInstanceUser",
                "chime:AssociateChannelFlow",
                "chime:DisassociateChannelFlow",
                "chime:GetChannelMessageStatus"
            ],
            "Resource": [
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/my_applications_user_id",
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
    ]
        }
    ]
}
```

------

Dans cet exemple, appelez ce rôle le *ChimeMessagingSampleAppUserRole*.

Notez le tag de session dans la *ChimeMessagingSampleAppUserRole*politique de `${my_application_user_id}` la ressource ARN de l'utilisateur. Cette balise de session est paramétrée dans l'appel d'[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API afin de limiter les informations d'identification renvoyées aux autorisations pour un seul utilisateur.

Les [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)et [https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html) APIs sont appelés à l'aide d'une entité IAM déjà accréditée, telle qu'un utilisateur IAM. Ils APIs peuvent également être appelés par un rôle IAM différent, tel qu'un rôle d'[AWS Lambda exécution](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Cette identité IAM doit être autorisée à appeler `AssumeRole` et à utiliser `TagSession` le *ChimeMessagingSampleAppUserRole*. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [ 
                "sts:AssumeRole",
                "sts:TagSession"
                ],
            "Resource": "arn:aws:iam::123456789012:role/ChimeMessagingSampleAppUserRole"
        }
    ]
}
```

------

 Dans cet exemple, appelez ce rôle le *ChimeSampleAppServerRole*.

Vous devez le configurer `ChimeMessagingSampleAppUserRole` avec une politique de confiance qui permet `ChimeMessagingSampleAppServerRole` d'appeler l'[AssumeRoleAPI STS](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) dessus. Pour plus d'informations sur l'utilisation des politiques de confiance avec les rôles IAM, voir [Comment utiliser les politiques de confiance avec les rôles IAM](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/). Vous pouvez utiliser la console AWS IAM Roles pour ajouter cette politique au`ChimeMessagingSampleAppUserRole`. L'exemple suivant illustre une relation de confiance typique.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:role/ChimeMessagingSampleAppServerRole"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

 Dans un exemple de déploiement, une instance [Amazon EC2](https://aws.amazon.com/ec2/) ou une instance AWS Lambda est lancée avec le. `ChimeMessagingSampleAppServerRole` Le serveur :

1. Exécute toute autorisation spécifique à une application sur les demandes d'un client pour recevoir des informations d'identification.

1. Active STS `AssumeRole``ChimeMessagingSampleAppUserRole`, avec une balise paramétrant le. `${aws:PrincipalTag/my_applications_user_id}`

1. Transfère les informations d'identification renvoyées lors de l'`AssumeRole`appel à l'utilisateur.

L'exemple suivant montre la commande CLI permettant d'assumer un rôle pour l'étape 2 :

`aws sts assume-role --role-arn arn:aws:iam::my_aws_account_id:role/ChimeMessagingSampleAppUserRole --role-session-name demo --tags Key=my_applications_user_id,Value=123456789 ` 

# Création de canaux pour la messagerie du SDK Amazon Chime
<a name="creating-channels"></a>

Vous et vos utilisateurs finaux pouvez créer des chaînes. Une fois créée, vous ou vos utilisateurs finaux devez également ajouter des membres à la chaîne. Un exemple de code pour créer des chaînes est disponible dans l'[exemple d'application sur GitHub](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat).

Pour plus d'informations sur la création de chaînes et l'ajout de membres, consultez :
+  [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html) 
+  [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html) 

# Envoyer des messages dans la messagerie du SDK Amazon Chime
<a name="send-messages"></a>

Utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API pour envoyer des messages. Un exemple de code est disponible dans un [exemple d'application sur GitHub](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat). 

# Utilisation ExpirationSettings dans la messagerie du SDK Amazon Chime
<a name="expiration"></a>

Lorsque vous créez un `AppInstanceUser` ou un`Channel`, vous pouvez l'utiliser `ExpirationSettings` pour configurer la suppression automatique de ces ressources. `ExpirationSettings`permet de réduire les coûts de stockage et de prévenir resource-limit-exceeded les problèmes. Par exemple, vous pouvez supprimer les chaînes inutilisées au bout de 7 jours ou supprimer celles `AppInstanceUser` qui n'ont été invoquées qu'à des fins de test.

Pour un`AppInstanceUser`, vous spécifiez la période d'expiration en fonction de l'heure de création de l'utilisateur. Pour un`Channel`, vous spécifiez la période d'expiration en fonction de l'heure de création de la chaîne ou de l'heure du dernier message. Ce dernier vous permet d'utiliser les activités liées aux messages pour personnaliser la suppression automatique.

**Important**  
Peu après l'expiration d'une ressource, `ExpirationSettings` lance un processus en arrière-plan pour supprimer cette ressource. Le processus prend généralement 6 heures, mais ce temps peut varier.  
Les `AppInstanceUsers` fichiers expirés et `Channels` qui n'ont pas encore été supprimés apparaissent toujours comme valides et actifs. Vous pouvez mettre à jour ou supprimer leurs paramètres d'expiration, et le système tiendra compte de vos modifications.

**Topics**
+ [Configuration ExpirationSettings](#create-expiration)
+ [AWS CloudTrail événements relatifs à la suppression de ressources expirées](#ct-events)

## Configuration ExpirationSettings
<a name="create-expiration"></a>

Les sections suivantes expliquent comment configurer `ExpirationSettings` un `AppInstanceUser` ou un`Channel`. 

### Configuration ExpirationSettings lors de la création d'une ressource
<a name="configure-on-create"></a>

Vous pouvez configurer le `ExpirationSettings` moment où vous exécutez le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateAppInstanceUser.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateAppInstanceUser.html)ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html) APIs. Si vous définissez le `ExpirationSettings` paramètre, vous devez accorder les autorisations IAM suivantes :
+ `chime:PutAppInstanceUserExpirationSettings`lors de la création d'un `AppInstanceUser`
+ `chime:PutChannelExpirationSettings`lors de la création d'un`Channel`.

L'exemple suivant utilise la AWS CLI pour créer un fichier `AppInstanceUser` expirant au bout d'un jour.

```
aws chime-sdk-identity create-app-instance-user \
--app-instance-arn "app_instance_arn" \
--app-instance-user-id "backend-worker" \
--name "backend-worker" \
--expiration-settings '{
            "ExpirationDays": 1,
            "ExpirationCriterion": "CREATED_TIMESTAMP"
        }'
```

L'exemple suivant utilise la AWS CLI pour créer un message `Channel` qui expire un jour après la dernière réception d'un message.

```
aws chime-sdk-messaging create-channel \
--chime-bearer "app_instance_user_arn" \
--app-instance-arn "app_instance_arn" \
--name "firstChannel" \
--expiration-settings '{
            "ExpirationDays": 1,
            "ExpirationCriterion": "LAST_MESSAGE_TIMESTAMP"
        }'
```

### Utiliser Put APIs pour configurer ExpirationSettings
<a name="configure-on-put"></a>

Vous pouvez également utiliser le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html)et [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelExpirationSettings.html) APIs pour créer, mettre à jour et supprimer`ExpirationSettings`. 

L'exemple suivant vous montre comment utiliser la AWS CLI pour mettre à jour un `AppInstanceUser``ExpirationSettings`.

```
aws chime-sdk-identity put-app-instance-user-expiration-settings \
--app-instance-user-arn "app_instance_user_arn" \
--expiration-settings '{
            "ExpirationDays": 30,
            "ExpirationCriterion": "CREATED_TIMESTAMP"
        }'
```

L'exemple suivant montre comment utiliser la AWS CLI pour supprimer un canal`ExpirationSettings`.

```
aws chime-sdk-messaging put-channel-expiration-settings \
--chime-bearer "app_instance_user_arn" \
--channel-arn "channel_arn"
```

## AWS CloudTrail événements relatifs à la suppression de ressources expirées
<a name="ct-events"></a>

Une fois que le système a supprimé une ressource expirée, il envoie un `ExpireChannel` événement `ExpireAppInstanceUser` or à AWS CloudTrail. Le type d'événement dépend du type de ressource supprimée.

L'exemple suivant montre un `AppInstanceUser` événement.

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "chime.amazonaws.com"
    },
    "eventTime": "2023-03-15T00:00:00Z",
    "eventSource": "chime.amazonaws.com",
    "eventName": "ExpireAppInstanceUser",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "chime.amazonaws.com",
    "userAgent": "chime.amazonaws.com",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "12345678-1234-1234-1234-123456789012",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::Chime::AppInstanceUser",
            "ARN": "arn:aws:chime:us-east-1:123456789012:app-instance/app-instance-id/user/user-id"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "reason": "AppInstanceUser deleted due to expiration settings."
    },
    "eventCategory": "Management"
}
```

# Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime
<a name="websockets"></a>

 Vous pouvez utiliser le [SDK Amazon Chime JS](https://github.com/aws/amazon-chime-sdk-js) pour recevoir des messages ou utiliser WebSockets la bibliothèque WebSocket cliente de votre choix.

Suivez ces rubriques dans l'ordre indiqué pour commencer à utiliser WebSockets :

**Topics**
+ [Définition d'une politique IAM](#define-iam-policy)
+ [Récupération du point de terminaison](#retrieve-endpoint)
+ [Établissement de la connexion](#connect-api)
+ [Utilisation de prefetch pour fournir des informations sur les chaînes](#prefetch)
+ [Traitement des événements](#process-events)

## Définition d'une politique IAM
<a name="define-iam-policy"></a>

Pour commencer, définissez une politique IAM qui vous autorise à établir une WebSocket connexion. L'exemple de politique suivant donne `AppInstanceUser` l'autorisation d'établir une WebSocket connexion.

```
"Version": "2012-10-17",		 	 	 
"Statement": [
  {
    "Effect": "Allow",
    "Action: [
      "chime:Connect"
    ],
    "Resource": [
      "arn:aws:chime:region:{aws_account_id}:app-instance/{app_instance_id}/user/{app_instance_user_id}"
    ]
 },
 {
    "Effect": "Allow",
    "Action: [
      "chime:GetMessagingSessionEndpoint"
    ],
    "Resource": [
      "*"
    ]
 }
 ]
}
```

## Récupération du point de terminaison
<a name="retrieve-endpoint"></a>

Les étapes suivantes expliquent comment récupérer le point de terminaison utilisé dans une WebSocket connexion.

1. Utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html)API pour récupérer le WebSocket point de terminaison. 

1. Utilisez l'URL renvoyée par l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html)API pour créer une WebSocket URL signée Signature Version 4. Si vous avez besoin d'aide pour cela, vous pouvez suivre les instructions du[Établissement de la connexion](#connect-api).
**Note**  
WebSocket URLs ont le formulaire suivant : `id.region.ws-messaging.chime.aws`

## Établissement de la connexion
<a name="connect-api"></a>

 Après avoir récupéré un point de terminaison, vous utilisez l'API de connexion pour établir une WebSocket connexion avec le serveur principal du SDK Amazon Chime et recevoir des messages pour un. `AppInstanceUser` Vous devez utiliser AWS la version 4 de Signature pour signer les demandes. Pour plus d'informations sur la signature d'une demande, voir [Signature des AWS demandes avec signature version 4](https://docs.aws.amazon.com/general/latest/gr/Signature Version 4_signing.html).

**Note**  
Pour récupérer le point de terminaison, vous pouvez appeler l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html)API. Vous pouvez utiliser la bibliothèque WebSocket cliente de votre choix pour vous connecter au point de terminaison.

**Syntaxe de la demande**

```
GET /connect
?X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIARALLEXAMPLE%2F20201214%2Fregion%2Fchime%2Faws4_request
&X-Amz-Date=20201214T171359Z
&X-Amz-Expires=10
&X-Amz-SignedHeaders=host
&sessionId={sessionId}
&userArn={appInstanceUserArn}
&X-Amz-Signature=db75397d79583EXAMPLE
```

**Paramètres de demande d'URI**

Tous les paramètres de requête de demande d'URI doivent être codés en URL.

**Algorithme X-Amz**

Identifie la version de AWS Signature et l'algorithme que vous avez utilisé pour calculer la signature. Le SDK Amazon Chime ne prend en charge que l'authentification AWS Signature version 4, ce qui en fait un avantage. `AWS4-HMAC-SHA256`

**Identifiant X-Amz**

Outre l'ID de votre clé d'accès, ce paramètre indique également la AWS région et le service (étendue) pour lesquels la signature est valide. Cette valeur doit correspondre à l'étendue que vous utilisez dans les calculs de signature. La forme générale de cette valeur de paramètre est la suivante :

`<yourAccessKeyId>/<date>/<awsRegion>/<awsService >/aws4_request`

Par exemple :

`AKIAIOSFODNN7EXAMPLE/20201214/us-east-1/chime/aws4_request`

**X-Amz-Date**

Le format de date et d'heure doit être conforme à la norme ISO 8601, et vous devez le formater comme `yyyyMMddTHHmmssZ` suit. Par exemple, vous devez convertir **le 01/08/2020 15:32:41.982-700** en temps universel coordonné (UTC) et le soumettre sous le format. `20200801T083241Z`

**En-têtes signés X-Amz**

Répertorie les en-têtes que vous avez utilisés pour calculer la signature. Les en-têtes suivants sont obligatoires pour les calculs de signature :
+ L'en-tête de l'hôte HTTP.
+ Tous les en-têtes x-amz-\$1 que vous prévoyez d'ajouter à la demande.

**Note**  
Pour plus de sécurité, signez tous les en-têtes de demande que vous comptez inclure dans votre demande.

**Signatures X-Amz**

Fournit la signature pour authentifier votre demande. Cette signature doit correspondre à la signature calculée par le SDK Amazon Chime. Si ce n'est pas le cas, le SDK Amazon Chime refuse la demande. Par exemple, `733255ef022bec3f2a8701cd61d4b371f3f28c9f19EXAMPLEd48d5193d7`.

**Jeton de sécurité X-Amz**

Paramètre d'identification facultatif si vous utilisez des informations d'identification provenant du service de jeton de sécurité. Pour plus d'informations sur le service, consultez le [https://docs.aws.amazon.com/STS/dernier//APIReference](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html).

**SessionId**

Indique un identifiant unique pour la WebSocket connexion en cours d'établissement.

**UserArn**

Indique l'identité de la `AppInstanceUser` personne qui tente d'établir une connexion. La valeur doit être l'ARN du`AppInstanceUser`. Par exemple, `arn:aws:chime:us%2Deast%2D1:123456789012:app%2Dinstance/694d2099%2Dcb1e%2D463e%2D9d64%2D697ff5b8950e/user/johndoe` 

## Utilisation de prefetch pour fournir des informations sur les chaînes
<a name="prefetch"></a>

Lorsque vous établissez une WebSocket connexion, vous pouvez spécifier `prefetch-on=connect` dans votre requête les paramètres de diffusion des `CHANNEL_DETAILS` événements. La fonction de prélecture est fournie avec l'API de connexion, et elle permet aux utilisateurs de voir une vue de discussion enrichie sans appels d'API supplémentaires. Les utilisateurs peuvent :
+ Consultez un aperçu du dernier message de la chaîne, ainsi que son horodatage.
+ Voir les membres d'une chaîne.
+ Consultez les marqueurs non lus d'une chaîne.

Une fois qu'un utilisateur s'est connecté avec le paramètre de prélecture spécifié, il reçoit l'événement d'établissement de session, qui indique que la connexion a été établie. L'utilisateur reçoit ensuite jusqu'à 50 `CHANNEL_DETAILS` événements. Si l'utilisateur possède moins de 50 canaux, l'API de connexion préextrait tous les canaux via `CHANNEL_DETAILS` des événements. Si l'utilisateur possède plus de 50 canaux, l'API préextrait les 50 principaux canaux contenant des messages non lus et les dernières valeurs. `LastMessageTimestamp` Les `CHANNEL_DETAILS` événements arrivent dans un ordre aléatoire et vous recevez des événements pour les 50 chaînes.

De plus, prefetch renvoie les informations suivantes pour `ChannelMessages` et : `ChannelMemberships`
+ **ChannelMessages**— Liste des [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMessageSummary.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMessageSummary.html)objets, `CreatedTimestamp` triée par ordre décroissant. Inclut uniquement les 20 derniers messages visibles par l'utilisateur. Si certains messages ciblés du canal ne sont pas visibles pour l'utilisateur actuel, moins de 20 messages peuvent être renvoyés. Le `ChannelMessagesHasMore` booléen sera défini sur true pour indiquer qu'il y a d'autres messages. Limite souple, ajustable au niveau du AWS compte.
+ **ChannelMemberships**— Liste des [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMembershipSummary.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMembershipSummary.html)objets Inclut un maximum de 30 membres de la chaîne. Limite souple, ajustable au niveau du AWS compte.

Cet exemple montre comment utiliser`prefetch-on=connect`.

```
GET /connect
?X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIARALLEXAMPLE%2F20201214%2Fregion%2Fchime%2Faws4_request
&X-Amz-Date=20201214T171359Z
&X-Amz-Expires=10
&X-Amz-SignedHeaders=host
&sessionId=sessionId
&prefetch-on=connect
&userArn=appInstanceUserArn
&X-Amz-Signature=db75397d79583EXAMPLE
```

Cet exemple montre la réponse pour un canal. Vous recevrez des réponses pour les 50 chaînes.

```
{
   "Headers": { 
        "x-amz-chime-event-type": "CHANNEL_DETAILS", 
        "x-amz-chime-message-type": "SYSTEM" 
        },
   "Payload": JSON.stringify"({
        Channel: [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelSummary.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelSummary.html) 
        ChannelMessages: List of [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMessageSummary.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMessageSummary.html)  
        ChannelMemberships: List of [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMembershipSummary.html ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ChannelMembershipSummary.html )
        ReadMarkerTimestamp: Timestamp 
        ChannelMessagesHasMore: Boolean 
    })
}
```

## Traitement des événements
<a name="process-events"></a>

Pour qu'un `AppInstanceUser` homme puisse recevoir des messages après avoir établi une connexion, vous devez les ajouter à une chaîne. Pour cela, utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API.

**Note**  
An reçoit `AppInstanceUser` toujours des messages pour tous les canaux auxquels ils appartiennent. La messagerie s'arrête lorsque l'`AppInstance`utilisateur se déconnecte.

An `AppInstanceAdmin` et a `ChannelModerator` ne reçoivent pas de messages sur un canal, sauf si vous utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API pour les ajouter explicitement.

Les rubriques suivantes expliquent comment traiter les événements.

**Topics**
+ [Comprendre les structures des messages](#message-structures)
+ [Gestion des déconnexions](#handle-disconnects)

### Comprendre les structures des messages
<a name="message-structures"></a>

Chaque WebSocket message que vous recevez respecte le format suivant :

```
{
   "Headers": {"key": "value"},
   "Payload": "{\"key\": \"value\"}"
}
```

**En-têtes**  
La messagerie du SDK Amazon Chime utilise les clés d'en-tête suivantes :
+ `x-amz-chime-event-type`
+ `x-amz-chime-message-type`
+ `x-amz-chime-event-reason`

La section suivante répertorie et décrit les valeurs et charges utiles possibles de l'en-tête.

**Charge utile**  
Les messages Websocket renvoient des chaînes JSON. La structure des chaînes JSON dépend des `x-amz-event-type` en-têtes. Le tableau suivant répertorie les `x-amz-chime-event-type` valeurs et les charges utiles possibles :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/websockets.html)

**x-amz-chime-message-type**  
Le tableau suivant répertorie les types de `x-amz-chime-message-type` messages.


| Type de message | Description | 
| --- | --- | 
| `STANDARD` | Envoyé lorsque le websocket reçoit un message de canal STANDARD. | 
| `CONTROL` | Envoyé lorsqu'il WebSocket reçoit un message du canal CONTROL. | 
| `SYSTEM` | Tous les autres messages Websocket envoyés par Amazon Chime SDK Messaging. | 

**x-amz-chime-event-raison**  
Il s'agit d'un en-tête facultatif pris en charge pour un cas d'utilisation spécifique. L'en-tête fournit des informations sur la raison pour laquelle un événement spécifique a été reçu.


| Motif de l'événement | Description | 
| --- | --- | 
| Sous-chaîne\$1supprimée | `DELETE_CHANNEL_MEMBERSHIP`événements reçus par les modérateurs d'Elastic Channel. Visible uniquement par les modérateurs une fois que l'équilibrage des membres a supprimé une sous-chaîne à laquelle ils appartenaient. | 

### Gestion des déconnexions
<a name="handle-disconnects"></a>

Les Websockets peuvent se déconnecter en raison de modifications de la connectivité réseau ou lorsque les informations d'identification expirent. Après avoir ouvert un WebSocket, le SDK Amazon Chime envoie régulièrement des pings au client de messagerie pour s'assurer qu'il est toujours connecté. Si la connexion se ferme, le client reçoit un code de WebSocket fermeture. Le client peut essayer de se reconnecter, ou non, selon le code de fermeture. Les tableaux suivants indiquent les codes de fermeture que le client peut utiliser pour se reconnecter.

Pour 1 000 à 4 000 codes de fermeture, reconnectez-vous uniquement pour les messages suivants :


| Codes de fermeture | Peut se reconnecter | Raison | 
| --- | --- | --- | 
| 1001 | Oui | Fermeture normale | 
| 1006 | Oui | Fermeture anormale | 
| 1011 | Oui | Erreur interne du serveur | 
| 1012 | Oui | Redémarrage du service | 
| 1013 | Oui | Réessayez plus tard | 
| 1014 | Oui | Le serveur agissait en tant que passerelle ou proxy et a reçu une réponse non valide du serveur en amont. Ceci est similaire au code d'état HTTP 502. | 

Pour les codes 4XXX, reconnectez-vous toujours, *à l'exception* des messages suivants :


| Codes de fermeture | Peut se reconnecter | Raison | 
| --- | --- | --- | 
| 4002 | Non | Initié par le client | 
| 4003 | Non | Accès interdit | 
| 4401 | Non | Non autorisé | 

Lorsque l'application utilise un code de fermeture pour se reconnecter, elle doit :

1. Appelez à nouveau l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetMessagingSessionEndpoint.html)API pour obtenir une nouvelle URL de base. 

1. Actualisez les informations d'identification IAM si elles ont expiré.

1. Connectez-vous via le WebSocket. 

Si vous utilisez la amazon-chime-sdk-js bibliothèque, cela est géré pour vous si vous implémentez la propriété [needsRefresh ()](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html#needsRefresh-property) et la méthode [refresh ()](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html#refresh-property). Pour un exemple pratique, consultez [https://github.com/aws-samples/amazon-chime-sdk/blob/dc11c4c76c78d28f618577706bba2087919a5635/apps/chat/src/providers/AuthProvider.jsx \$1L93](https://github.com/aws-samples/amazon-chime-sdk/blob/dc11c4c76c78d28f618577706bba2087919a5635/apps/chat/src/providers/AuthProvider.jsx#L93-L101) -L101.

# Configuration des pièces jointes dans la messagerie du SDK Amazon Chime
<a name="configure-attachments"></a>

Le SDK Amazon Chime vous permet d'utiliser votre propre espace de stockage pour les pièces jointes aux messages et de les inclure sous forme de métadonnées de message. Amazon Simple Storage Service (S3) est le moyen le plus simple de commencer à utiliser les pièces jointes.

**Pour utiliser S3 pour les pièces jointes**

1. Créez un compartiment S3 pour stocker les pièces jointes.

1. Créez une politique IAM pour le compartiment qui permet aux utilisateurs du SDK Amazon Chime de charger, de télécharger et de supprimer des pièces jointes de votre compartiment S3.

1. Créez un rôle IAM à utiliser par votre fournisseur d'identité pour vendre des informations d'identification aux utilisateurs pour les pièces jointes.

L'[exemple d'application](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat) fournit un exemple de la manière de procéder avec Amazon S3, Amazon Cognito et le SDK Amazon Chime.

# Comprendre les messages système pour la messagerie du SDK Amazon Chime
<a name="system-messages"></a>

Le SDK Amazon Chime envoie des messages système à tous les clients connectés pour les événements qui se déroulent dans les canaux. Les événements incluent :
+ `UPDATE_CHANNEL`— Cet événement signifie toute mise à jour apportée aux détails de la chaîne, tels que le nom ou les métadonnées.
+ `DELETE_CHANNEL`— Cet événement signifie que la chaîne et toutes ses données, y compris les messages, les adhésions, les modérateurs et les bannissements, seront supprimées.
+ `CREATE_CHANNEL_MEMBERSHIP`— Cet événement signifie qu'une personne `AppInstanceUser` a été ajoutée en tant que membre à la chaîne. L'événement contient également des détails sur les nouveautés`AppInstanceUser`.
+ `DELETE_CHANNEL_MEMBERSHIP`— Cet événement signifie qu'un `AppInstanceUser` a été retiré de la chaîne. L'événement contient également les `AppInstanceUser` informations supprimées.
+ `UPDATE_CHANNEL_MEMBERSHIP`— Cet événement s'applique uniquement aux canaux élastiques. L'événement signifie que l'équilibrage des membres a transféré l'ADN `AppInstanceUser` d'un sous-canal à un autre. L'événement contient également les `AppInstanceUser` détails, ainsi que les informations sur le sous-canal vers lequel ils ont `AppInstanceUser` été transférés.

# Exemples de rôles IAM pour la messagerie du SDK Amazon Chime
<a name="iam-roles"></a>

Pour que les utilisateurs puissent accéder aux fonctionnalités de messagerie du SDK Amazon Chime, vous devez définir un rôle et une politique IAM afin de fournir des informations d'identification aux utilisateurs lorsqu'ils se connectent. La politique IAM définit les ressources auxquelles les utilisateurs peuvent accéder.

Les exemples présentés dans cette section fournissent des politiques de base que vous pouvez adapter à vos besoins. Pour plus d'informations sur le fonctionnement des politiques, consultez[Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md). 

Cet exemple montre une politique pour les développeurs qui créent des applications à l'aide de la messagerie du SDK Amazon Chime.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "chime:CreateAppInstance",
                "chime:DescribeAppInstance",
                "chime:ListAppInstances",
                "chime:UpdateAppInstance",
                "chime:DeleteAppInstance",
                "chime:CreateAppInstanceUser",
                "chime:DeleteAppInstanceUser",
                "chime:ListAppInstanceUsers",
                "chime:UpdateAppInstanceUser",
                "chime:DescribeAppInstanceUser",
                "chime:CreateAppInstanceAdmin",
                "chime:DescribeAppInstanceAdmin",
                "chime:ListAppInstanceAdmins",
                "chime:DeleteAppInstanceAdmin",
                "chime:PutAppInstanceRetentionSettings",
                "chime:GetAppInstanceRetentionSettings",
                "chime:PutAppInstanceStreamingConfigurations",
                "chime:GetAppInstanceStreamingConfigurations",
                "chime:DeleteAppInstanceStreamingConfigurations",
                "chime:TagResource",
                "chime:UntagResource",
                "chime:ListTagsForResource",
                "chime:CreateChannelFlow",
                "chime:UpdateChannelFlow",
                "chime:DescribeChannelFlow",
                "chime:DeleteChannelFlow",
                "chime:ListChannelFlows",
                "chime:ListChannelsAssociatedWithChannelFlow",
                "chime:ChannelFlowCallback"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

Cet exemple montre une politique qui permet aux utilisateurs d'accéder aux actions utilisateur du SDK Amazon Chime.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "chime:GetMessagingSessionEndpoint",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "chime:CreateChannel",
                "chime:DescribeChannel",
                "chime:DeleteChannel",
                "chime:UpdateChannel",
                "chime:ListChannels",
                "chime:Listsubchannels",
                "chime:ListChannelMembershipsForAppInstanceUser",
                "chime:DescribeChannelMembershipForAppInstanceUser",
                "chime:ListChannelsModeratedByAppInstanceUser",
                "chime:DescribeChannelModeratedByAppInstanceUser",
                "chime:UpdateChannelReadMarker",
                "chime:CreateChannelModerator",
                "chime:DescribeChannelModerator",
                "chime:ListChannelModerators",
                "chime:DeleteChannelModerator",
                "chime:SendChannelMessage",
                "chime:GetChannelMessage",
                "chime:DeleteChannelMessage",
                "chime:UpdateChannelMessage",
                "chime:RedactChannelMessage",
                "chime:ListChannelMessages",
                "chime:CreateChannelMembership",
                "chime:DescribeChannelMembership",
                "chime:DeleteChannelMembership",
                "chime:ListChannelMemberships",
                "chime:CreateChannelBan",
                "chime:DeleteChannelBan",
                "chime:ListChannelBans",
                "chime:DescribeChannelBan",
                "chime:Connect",
                "chime:AssociateChannelFlow",
                "chime:DisassociateChannelFlow",
                "chime:GetChannelMessageStatus"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/app_instance_user_id",
                "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
            ]
        }
    ]
}
```

------

Cet exemple montre une politique qui donne aux utilisateurs un accès minimal aux actions des utilisateurs du SDK Amazon Chime.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "chime:GetMessagingSessionEndpoint",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "chime:ListChannels",
                "chime:DescribeChannel",
                "chime:ListChannelMembershipsForAppInstanceUser",
                "chime:DescribeChannelMembershipForAppInstanceUser",
                "chime:ListChannelsModeratedByAppInstanceUser",
                "chime:DescribeChannelModeratedByAppInstanceUser",
                "chime:SendChannelMessage",
                "chime:GetChannelMessage",
                "chime:ListChannelMessages",
                "chime:Connect"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/app_instance_user_id",
                "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
            ]
        }
    ]
}
```

------

Cet exemple montre une politique permettant d'établir une WebSocket connexion pour un`AppInstanceUser`. Pour plus d'informations sur WebSocket les connexions, consultez[Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
     "Effect": "Allow",
     "Action": [
             "chime:Connect"
            ],
     "Resource": [
             "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/app_instance_user_id"
         ]
      }
   ]
}
```

------

# Comprendre l'autorisation par rôle
<a name="auth-by-role"></a>

Les tableaux de cette rubrique répertorient les actions que les utilisateurs d'instances d'applications peuvent exécuter, en fonction de leur rôle.

**Légende**
+ **Autorisé** — Si le contexte d'action/de ressource correct est spécifié dans la politique IAM, il peut être exécuté avec succès.
+ **Autorisé avec restrictions** — Si le contexte d'action/de ressource correct est spécifié dans la politique IAM, certaines conditions doivent être remplies pour exécuter l'action avec succès.
+ **Refusé** — Même si le contexte d'action/de ressource correct est spécifié dans la politique IAM, il sera toujours bloqué par le back-end.

**Topics**
+ [AppInstanceAdmin](#appinstanceadmin)
+ [ChannelModerator](#channelmoderator)
+ [Membre](#member)
+ [Non-membre](#non-member)

## AppInstanceAdmin
<a name="appinstanceadmin"></a>

Les administrateurs d'instances d'application peuvent effectuer des actions sur un canal au sein de l'instance d'application dont ils sont administrateurs.


| Nom d'API | Autorisé ou refusé | Remarques | 
| --- | --- | --- | 
| `UpdateChannel` | Autorisé avec restriction |  Impossible de mettre à jour ElasticChannelConfiguration une fois défini | 
| `DeleteChannel` | Autorisé |  | 
| `DescribeChannel` | Autorisé |  | 
| `ListChannel` | Autorisé |  | 
| `ListChannelMembershipsForAppInstanceUser` | Autorisé | Vous pouvez également renseigner le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre`AppInstanceUser`. | 
| `DescribeChannelMembershipForAppInstanceUser` | Autorisé | Vous pouvez également renseigner [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre`AppInstanceUser`. | 
| `ListChannelsModeratedByAppInstanceUser` | Autorisé | Vous pouvez également renseigner [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre AppInstanceUser. | 
| `DescribeChannelModeratedByAppInstanceUser` | Autorisé | Vous pouvez également renseigner [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre `ppInstanceUser` A. Les canaux élastiques ne sont pas autorisés. | 
| `CreateChannelMembership` | Autorisé |  | 
| `DescribeChannelMembership` | Autorisé |  | 
| `ListChannelMembership` | Autorisé |  | 
| `DeleteChannelMembership` | Autorisé |  | 
| `SendChannelMessage` | Autorisé avec restriction | Vous devez d'abord utiliser [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateChannelMembership.html)pour créer un abonnement pour vous-même, puis appelez l'API. | 
| `GetChannelMessage` | Autorisé |  | 
| `ListChannelMessage` | Autorisé |  | 
| `DeleteChannelMessage` | Autorisé |  | 
| `RedactChannelMessage` | Autorisé |  | 
| `UpdateChannelMessage` | Autorisé avec restriction | Vous ne pouvez modifier que vos propres messages. | 
| `CreateChannelModerator` | Autorisé |  | 
| `DeleteChannelModerator` | Autorisé |  | 
| `DescribeChannelModerator` | Autorisé |  | 
| `ListChannelModerator` | Autorisé |  | 
| `CreateChannelBan` | Autorisé avec restriction | La personne `AppInstanceUser` que vous bannissez ne peut pas être un `AppInstanceAdmin` ou le modérateur de cette chaîne. | 
| `DeleteChannelBan` | Autorisé avec restriction |  | 
| `DescribeChannelBan` | Autorisé |  | 
| `ListChannelBan` | Autorisé |  | 
| `UpdateChannelReadMarker` | Autorisé avec restriction | Pour les canaux non élastiques, vous devez utiliser [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API pour créer d'abord un abonnement pour vous-même, puis appelez l'API. Les canaux élastiques ne sont pas autorisés.  | 
|  `GetChannelMessage`  |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. Non autorisé pour les messages en cours de traitement par canal, sauf si vous êtes l'expéditeur du message. | 
| `ListChannelMessages` |  Autorisé |  | 
| `DeleteChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. | 
| `RedactChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. | 
| `UpdateChannelMessage` |  Autorisé avec restriction | Vous ne pouvez modifier que les messages que vous avez envoyés. | 
| `AssociateChannelFlow` |  Autorisé |  | 
| `DisassociateChannelFlow` |  Autorisé |  | 
| `GetChannelMessageStatus` |  Autorisé avec restriction | Vous ne pouvez obtenir le statut des messages que pour vos propres messages. | 
|  `ListSubChannels`  | Autorisé |  | 

## ChannelModerator
<a name="channelmoderator"></a>

Les modérateurs de chaînes ne peuvent effectuer des actions que sur les chaînes pour lesquelles ils ont le rôle de modérateur.

**Note**  
Un modérateur qui est autorisé à `AppInstanceAdmin` effectuer des actions sur les chaînes autorisées par ce rôle.


| Nom d'API | Autorisé ou refusé | Remarques | 
| --- | --- | --- | 
| `UpdateChannel` | Autorisé |  Impossible de mettre à jour ElasticChannelConfiguration une fois défini | 
| `DeleteChannel` | Autorisé  |  | 
| `DescribeChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannelMembershipsForAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelMembershipForAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `ListChannelsModeratedByAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelModeratedByAppInstanceUser` | Autorisé avec restriction | Vous pouvez également remplir un [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax)avec un autre AppInstanceUser. | 
| `CreateChannelMembership` | Autorisé |  | 
| `DescribeChannelMembership` | Autorisé |  | 
| `ListChannelMembership` | Autorisé |  | 
| `DeleteChannelMembership` | Autorisé |  | 
| `SendChannelMessage` | Autorisé avec restriction | Vous devez utiliser [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API pour créer d'abord un abonnement pour vous-même, puis appelez l'`SendChannelMessage`API. | 
| `GetChannelMessage` | Autorisé |  | 
| `ListChannelMessage` | Autorisé |  | 
| `DeleteChannelMessage` | Refusé |  | 
| `RedactChannelMessage` | Autorisé |  | 
| `UpdateChannelMessage` | Autorisé avec restriction | Vous ne pouvez mettre à jour que vos propres messages. | 
| `CreateChannelModerator` | Autorisé | Vous devez utiliser [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API pour créer d'abord un abonnement pour vous-même, puis appelez l'`CreateChannelModerator`API. | 
| `DeleteChannelModerator` | Autorisé |  | 
| `DescribeChannelModerator` | Autorisé |  | 
| `ListChannelModerator` | Autorisé |  | 
| `CreateChannelBan` | Autorisé avec restriction | La personne `AppInstanceUser` que vous bannissez ne peut pas être un `AppInstanceAdmin` ou le modérateur de cette chaîne. | 
| `DeleteChannelBan` | Autorisé avec restriction |  | 
| `DescribeChannelBan` | Autorisé |  | 
| `ListChannelBan` | Autorisé |  | 
| `UpdateChannelReadMarker` | Autorisé avec restriction |  Pour les canaux non élastiques, vous devez utiliser [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)pour créer d'abord un abonnement pour vous-même, puis appelez l'`UpdateChannelReadMarker`API.  Les canaux élastiques ne sont pas autorisés.  | 
| `GetChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. Non autorisé pour les messages en cours de traitement par canal, sauf si vous êtes l'expéditeur du message. | 
| `ListChannelMessages` |  Autorisé |  | 
| `DeleteChannelMessage` |  Refusé |  | 
| `RedactChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. | 
| `UpdateChannelMessage` |  Autorisé avec restriction | Vous ne pouvez modifier que les messages que vous avez envoyés. | 
| `AssociateChannelFlow` |  Autorisé |  | 
| `DisassociateChannelFlow` |  Autorisé |  | 
| `GetChannelMessageStatus` |  Autorisé avec restriction | Vous ne pouvez obtenir le statut des messages que pour vos propres messages. | 
|  `ListSubChannels`  | Autorisé |  | 

## Membre
<a name="member"></a>

Un `AppInstanceUser` devient membre d'une chaîne s'il est ajouté à la chaîne via [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API. 

Les membres ne peuvent effectuer des actions que sur les chaînes auxquelles ils appartiennent.

**Note**  
Un membre qui est `AppInstanceAdmin` ou `ChannelModerator` peut effectuer des actions sur les canaux autorisés par ces deux rôles.


| Nom d'API | Autorisé ou refusé | Remarques | 
| --- | --- | --- | 
| `UpdateChannel` | Refusé |  | 
| `DeleteChannel` | Refusé |  | 
| `DescribeChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannelMembershipsForAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelMembershipForAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `ListChannelsModeratedByAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelModeratedByAppInstanceUser` | Autorisé avec restriction |  Vous pouvez également remplir un [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre AppInstanceUser. Les canaux élastiques ne sont pas autorisés. | 
| `CreateChannelMembership` | Autorisé avec restriction | Vous ne pouvez ajouter d'autres membres que pour [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html#chime-CreateChannel-request-Mode](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html#chime-CreateChannel-request-Mode)canal. | 
| `DescribeChannelMembership` | Autorisé |  | 
| `ListChannelMembership` | Autorisé |  | 
| `DeleteChannelMembership` | Autorisé |  | 
| `SendChannelMessage` | Autorisé |  | 
| `GetChannelMessage` | Autorisé |  | 
| `ListChannelMessage` | Autorisé |  | 
| `DeleteChannelMessage` | Refusé |  | 
| `RedactChannelMessage` | Autorisé avec restriction | Vous ne pouvez rédiger que vos propres messages. | 
| `UpdateChannelMessage` | Autorisé avec restriction | Vous ne pouvez mettre à jour que vos propres messages. | 
| `CreateChannelModerator` | Refusé |  | 
| `DeleteChannelModerator` | Refusé |  | 
| `DescribeChannelModerator` | Refusé |  | 
| `ListChannelModerator` | Refusé |  | 
| `CreateChannelBan` | Refusé |  | 
| `DeleteChannelBan` | Refusé |  | 
| `DescribeChannelBan` | Refusé |  | 
| `ListChannelBan` | Refusé |  | 
| `UpdateChannelReadMarker` | Autorisé avec restriction |  Les canaux élastiques ne sont pas autorisés.  | 
| `GetChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. Non autorisé pour les messages en cours de traitement par canal, sauf si vous êtes l'expéditeur du message. | 
| `ListChannelMessages` |  Autorisé |  | 
| `DeleteChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. | 
| `RedactChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. | 
| `UpdateChannelMessage` |  Autorisé avec restriction | Vous ne pouvez modifier que les messages que vous avez envoyés. | 
| `AssociateChannelFlow` |  Refusé |  | 
| `DisassociateChannelFlow` |  Refusé |  | 
| `GetChannelMessageStatus` |  Autorisé avec restriction | Vous ne pouvez obtenir le statut des messages que pour vos propres messages. | 
| `Listsubchannels` | Refusé |  | 

## Non-membre
<a name="non-member"></a>

Les non-membres sont des habitués `AppInstanceUser` et ne peuvent effectuer aucune action liée à la chaîne à moins que vous n'utilisiez [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)API pour les ajouter.

**Note**  
Un non-membre qui est `AppInstanceAdmin` ou `ChannelModerator` peut effectuer des actions liées à la chaîne autorisées par ces deux rôles.


| Nom d'API | Autorisé ou refusé | Remarques | 
| --- | --- | --- | 
| `UpdateChannel` | Refusé |  | 
| `DeleteChannel` | Refusé |  | 
| `DescribeChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannel` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannelMembershipsForAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelMembershipForAppInstanceUser` | Autorisé avec restriction | Vous pouvez également remplir un [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_DescribeChannelModeratedByAppInstanceUser.html#API_DescribeChannelModeratedByAppInstanceUser_RequestSyntax)avec un autre`AppInstanceUser`. Les canaux élastiques ne sont pas autorisés. | 
| `ListChannelsModeratedByAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `DescribeChannelModeratedByAppInstanceUser` | Autorisé avec restriction | Vous ne pouvez utiliser votre ARN que comme [AppInstanceUserArnValeur ](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_ListChannelMembershipsForAppInstanceUser.html#API_ListChannelMembershipsForAppInstanceUser_RequestSyntax). | 
| `CreateChannelMembership` | Refusé |  | 
| `DescribeChannelMembership` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannelMembership` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `DeleteChannelMembership` | Refusé |  | 
| `SendChannelMessage` | Refusé |  | 
| `GetChannelMessage` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `ListChannelMessage` | Autorisé avec restriction | Vous ne pouvez obtenir des informations que pour les chaînes publiques. | 
| `DeleteChannelMessage` | Refusé |  | 
| `RedactChannelMessage` | Refusé |  | 
| `UpdateChannelMessage` | Refusé |  | 
| `CreateChannelModerator` | Refusé |  | 
| `DeleteChannelModerator` | Refusé |  | 
| `DescribeChannelModerator` | Refusé |  | 
| `ListChannelModerator` | Refusé |  | 
| `CreateChannelBan` | Refusé |  | 
| `DeleteChannelBan` | Refusé |  | 
| `DescribeChannelBan` | Refusé |  | 
| `ListChannelBan` | Refusé |  | 
| `UpdateChannelReadMarker` | Refusé |  | 
| `GetChannelMessage` |  Autorisé avec restriction | Autorisé uniquement pour les messages envoyés. Non autorisé pour les messages en cours de traitement par canal, sauf si vous êtes l'expéditeur du message. | 
| `ListChannelMessages` |  Autorisé avec restriction |  | 
| `DeleteChannelMessage` |  Refusé | Refusé | 
| `RedactChannelMessage` |  Refusé |  | 
| `UpdateChannelMessage` |  Refusé |  | 
| `AssociateChannelFlow` |  Refusé |  | 
| `DisassociateChannelFlow` |  Refusé |  | 
| `GetChannelMessageStatus` |  Autorisé avec restriction | Vous ne pouvez obtenir le statut des messages que pour vos propres messages. | 

# Diffusion de données de messagerie dans la messagerie du SDK Amazon Chime
<a name="streaming-export"></a>

Vous pouvez configurer un `AppInstance` pour recevoir des données, telles que des messages et des événements de canal, sous la forme d'un flux. Vous pouvez ensuite réagir à ces données en temps réel. Actuellement, la messagerie du SDK Amazon Chime accepte uniquement les flux Kinesis comme destinations de flux. Pour utiliser les flux Kinesis avec cette fonctionnalité, vous devez remplir les conditions suivantes :
+ Les flux Kinesis doivent être enregistrés sur le même AWS compte que le. `AppInstance`
+ Un flux doit se trouver dans la même région que le`AppInstance`.
+ Les noms de flux ont un préfixe qui commence `chime-messaging-` par.
+ Vous devez configurer au moins deux partitions. Chaque partition peut recevoir des données jusqu'à 1 Mo par seconde, alors adaptez votre flux en conséquence.
+ Vous devez activer le chiffrement côté serveur (SSE).

**Pour configurer un flux Kinesis**

1. Créez un ou plusieurs flux Kinesis à l'aide des prérequis décrits dans la section précédente, puis obtenez l'ARN. Assurez-vous que l'appelant dispose des autorisations Kinesis en plus des autorisations Amazon Chime.

   Les exemples suivants montrent comment utiliser la AWS CLI pour créer un flux Kinesis avec deux partitions et comment activer SSE.

   `aws kinesis create-stream --stream-name chime-messaging-unique-name --shard-count 2`

   `aws kinesis start-stream-encryption --stream-name chime-messaging-unique-name --encryption-type KMS --key-id "alias/aws/kinesis"`

1. Configurez le streaming en appelant l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html)API.

   Vous pouvez configurer l'un des deux types de données ou les deux, et vous pouvez choisir le même flux ou des flux distincts pour ces deux types de données.

   Les exemples suivants montrent comment utiliser la AWS CLI pour configurer et `appinstance` diffuser les types de `Channel` données `ChannelMessage` et.

   ```
   aws chime-sdk-messaging put-messaging-streaming-configurations --app-instance-arn app_instance_arn \
   --streaming-configurations DataType=ChannelMessage,ResourceArn=kinesis_data_stream_arn
   ```

   ```
   aws chime-sdk-messaging put-messaging-streaming-configurations --app-instance-arn app_instance_arn \
   --streaming-configurations DataType=Channel,ResourceArn=kinesis_data_stream_arn
   ```

   Les types de données ont les champs d'application suivants :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/streaming-export.html)

1. Commencez à lire les données de votre flux Kinesis configuré.
**Note**  
Les événements envoyés avant de configurer le streaming ne sont pas envoyés vers votre flux Kinesis.

**Format de données**  
Kinesis génère des enregistrements au format JSON avec les champs suivants : `EventType` et. `Payload` Le format de charge utile dépend du`EventType`. Le tableau suivant répertorie les types d'événements et les formats de charge utile correspondants.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/chime-sdk/latest/dg/streaming-export.html)

# Utilisation de canaux élastiques pour organiser des événements en direct dans le cadre des réunions du SDK Amazon Chime
<a name="elastic-channels"></a>

Les canaux élastiques permettent des expériences de chat à grande échelle avec jusqu'à un million de membres. Les utilisations typiques incluent les soirées de surveillance pour des événements sportifs ou politiques. Vous ne pouvez utiliser les canaux élastiques que dans la région de l'est des États-Unis (Virginie du Nord).

Un canal élastique se compose d'un canal unique avec une configuration commune, plus un nombre variable (ou *élastique*) de sous-canaux. La configuration inclut également des seuils minimum et maximum pour les membres des sous-canaux. 

Supposons, par exemple, que vous créiez un canal élastique avec 100 sous-canaux et que, pour les sous-canaux, vous définissiez un seuil bas de 500 membres et un seuil élevé de 10 000 membres. Lorsque les utilisateurs rejoignent cet exemple de canal, le système les affecte automatiquement à un seul sous-canal jusqu'à ce que le nombre de membres dépasse 10 000. À ce stade, le système crée un nouveau sous-canal et y ajoute de nouveaux membres. Lorsque les utilisateurs partent, le système supprime les sous-canaux et répartit les membres sur les sous-canaux restants.

La répartition de l'audience entre les sous-canaux permet aux participants de suivre plus facilement les conversations. Les modérateurs ont également réduit leur charge de travail, car ils n'ont besoin de regarder que certaines sous-chaînes. En outre, les modérateurs peuvent utiliser les outils intégrés fournis par les canaux élastiques. Par exemple, les modérateurs peuvent [bannir des utilisateurs](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html) d'une chaîne, [créer des modérateurs](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html) et utiliser les [flux de chaînes](https://docs.aws.amazon.com/chime-sdk/latest/dg/using-channel-flows.html) pour modérer automatiquement tous les messages de la chaîne.

Pour plus d'informations sur les quotas de messagerie du SDK Amazon Chime, reportez-vous à la section Quotas de [messagerie](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html) du manuel de référence général du SDK *Amazon Chime*.

**Topics**
+ [Conditions préalables](#elastic-prereqs)
+ [Concepts de canaux élastiques](#elastic-concepts)
+ [Fonctionnalités supplémentaires prises en charge](#additional-features)
+ [Création de canaux élastiques pour les réunions du SDK Amazon Chime](create-elastic-channel.md)
+ [Gestion des membres d'Elastic Channel pour les réunions du SDK Amazon Chime](manage-elastic-members.md)
+ [Envoi de messages Elastic Channel lors des réunions du SDK Amazon Chime](send-messages-elastic.md)
+ [Comprendre les messages WebSocket du système dans les canaux élastiques pour les réunions du SDK Amazon Chime](websocket-messages-elastic.md)
+ [Utilisation des flux Kinesis pour recevoir des messages système pour les réunions du SDK Amazon Chime](elastic-onboard-streams.md)
+ [Test des canaux élastiques pour les réunions du SDK Amazon Chime dans notre application de démonstration](elastic-testing.md)

## Conditions préalables
<a name="elastic-prereqs"></a>

Pour utiliser les canaux élastiques, vous devez disposer des éléments suivants.
+ Connaissance des fonctionnalités de messagerie du SDK Amazon Chime, telles que la gestion des canaux et l'envoi et la réception de messages.
+ Possibilité d'invoquer la messagerie du SDK Amazon Chime. APIs

## Concepts de canaux élastiques
<a name="elastic-concepts"></a>

Pour utiliser efficacement les canaux élastiques, vous devez comprendre ces concepts.

**Sous-canaux**  
Les canaux élastiques divisent leurs membres en conteneurs logiques appelés sous-canaux. Lorsque vous ajoutez un `AppInstanceUser` à un canal élastique, l'utilisateur devient membre d'un sous-canal. Cet utilisateur peut envoyer et recevoir des messages, mais uniquement avec les autres membres de ce sous-canal. Le système n'autorise jamais les messages d'un sous-canal à apparaître dans d'autres sous-canaux.

**Mise à l’échelle**  
Pour favoriser l'engagement des utilisateurs, chaque sous-canal doit répondre à une exigence minimale d'adhésion. Vous fournissez cette valeur lorsque vous créez un canal élastique. Lorsque les utilisateurs rejoignent ou quittent un événement, le système transfère les membres vers différents sous-canaux, ce qui rend l'ensemble du canal « élastique ». Les sous-canaux exécutent les actions de dimensionnement suivantes.  
+ **SCALE\$1OUT** — Lorsqu'une nouvelle demande d'adhésion à un canal Elastic arrive et que tous les sous-canaux sont pleins, le système évolue en créant un nouveau sous-canal, puis en transférant les adhésions des sous-canaux existants vers le nouveau sous-canal.
+ **SCALE\$1IN** — Lorsque le nombre de membres d'un sous-canal est inférieur au minimum requis et qu'un autre sous-canal a la capacité d'accueillir tous les membres du premier sous-canal, un `SCALE_IN` événement transfère ces adhésions, puis supprime le sous-canal et tous les messages.
Si vous devez accéder aux messages provenant de chaînes supprimées, vous devez d'abord activer le streaming des messages. Pour plus d’informations, consultez [Diffusion de données de messagerie dans la messagerie du SDK Amazon Chime](streaming-export.md).

**Transfert de membre**  
Cela se produit lorsque l'équilibrage des membres déplace un canal `AppInstanceUser` d'un sous-canal à un autre. L'`AppInstanceUser`alambic appartient au canal élastique après le transfert. Cependant, le nouveau sous-canal contient des adhésions et des messages différents, de sorte que les messages envoyés par le `AppInstanceUser` après le transfert sont adressés à ces différents membres. L'équilibrage des membres n'affecte pas les adhésions des modérateurs.

**Note**  
 Les canaux Elastic ne prennent pas en charge les adhésions masquées, les préférences d'adhésion et les horodatages des messages de lecture.

## Fonctionnalités supplémentaires prises en charge
<a name="additional-features"></a>

Les canaux élastiques prennent également en charge ces fonctionnalités de messagerie.
+ [Prefetch](websockets.md#prefetch)
+ [Débits des canaux](using-channel-flows.md)

# Création de canaux élastiques pour les réunions du SDK Amazon Chime
<a name="create-elastic-channel"></a>

Vous utilisez le `ElasticChannelConfiguration` champ de l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)API pour créer un canal élastique. Une fois que vous avez créé un canal élastique, vous créez des adhésions à un canal.

**Note**  
Pour les canaux non élastiques, le canal `AppInstanceUser` qui crée le canal est automatiquement ajouté à ce canal en tant que membre et modérateur. Pour les canaux élastiques, le créateur de la chaîne est uniquement ajouté en tant que modérateur.
Vous ne pouvez pas mettre à `ElasticChannelConfiguration` jour un set unique.
Vous ne pouvez pas mettre à jour un canal d'élastique à un canal non élastique et vice-versa.
Vous ne pouvez pas inclure de liste de membres ARNs dans une demande d'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)API. Vous pouvez toutefois inclure une liste de modérateurs. ARNs
Vous ne pouvez pas créer de canal élastique `UNRESTRICTED` de type.

# Gestion des membres d'Elastic Channel pour les réunions du SDK Amazon Chime
<a name="manage-elastic-members"></a>

Pour gérer les membres d'un canal élastique, utilisez les [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)touches [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html), et [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html) APIs. Les informations suivantes expliquent comment les utiliser.

**Abonnements aux chaînes**  
L'`CreateChannelMembership`API crée des adhésions au niveau des sous-canaux. Les sous-canaux peuvent inclure des modérateurs et des membres réguliers.  
+ **Modérateurs** — Vous pouvez ajouter des modérateurs à plusieurs sous-canaux. Cela permet aux modérateurs d'envoyer des messages sur chacun des sous-canaux auxquels ils appartiennent. Lorsque vous ajoutez un modérateur à une sous-chaîne, vous devez fournir le. `SubChannelId`

  Si vous souhaitez attribuer automatiquement des modérateurs à de nouvelles sous-chaînes, vous pouvez [activer le streaming des messages](streaming-export.md), écouter les événements de création de sous-chaînes, puis créer un abonnement de modérateur en réponse à ces événements.

  Enfin, vous pouvez supprimer les modérateurs de sous-chaînes spécifiques ou de toutes les sous-chaînes. Vous utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DeleteChannelMembership.html)API dans les deux cas. Pour supprimer un modérateur d'une sous-chaîne spécifique, vous devez fournir le. `SubChannelId` Si vous ne fournissez pas d'identifiant pour une sous-chaîne, le système supprime le modérateur de toutes les sous-chaînes. Enfin, vous pouvez utiliser l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListSubChannels](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListSubChannels)API pour répertorier les sous-canaux et le nombre de membres de chacun.
+ **Membres réguliers** : ils constituent la majorité des abonnements aux chaînes. Vous ne pouvez ajouter un membre normal qu'à une seule sous-chaîne. De plus, vous ne pouvez pas transmettre un `SubChannelId` lors de la création ou de la suppression d'abonnements à une chaîne, car le système contrôle le sous-canal dans lequel un abonnement est créé.

**Modérateurs de chaînes**  
L'`CreateChannelModerator`API crée des modérateurs au niveau du canal élastique. Les modérateurs peuvent consulter tous les messages dans tous les sous-canaux. Lorsque vous promouvez un membre régulier au poste de modérateur de chaîne, le système supprime toutes les adhésions existantes à la chaîne pour ce membre. Il en va de même lorsque vous rétrogradez un modérateur.

**Interdictions de chaînes**  
L'`CreateChannelBan`API crée des interdictions au niveau du canal élastique. Un banni ne `AppInstanceUser` peut appartenir à aucune sous-chaîne. Lorsque vous bannissez un membre, le système supprime toutes les adhésions à la chaîne de ce membre.

# Envoi de messages Elastic Channel lors des réunions du SDK Amazon Chime
<a name="send-messages-elastic"></a>

L'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API crée des messages au niveau du sous-canal. Pour envoyer des messages, vous devez disposer d'un`subChannelId`. Vous pouvez également utiliser le [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_UpdateChannelMessage.html)et [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_RedactChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_RedactChannelMessage.html) APIs pour modifier et supprimer des messages, mais dans tous les cas, vous devez disposer d'un`subChannelId`.

**Note**  
Les expéditeurs de messages ne peuvent modifier ou biffer des messages que s'ils appartiennent au sous-canal auquel ils envoient des messages. Si l'équilibrage des membres transfère un membre vers un autre sous-canal, ce membre peut uniquement modifier ou expurger les messages qu'il envoie sur ce nouveau sous-canal.

# Comprendre les messages WebSocket du système dans les canaux élastiques pour les réunions du SDK Amazon Chime
<a name="websocket-messages-elastic"></a>

Le SDK Amazon Chime envoie des messages système à tous les clients connectés pour les événements qui se déroulent dans les canaux. La liste suivante décrit les messages système pour les canaux élastiques.

**Événements liés aux messages**  
Les charges utiles d'événements pour les canaux élastiques contiennent le `subChannelId` champ. Les charges utiles pour les canaux non élastiques restent les mêmes.

**Événements pour les membres**  
Les `DELETE_CHANNEL_MEMBERSHIP` événements `CREATE_CHANNEL_MEMBERSHIP` et le `subChannelId` terrain font désormais partie de leur charge utile.   
Les canaux élastiques ne prennent pas en charge l'`BATCH_CREATE_CHANNEL_MEMBERHSIP`événement. Lorsque vous appelez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_BatchCreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_BatchCreateChannelMembership.html)API, le système envoie des `CREATE_CHANNEL_MEMBERSHIP` événements individuels.  
Vous pouvez désormais utiliser le type d'`UPDATE_CHANNEL_MEMBERSHIP`événement pour signaler les modifications apportées aux informations d'adhésion. Par exemple, lors du transfert d'un membre d'un sous-canal à un autre, le système envoie un `UPDATE_CHANNEL_MEMBERSHIP` événement avec le nouveau `SubChannelId` dans la charge utile pour indiquer que le membre a été transféré.   
Le système envoie l'`UPDATE_CHANNEL_MEMBERSHIP`événement uniquement au membre transféré, et non aux autres membres du sous-canal. C'est pourquoi nous vous encourageons à utiliser l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMemberships.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_ListChannelMemberships.html)API plutôt que de remplir WebSockets les listes de membres de votre chaîne. Pour plus d’informations, consultez [Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md). 

# Utilisation des flux Kinesis pour recevoir des messages système pour les réunions du SDK Amazon Chime
<a name="elastic-onboard-streams"></a>

Vous pouvez configurer un `AppInstance` pour recevoir des données sous forme de flux. Par exemple, un flux peut inclure des messages, des événements de sous-canal et des événements de canal.

Dans ce cadre, nous soutenons les `DELETE_SUB_CHANNEL` événements `CREATE_SUB_CHANNEL` et. Ils indiquent à quel moment une sous-chaîne a été créée ou supprimée dans le cadre de l'équilibrage des membres. Pour plus d'informations sur la réception de flux de données, reportez-vous à[Diffusion de données de messagerie dans la messagerie du SDK Amazon Chime](streaming-export.md).

# Test des canaux élastiques pour les réunions du SDK Amazon Chime dans notre application de démonstration
<a name="elastic-testing"></a>

[Vous pouvez tester toutes les fonctionnalités de messagerie du SDK Amazon Chime sur GitHub /. https://github.com/aws-samples/ amazon-chime-sdk tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat) 

# Utilisation des notifications push mobiles pour la messagerie du SDK Amazon Chime afin de recevoir des messages
<a name="using-push-notifications"></a>

Vous pouvez configurer Amazon Chime SDK Messaging pour envoyer des messages aux canaux de notification push mobiles. Le SDK Amazon Chime nécessite une application Amazon Pinpoint configurée pour les notifications push. Votre application Amazon Pinpoint doit répondre aux conditions préalables suivantes : 
+ Votre application Amazon Pinpoint doit avoir au moins un canal FCM ou APNS configuré et activé.
+ Votre application Amazon Pinpoint doit résider dans le même AWS compte et dans la même région que votre instance d'application Amazon Chime SDK.

**Note**  
Par défaut, tous les membres d'un canal de notification push reçoivent les notifications push, y compris les expéditeurs de messages. Vous pouvez toutefois définir une règle de filtrage qui empêche les messages d'être envoyés aux expéditeurs. Pour plus d’informations, consultez [Utilisation de règles de filtrage pour filtrer les messages du SDK Amazon Chime](filter-msgs.md), plus loin dans cette section.

**Topics**
+ [Création d'une application Amazon Pinpoint pour la messagerie du SDK Amazon Chime](create-pinpoint.md)
+ [Création d'un rôle de service pour la messagerie du SDK Amazon Chime](create-service-role.md)
+ [Enregistrer un point de terminaison d'appareil mobile en tant qu'utilisateur d'une instance d'application pour la messagerie du SDK Amazon Chime](register-endpoint.md)
+ [Envoyer un message de chaîne avec les notifications activées dans la messagerie du SDK Amazon Chime](send-channel-msg-with-notifications.md)
+ [Réception de notifications push dans la messagerie du SDK Amazon Chime](receive-notifications.md)
+ [Débogage des échecs de notification push pour la messagerie du SDK Amazon Chime](debug-notifications.md)
+ [Utilisation de règles de filtrage pour filtrer les messages du SDK Amazon Chime](filter-msgs.md)

# Création d'une application Amazon Pinpoint pour la messagerie du SDK Amazon Chime
<a name="create-pinpoint"></a>

Pour envoyer des notifications push, le SDK Amazon Chime nécessite une application Amazon Pinpoint configurée pour envoyer des notifications push à votre application mobile. Les étapes suivantes expliquent comment utiliser la AWS console pour créer une application Pinpoint.

**Pour créer une application Amazon Pinpoint**

1. Connectez-vous à la console de AWS gestion et ouvrez la console Amazon Pinpoint à l'adresse. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

   Si vous utilisez Amazon Pinpoint pour la première fois, vous voyez une page qui vous présente les fonctions du service.

1. Dans la section **Get started (Mise en route)**, saisissez un nom pour votre projet, puis choisissez **Create a project (Créer un projet)**.

1. Sur la page **Configurer les fonctionnalités**, à côté de **Notifications push**, choisissez **Configurer**.

1. Sur la page **Configurer les notifications push**, activez le **service de notification push Apple (APNs)**, **Firebase Cloud Messaging (FCM)**, ou les deux, et complétez les champs obligatoires.
**Important**  
Le SDK Amazon Chime prend actuellement en charge uniquement l'envoi de notifications push à et à APNs FCM.

1. Lorsque vous avez terminé, choisissez **Save (Sauvegarder)**.

1. Retournez à la console Amazon Pinpoint à l'adresse [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)et notez la valeur de l'**ID du projet**. Vous l'utilisez comme ARN pour votre application Amazon Pinpoint.

# Création d'un rôle de service pour la messagerie du SDK Amazon Chime
<a name="create-service-role"></a>

AWS utilise des rôles de service pour accorder des autorisations à un AWS service afin qu'il puisse accéder aux AWS ressources. Les politiques que vous attachez à un rôle de service déterminent les ressources auxquelles le service peut accéder et ce qu'il peut faire avec ces ressources. Le rôle de service que vous créez pour le SDK Amazon Chime autorise le service à passer des `SendMessages` appels vers votre application Amazon Pinpoint.

**Pour créer un rôle de service**

1. Connectez-vous à la console de AWS gestion et ouvrez la console IAM à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation, choisissez **Policies**, puis **Create Policy**.

1. Choisissez l'onglet **JSON** et copiez la politique ci-dessous dans la zone de texte. Assurez-vous de le `project_id` remplacer par l'ID de l'application Amazon Pinpoint créée à l'étape précédente, puis `aws_account_id` par votre identifiant de AWS compte.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Action": "mobiletargeting:SendMessages",
           "Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/project_id/messages",
           "Effect": "Allow"
       }
   }
   ```

------

1. Choisissez **Suivant : Balises**.

1. Choisissez **Suivant : Réviser**, entrez **AmazonChimePushNotificationPolicy** dans le champ **Nom**, puis choisissez **Créer une politique**.

1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

1. Sur la page **Créer un rôle**, choisissez un **AWS service**, ouvrez la liste **Choisissez un cas d'utilisateur** et choisissez **EC2**.

1. Choisissez **Suivant : Autorisations**, puis dans la zone de recherche**AmazonChimePushNotificationPolicy**, entrez et cochez la case à côté de la politique.

1. Choisissez **Suivant : Balises**.

1. Choisissez **Suivant : Réviser**, puis entrez **ServiceRoleForAmazonChimePushNotification** dans le champ **Nom**. 
**Important**  
Vous devez utiliser le nom indiqué ci-dessus. Le SDK Amazon Chime n'accepte que ce nom spécifique.

1. Choisissez **Créer un rôle**, puis sur la page **Rôles**, entrez **ServiceRoleForAmazonChimePushNotification** dans le champ de recherche et choisissez le rôle correspondant.

1. Choisissez l'onglet **Relations de confiance**, choisissez **Modifier la relation de confiance** et remplacez la politique existante par celle ci-dessous.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "messaging.chime.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
       ]
   }
   ```

------

1. Choisissez **Mettre à jour la politique d'approbation**.

**Important**  
La modification du rôle en modifiant le nom, la politique d'autorisation ou la politique de confiance peut perturber la fonctionnalité de notification push. 

# Enregistrer un point de terminaison d'appareil mobile en tant qu'utilisateur d'une instance d'application pour la messagerie du SDK Amazon Chime
<a name="register-endpoint"></a>

Pour recevoir des notifications push, les utilisateurs de l'instance d'application doivent d'abord utiliser l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html)API pour enregistrer un appareil mobile. Ils doivent s'inscrire à partir d'une application mobile ayant accès au jeton de l'appareil pour le système d'exploitation de l'appareil.

Pour garantir que l'utilisateur de l'instance d'application a accès à l'application Amazon Pinpoint répertoriée dans l'ARN, l'utilisateur doit être autorisé à appeler `mobiletargeting:GetApp` sur l'ARN Amazon Pinpoint. Dans le cas contraire, le SDK Amazon Chime génère une erreur 403 Forbidden lors de l'appel. [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html)

Cet exemple montre la politique nécessaire pour enregistrer un point de terminaison.

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

****  

```
{ 
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionToRegisterEndpoint",
            "Effect": "Allow",
            "Action": "chime:RegisterAppInstanceUserEndpoint",
            "Resource": "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/app_instance_user_id"
        },
        {
            "Sid": "PermissionToGetAppOnPinpoint",
            "Effect": "Allow",
            "Action": "mobiletargeting:GetApp",
            "Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/project_id"
        }
    ]
}
```

------

**Pour enregistrer un point de terminaison**
+ Utilisez l'ARN Amazon Pinpoint et le jeton de votre appareil pour appeler l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_RegisterAppInstanceUserEndpoint.html)API.

# Envoyer un message de chaîne avec les notifications activées dans la messagerie du SDK Amazon Chime
<a name="send-channel-msg-with-notifications"></a>

L'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API possède un `PushNotification` attribut facultatif que le SDK Amazon Chime utilise pour créer la notification push à envoyer à Amazon Pinpoint. Actuellement, le SDK Amazon Chime prend uniquement en charge le titre et les champs du corps de la notification. 

Le SDK Amazon Chime prend également en charge les push APNs VoIP. Pour envoyer une notification push sous forme de push APNs VoIP, définissez le type dans l'`PushNotification`attribut sur VOIP.

# Réception de notifications push dans la messagerie du SDK Amazon Chime
<a name="receive-notifications"></a>

Outre le titre et le corps de la notification push du message du canal, le SDK Amazon Chime inclut également l'ID du message du canal et l'ARN du canal dans la charge utile des données. Vous utilisez ces informations pour charger le message complet de la chaîne.

Les exemples suivants montrent une charge utile typique d'une notification push.

```
{
    "pinpoint.openApp=true",
    "pinpoint.notification.title=PushNotificationTitle",
    "pinpoint.notification.body=PushNotificationBody",
    "pinpoint.campaign.campaign_id=_DIRECT",
    "pinpoint.notification.silentPush=0",
    "pinpoint.jsonBody="{
        "chime.message_id":"ChannelMessageId",
        "chime.channel_arn":"ChannelARN"
    }
}
```

## Désactiver ou filtrer les reçus de notifications push
<a name="disable-filter-receipt"></a>

Le SDK Amazon Chime propose plusieurs options permettant aux utilisateurs d'instances d'applications de contrôler s'ils souhaitent recevoir des notifications push.

**Désactiver toutes les notifications push**  
 Les utilisateurs de l'instance d'application peuvent désactiver complètement les notifications push en appelant [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_UpdateAppInstanceUserEndpoint.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_UpdateAppInstanceUserEndpoint.html)et en définissant l'`AllowMessages`attribut sur`NONE`. 

**Désactiver les notifications push pour une chaîne**  
Les utilisateurs d'instances d'applications peuvent désactiver les notifications push pour une chaîne spécifique [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html)en appelant `NONE` dans le champ **PushNotification Préférences**. 

**Filtrer les notifications push pour une chaîne**  
Les utilisateurs d'App Instance peuvent définir une règle de filtrage afin de ne recevoir que des notifications push spécifiques à l'aide de l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html)API. Pour plus d’informations, consultez [Utilisation de règles de filtrage pour filtrer les messages du SDK Amazon Chime](filter-msgs.md). 

# Débogage des échecs de notification push pour la messagerie du SDK Amazon Chime
<a name="debug-notifications"></a>

Le SDK Amazon Chime s'intègre à Amazon afin de vous informer EventBridge en cas d'échec de livraison de messages push. Pour résoudre d'autres problèmes de débogage, vous pouvez également consulter les [CloudWatchindicateurs](https://docs.aws.amazon.com/pinpoint/latest/userguide/monitoring-metrics.html) envoyés par Amazon Pinpoint en cas d'échec.

Le tableau suivant répertorie et décrit les messages d'erreur de livraison.


| Message | Description | 
| --- | --- | 
| Le traitement de la demande a échoué en raison d'une erreur, d'une exception ou d'un échec inconnu. | Une erreur interne s'est produite. Veuillez réessayer. | 
| La ressource spécifiée est introuvable. AppInstanceUserEndpointsera désactivé. | L'application Amazon Pinpoint n'existe pas. | 
| Trop de demandes ont été envoyées à Amazon Pinpoint. | Amazon Pinpoint a limité le nombre de vos messages sortants. | 
| Impossible d'envoyer des messages. Vérifiez la politique d'autorisation IAM sur ServiceRoleForAmazonChimePushNotification. | Le rôle créé pour le SDK Amazon Chime n'est pas autorisé à appeler. `mobiletargeting:SendMessages` Vérifiez la politique IAM relative au rôle. | 
| Impossible d'envoyer des messages. Vérifiez les relations de confiance IAM sur ServiceRoleForAmazonChimePushNotification. | Le SDK Amazon Chime n'est pas autorisé à accéder au rôle pour les notifications push.  Vérifiez que la politique de confiance du rôle IAM contient le principal de service,`messaging.chime.amazonaws.com`. | 

# Utilisation de règles de filtrage pour filtrer les messages du SDK Amazon Chime
<a name="filter-msgs"></a>

Le SDK Amazon Chime permet de définir des règles de filtrage sur l'adhésion à la chaîne d'un utilisateur d'une instance d'application afin de limiter le message qu'il recevra. Les règles de filtrage sont définies en fonction de l'appartenance au canal et sont appliquées par rapport à la carte des attributs des messages. La carte des attributs du message doit être une carte des clés de chaîne et des valeurs de chaîne. Les règles de filtrage prennent en charge l'inclusion et l'exclusion avec une correspondance exacte des chaînes.

**Important**  
Le SDK Amazon Chime prend uniquement en charge les chaînes JSON échappées comme règle de filtrage.
Tous les membres d'un canal de notification reçoivent les notifications push, y compris les expéditeurs de messages. Pour éviter que cela ne se produise, consultez le premier exemple de règle ci-dessous.

Pour définir des règles de filtrage sur l'appartenance à une chaîne, utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutChannelMembershipPreferences.html)API. Vous pouvez inclure des attributs de message dans un message de canal dans le cadre de l'appel d'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API.

**Topics**
+ [Types de règles de filtrage](#filter-rule-types)
+ [Limites des règles de filtrage](#filter-rule-limits)
+ [Exemples de règles de filtrage](#example-preference-rule)

## Types de règles de filtrage
<a name="filter-rule-types"></a>

Le SDK Amazon Chime prend en charge les types de règles de filtrage suivants : 
+ Correspondance exacte des chaînes incluse
+ Correspondance exacte exclusive des chaînes
+ Plusieurs règles de filtrage utilisant AND ou OR

## Limites des règles de filtrage
<a name="filter-rule-limits"></a>

Le SDK Amazon Chime impose les restrictions suivantes en matière de règles de filtrage :
+ Nous prenons uniquement en charge la correspondance exacte des chaînes.
+ La taille totale des règles de filtrage est de 2 Ko.
+ Une taille totale d'attribut de message de 1 Ko.
+ Un maximum de cinq (5) contraintes distinctes dans une règle de filtre OR.
+ Complexité maximale de 20 pour l'ensemble de la règle de filtrage. *La complexité* est calculée comme la somme du nombre de clés et de valeurs de la règle de filtre :

  Par exemple, cette règle de filtre a une complexité de 4.

  ```
  "FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}
  ```

  Nous calculons cette valeur comme suit :

  ```
  Keys = “type” and “mention” - Complexity 2
  Values = "Room" and "Bob" -   Complexity 2
  
                        Total complexity = 4
  ```

## Exemples de règles de filtrage
<a name="example-preference-rule"></a>

Les exemples suivants montrent plusieurs manières d'utiliser les préférences d'adhésion aux chaînes et les règles de filtrage.

**Empêcher les messages d'être envoyés aux expéditeurs**  
Cette règle de filtrage envoie des messages à tous les membres de la chaîne, à l'exception de l'expéditeur du message.

```
{
    "Preferences": {
        "PushNotifications": {
            "FilterRule": "{\"type\":[{\"anything-but\": [\"USER_ARN\"]}]}",
            "AllowNotifications": "FILTERED"
        }
    }
}
```

Les utilisateurs de l'instance d'application ayant les préférences indiquées ci-dessus reçoivent un message de chaîne avec les attributs suivants :

```
"MessageAttributes": {
    "senderId": {
        "StringValues": ["USER_ARN"]
    }
}
```

**Correspondance de chaînes incluse**  
 Cette règle de filtrage autorise tout message dont la clé d'attribut de message « mention » et la valeur « Bob » sont valides. 

```
{
    "Preferences": {
        "PushNotifications": {
            "FilterRule": "{\"mention\":[\"Bob\"]}",
            "AllowNotifications": "FILTERED"
        }
    }
}
```

Un utilisateur d'instance d'application ayant les préférences indiquées ci-dessus reçoit un message de canal avec les attributs de message suivants :

```
"MessageAttributes": {
    "mention": {
        "StringValues": ["Bob", "Alice"]
    }
}
```

Toutefois, l'utilisateur de l'instance d'application ne recevra pas de message de chaîne contenant les attributs suivants :

```
"MessageAttributes": {
    "mention": {
        "StringValues": ["Tom"]
    }
}
```

**Correspondance exclusive des chaînes**  
 Cette règle de filtrage autorise tous les messages sauf ceux contenant la clé d'attribut « type » et la valeur « Room ». 

```
{
    "Preferences": {
        "PushNotifications": {
            "FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}]}",
            "AllowNotifications": "FILTERED"
        }
    }
}
```

Un utilisateur d'instance d'application disposant de ces préférences reçoit un message de canal avec les attributs de message suivants :

```
"MessageAttributes": {
    "type": {
        "StringValues": ["Conversation"]
    }
}
```

Toutefois, l'utilisateur de l'instance d'application ne voit aucun message de chaîne contenant les attributs suivants :

```
"MessageAttributes": {
    "type": {
        "StringValues": ["Room"]
    }
}
```

**Une règle à filtres multiples avec logique AND**  
Lorsque vous combinez des règles de filtrage avec la logique AND, un message doit répondre à tous les critères de filtre pour que le filtre s'applique.

```
{
    "Preferences": {
        "PushNotifications": {
            "FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}",
            "AllowNotifications": "FILTERED"
        }
    }
}
```

Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :

```
"MessageAttributes": {
    "mention": {
        "StringValues": ["Bob"]
    },
    "type": {
        "StringValues": ["Conversation"]
    }
}
```

**Une règle à filtres multiples avec logique OR**  
Vous pouvez `$or` combiner les règles de filtrage avec la logique OR. Lorsque vous utilisez la logique OR, un message doit répondre à l'un des critères pour que le filtre s'applique. 

```
{
    "Preferences": {
        "PushNotifications": {
            "FilterRule": "{\"$or\":[{\"mention\":[\"Bob\"]},{\"type\":[{\"anything-but\": [\"Room\"]}]}]}",
            "AllowNotifications": "FILTERED"
        }
    }
}
```

Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :

```
"MessageAttributes": {
    "mention": {
        "StringValues": ["Bob"]
    }
}
```

Un utilisateur d'instance d'application ayant les préférences ci-dessus reçoit un message de canal avec les attributs de message suivants :

```
"MessageAttributes": {
    "type": {
        "StringValues": ["Conversation"]
    }
}
```

# Utilisation de rôles liés à un service pour la messagerie du SDK Amazon Chime
<a name="using-roles"></a>

[Le SDK Amazon Chime utilise des rôles liés à un service Gestion des identités et des accès AWS (IAM).](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Un rôle lié à un service est un type unique de rôle IAM directement lié au SDK Amazon Chime. Le SDK Amazon Chime prédéfinit les rôles liés aux services, et ils incluent toutes les autorisations dont le service a besoin pour appeler d'autres services en votre nom. AWS 

Un rôle lié à un service rend la configuration du SDK Amazon Chime plus efficace, car vous n'êtes pas obligé d'ajouter manuellement les autorisations nécessaires. Le SDK Amazon Chime définit les autorisations associées à ses rôles liés aux services et, sauf indication contraire, seul le SDK Amazon Chime peut assumer ses rôles. Les autorisations définies comprennent les politiques d’approbation et d’autorisations. La stratégie d'autorisations ne peut pas être attachée à une autre entité IAM.

Vous pouvez supprimer un rôle lié à un service uniquement après la suppression préalable de ses ressources connexes. Cela protège les ressources de votre SDK Amazon Chime, car vous ne pouvez pas supprimer par inadvertance l'autorisation d'accès aux ressources.

Pour obtenir des informations sur les autres services qui prennent en charge les rôles liés à un service, consultez [Services AWS qui fonctionnent avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Recherchez les services qui comportent un **Oui** dans la colonne **Rôle lié à un service**. Cliquez sur **Oui** avec un lien pour consulter la documentation de ce service.

**Topics**
+ [Utilisation de rôles liés à un service pour le streaming de données dans la messagerie du SDK Amazon Chime](stream-service-linked.md)

# Utilisation de rôles liés à un service pour le streaming de données dans la messagerie du SDK Amazon Chime
<a name="stream-service-linked"></a>

Les sections suivantes expliquent comment gérer le rôle lié à un service pour le streaming de données.

**Topics**
+ [Autorisations de rôles liés à un service](#role-permissions)
+ [Création d'un rôle lié à un service](#create-service-linked-role)
+ [Modification d'un rôle lié à un service](#editing-roles)
+ [Supprimer les ressources utilisées par un rôle lié à un service](#cleaning-up)
+ [Suppression d'un rôle lié à un service](#deleting-roles)

## Autorisations de rôles liés à un service
<a name="role-permissions"></a>

Le SDK Amazon Chime utilise le rôle lié au service nommé. **AWSServiceRoleForChimeSDKMessaging** Le rôle donne accès aux AWS services et aux ressources utilisés ou gérés par le SDK Amazon Chime, tels que les flux Kinesis utilisés pour le streaming de données. 

Le rôle **AWSServiceRoleForChimeSDKMessaging**lié à un service fait confiance aux services suivants afin qu'ils puissent assumer le rôle :
+ messaging.chime.amazonaws.com

La politique d'autorisation des rôles permet au SDK Amazon Chime d'effectuer les actions suivantes sur la ressource spécifiée :
+ `kms:GenerateDataKey`uniquement lorsque la demande est faite à l'aide de`kinesis.*.amazonaws.com`.
+ `kinesis:PutRecord``kinesis:PutRecords`, ou `kinesis:DescribeStream` uniquement sur des flux au format suivant :`arn:aws:kinesis:*:*:stream/chime-messaging-*`.

L'exemple suivant montre la politique.

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

****  

```
{
    	"Version":"2012-10-17",		 	 	 
    	"Statement": [
    		{
    			"Effect": "Allow",
    			"Action": [
    				"kms:GenerateDataKey"
    			],
    			"Resource": "*",
    			"Condition": {
    				"StringLike": {
    					"kms:ViaService": [
    						"kinesis.*.amazonaws.com"
    					]
    				}
    			}
    		},
    		{
    			"Effect": "Allow",
    			"Action": [
    				"kinesis:PutRecord",
    				"kinesis:PutRecords",
    				"kinesis:DescribeStream"
    			],
    			"Resource": [
    				"arn:aws:kinesis:*:*:stream/chime-messaging-*"
    			]
    		}
    	]
    }
```

------

Vous devez configurer les autorisations pour autoriser une entité IAM telle qu'un utilisateur, un groupe ou un rôle à créer, modifier ou supprimer un rôle lié à un service. Pour plus d'informations, consultez la section [Autorisations relatives aux rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dans le guide de l'utilisateur *IAM*.

## Création d'un rôle lié à un service
<a name="create-service-linked-role"></a>

Vous n’avez pas besoin de créer manuellement un rôle lié à un service. Lorsque vous utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_PutMessagingStreamingConfigurations.html)API pour créer une configuration de streaming de données, le SDK Amazon Chime crée le rôle lié au service pour vous. 

Vous pouvez également utiliser la console IAM pour créer un rôle lié à un service avec le cas d'utilisation du SDK Amazon Chime. Dans la AWS CLI ou l' AWS API, créez un rôle lié à un service avec le nom du `messaging.chime.amazonaws.com` service. Pour plus d'informations, consultez la section [Création d'un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) dans le guide de l'utilisateur *IAM*. Si vous supprimez ce rôle, vous pouvez répéter ce processus pour le créer à nouveau.

## Modification d'un rôle lié à un service
<a name="editing-roles"></a>

Après avoir créé un rôle lié à un service, vous ne pouvez modifier que sa description, et vous pouvez le faire à l'aide d'IAM. Pour plus d'informations, consultez la section [Modification d'un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dans le guide de l'utilisateur *IAM*.

## Supprimer les ressources utilisées par un rôle lié à un service
<a name="cleaning-up"></a>

Avant de pouvoir utiliser IAM pour supprimer un rôle lié à un service, vous devez supprimer toutes les ressources utilisées par le rôle.

**Note**  
Les suppressions peuvent échouer si vous essayez de supprimer des ressources alors que le SDK Amazon Chime les utilise. Si la suppression échoue, attendez quelques minutes et recommencez l'opération.

**Pour supprimer les ressources utilisées par le AmazonChimeServiceChatStreamingAccess rôle**  
Exécutez la commande CLI suivante pour désactiver le streaming de données pour l'instance de l'application :
+ `aws chime-sdk-messaging delete-messaging-streaming-configurations --app-instance-arn app_instance_arn`

Cette action supprime toutes les configurations de streaming pour votre instance d'application.

## Suppression d'un rôle lié à un service
<a name="deleting-roles"></a>

Lorsque vous n'avez plus besoin d'une fonctionnalité ou d'un service nécessitant un rôle lié à un service, il est recommandé de supprimer ce rôle. Sinon, vous avez une entité inutilisée qui n'est ni surveillée ni maintenue activement. Toutefois, vous devez supprimer les ressources utilisées par votre rôle lié à un service avant de pouvoir le supprimer manuellement.

Vous pouvez utiliser la console IAM ou AWS CLI l' AWS API pour supprimer le rôle lié au **AmazonChimeServiceRoleForChimeSDKMessaging**service. Pour plus d'informations, consultez [la section Suppression d'un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) dans le guide de l'utilisateur IAM.

# Utilisation des flux de canaux pour traiter les messages du SDK Amazon Chime
<a name="using-channel-flows"></a>

Vous utilisez les flux de canaux pour appliquer une logique métier aux messages en cours de vol avant qu'ils ne soient transmis aux destinataires sur un canal de messagerie. Les flux de canaux peuvent effectuer des actions telles que la suppression de numéros d'identification gouvernementaux, de numéros de téléphone ou de propos blasphématoires dans les messages. Vous pouvez également utiliser les flux de canaux pour exécuter des fonctions telles que l'agrégation des réponses à un sondage avant de renvoyer les résultats aux participants.

**Conditions préalables**
+ Connaissance des fonctionnalités de base du SDK Amazon Chime, telles que la gestion des canaux et l'envoi et la réception de messages.
+ Possibilité d'invoquer la messagerie du SDK Amazon Chime. APIs

**Concepts de flux de canaux**

Pour utiliser efficacement les flux de canaux, vous devez comprendre les concepts suivants :

**Processeur de canaux**  
 AWS Lambda Fonction qui exécute une logique de prétraitement sur les messages du canal. Lorsque vous associez un canal à un flux de canaux, le processeur du flux est invoqué pour chaque message du canal. Pour réduire la latence, un seul processeur fonctionne mieux dans la plupart des cas d'utilisation. Enfin, chaque processeur doit effectuer un rappel vers le service Amazon Chime SDK une fois le traitement terminé.   
Nous ne prenons actuellement en charge qu'un seul processeur par flux de canal. Si vous avez besoin de plusieurs processeurs, envoyez un ticket d'assistance pour obtenir une augmentation.

**Débit du canal**  
Les flux de canaux sont des conteneurs pouvant accueillir jusqu'à trois processeurs de canaux, plus une séquence d'exécution. Vous associez un flux à un canal, et le processeur agit sur tous les messages envoyés à ce canal.

**Invoquer des flux de canaux**  
Les éléments suivants invoquent les flux de canaux :
+ Nouveaux messages standard persistants
+ Nouveaux messages standard non persistants
+ Messages standard persistants mis à jour

**Note**  
Les flux de canaux ne traitent pas les messages de contrôle ou de système. Pour plus d'informations sur les types de messages fournis par Amazon Chime SDK Messaging, reportez-vous à. [Comprendre les types de messages du SDK Amazon Chime](msg-types.md)

**Topics**
+ [Configuration d'un processeur de canal pour la messagerie du SDK Amazon Chime](processor-setup.md)
+ [Création d'un flux de canaux pour la messagerie du SDK Amazon Chime](create-channel-flow.md)
+ [Associer et dissocier les flux de canaux pour la messagerie du SDK Amazon Chime](associate-channel-flow.md)
+ [Envoyer des messages dans la messagerie du SDK Amazon Chime](sending-msgs.md)
+ [Création d'alertes de panne en automatisant la messagerie EventBridge du SDK Amazon Chime](event-bridge-events.md)

# 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.

# Création d'un flux de canaux pour la messagerie du SDK Amazon Chime
<a name="create-channel-flow"></a>

Une fois le ou les processeurs configurés, vous pouvez utiliser la messagerie du SDK Amazon Chime APIs pour créer un flux de canaux. Vous pouvez utiliser une `Fallback` action pour définir s'il faut arrêter ou poursuivre le traitement si le flux de canaux ne parvient pas à se connecter à la fonction Lambda du processeur. Si un processeur a une action de secours de`ABORT`, il définit l'état du message sur`FAILED`, mais il n'envoie pas le message. Notez que si le dernier processeur de la séquence de flux de canaux possède une action de repli de`CONTINUE`, le message est considéré comme traité et envoyé aux destinataires du canal. Une fois que vous avez créé un flux de canaux, vous pouvez l'associer à des canaux individuels. Pour plus d'informations, consultez la documentation de [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelFlow.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelFlow.html)l'API. 

# Associer et dissocier les flux de canaux pour la messagerie du SDK Amazon Chime
<a name="associate-channel-flow"></a>

Lorsque vous associez un canal à un flux de canaux, le ou les processeurs du flux de canaux prétraitent tous les messages envoyés au canal. Vous devez être un modérateur ou un administrateur de canal pour invoquer l'association et la dissociation APIs du flux de canaux. Souvenez-vous de ces faits au fur et à mesure.
+ Vous pouvez associer un maximum d'un flux de canal à un canal à un moment donné. Pour associer un flux de canaux, appelez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_AssociateChannelFlow.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_AssociateChannelFlow.html)API. 
+ Pour dissocier un flux de canal et arrêter le prétraitement des messages de canal, appelez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DisassociateChannelFlow.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_DisassociateChannelFlow.html)API. 

# Envoyer des messages dans la messagerie du SDK Amazon Chime
<a name="sending-msgs"></a>

Vous utilisez l'`SendChannelMessage`API pour envoyer des messages à un canal. Pour un canal associé à un flux de canaux, le processeur attribue l'une des valeurs d'état suivantes.




| État du message | Description | 
| --- | --- | 
| `SENT` | Le message a été traité avec succès. | 
| `PENDING` | Traitement en cours. | 
| `FAILED` | Le traitement a échoué car la fonction Lambda du processeur est inaccessible. | 
| `DENIED` | Le message ne sera pas envoyé. | 

**Réception d'événements de statut intermédiaire**  
**Événements Websocket**

Les événements Websocket sont envoyés à un canal une fois qu'ils ont réussi à établir une connexion. Pour plus d’informations, consultez [Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md). 


| Type d’événement | Statut | Destinataires | Remarques | 
| --- | --- | --- | --- | 
| `CREATE_CHANNEL_MESSAGE` | `SENT` | Tous les membres de la chaîne | `SendChannelMessage`API avec prétraitement réussi | 
| `UPDATE_CHANNEL_MESSAGE` | `SENT` | Tous les membres de la chaîne | `UpdateChannelMessage`API avec prétraitement réussi | 
| `PENDING_CREATE_CHANNEL_MESSAGE` | `PENDING` | Expéditeur du message uniquement | `SendChannelMessage`API avec prétraitement continu | 
| `PENDING_UPDATE_CHANNEL_MESSAGE` | `PENDING` | Expéditeur du message uniquement | `UpdateChannelMessage`API avec prétraitement continu | 
| `FAILED_CREATE_CHANNEL_MESSAGE` | `FAILED` | Expéditeur du message uniquement | `SendChannelMessage`API avec échec du prétraitement | 
| `FAILED_UPDATE_CHANNEL_MESSAGE` | `FAILED` | Expéditeur du message uniquement | `UpdateChannelMessage`API avec échec du prétraitement | 
| `DENIED_CREATE_CHANNEL_MESSAGE` | `DENIED` | Expéditeur du message uniquement | `SendChannelMessage`API avec processeur refusant le message | 
| `DENIED_UPDATE_CHANNEL_MESSAGE` | `DENIED` | Expéditeur du message uniquement | `UpdateChannelMessage`API avec processeur refusant le message | 

**API GetChannelMessageStatus**  
Cette API fournit un autre moyen de récupérer l'état du message si l'événement n'a pas été reçu en raison d'une mauvaise connexion Websocket. Pour plus d'informations, consultez la documentation de [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetChannelMessageStatus.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_GetChannelMessageStatus.html)l'API.

**Note**  
Cette API ne renvoie pas le statut des messages refusés, car nous ne les stockons pas.

# Création d'alertes de panne en automatisant la messagerie EventBridge du SDK Amazon Chime
<a name="event-bridge-events"></a>

Le SDK Amazon Chime fournit des événements en cas d'erreur lors de l'appel de la fonction Lambda de votre processeur. Les événements sont envoyés quelle que soit l'`Fallback`action spécifiée pour le processeur lors de la création d'un flux de canaux. Vous pouvez écrire des règles simples pour spécifier ces événements, ainsi que les actions automatisées à effectuer lorsque l'un de ces événements correspond à une règle. Pour plus d'informations, consultez le [guide de EventBridge l'utilisateur Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/). Lorsque de telles erreurs se produisent, en fonction de l'`Fallback`action que vous configurez, les membres du canal ne peuvent pas envoyer de messages, ou les messages circulent sur le canal sans traitement. Pour plus d'informations sur cette `Fallback` action, reportez-vous [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_Processor.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_Processor.html)à la référence de l'API du SDK Amazon Chime. 

Cet exemple montre un événement de défaillance typique.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-111122223333",
    "detail-type": "Chime ChannelFlow Processing Status",
    "source": "aws.chime",
    "account": "111122223333",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "region",
    "resources": [],
    "detail": {
        "eventType": "ProcessorInvocationFailure",
        "appInstanceArn": "arn:aws:chime:region:AWSAccountId:app-instance/AppInstanceId",
        "channelArn": "arn:aws:chime:region:AWSAccountId:app-instance/AppInstanceId/channel/ChannelId",
        "messageId": "298efac7298efac7298efac7298efac7298efac7298efac7298efac7298efac7",
        "processorResourceArn": "arn:aws:lambda:region:AWSAccountId:function:ChannelFlowLambda",
        "failureReason": "User is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:region:AppInstanceId:function:ChannelFlowLambda because no resource-based policy allows the lambda:InvokeFunction action"
      }
}
```

# Utilisation en AppInstanceBots tant qu'agents de canaux intelligents pour la messagerie du SDK Amazon Chime
<a name="appinstance-bots"></a>

Vous pouvez les utiliser `AppInstanceBots` en tant qu'agents de canaux intelligents. Les agents reconnaissent les phrases clés envoyées `ChannelMessages` par les membres de la chaîne. Le modèle de compréhension du langage naturel du bot résout les messages. Cela permet à un ou plusieurs membres de la chaîne d'engager un dialogue en langage naturel défini par le modèle du bot. Vous fournissez les robots, ce qui vous permet de contrôler la profondeur du dialogue et de l'intégration avec les systèmes de votre entreprise.

**Conditions préalables**
+ Connaissance des fonctionnalités de base du SDK Amazon Chime, telles que la création`AppInstanceUsers`, la gestion des chaînes et l'envoi et la réception de messages.
+ Possibilité d'invoquer la messagerie du SDK Amazon Chime. APIs
+ Connaissance des fonctionnalités de base d'Amazon Lex V2, telles que la création d'un bot Amazon Lex V2, la modélisation des intentions et des emplacements, la création de versions de bot, d'alias, l'utilisation de l'état de session et l'intégration du hook Lambda.

**Important**  
L'utilisation d'Amazon Lex V2 est soumise aux [conditions de service AWS](https://aws.amazon.com/service-terms/), y compris les conditions spécifiques aux services AWS Machine Learning et Artificial Intelligence.

**Topics**
+ [Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](create-lex-bot.md)
+ [Configuration de AppInstance robots pour la messagerie du SDK Amazon Chime](appinstance-bot-setup.md)
+ [Création d'un abonnement à une chaîne AppInstanceBot pour une messagerie du SDK Amazon Chime](channel-membership.md)
+ [Envoi de messages vers et AppInstanceBot pour la messagerie du SDK Amazon Chime](message-appinstancebot.md)
+ [Traitement des messages d'Amazon Lex pour la messagerie du SDK Amazon Chime](process-from-lexv2.md)
+ [Traitement des réponses depuis et AppInstanceBot pour la messagerie du SDK Amazon Chime](process-response.md)
+ [Utilisation de règles pour envoyer des événements à Amazon EventBridge pour la messagerie du SDK Amazon Chime](event-bridge-alerts.md)
+ [Résolution des problèmes AppInstanceBots configurés avec les robots Amazon Lex V2 pour la messagerie du SDK Amazon Chime](troubleshoot-lex-bots.md)

# Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="create-lex-bot"></a>

Pour utiliser AppInstance des robots comme agents, vous devez d'abord créer un bot Amazon Lex V2 afin de gérer l'interaction du dialogue dans le cadre d'un scénario d'agent intelligent. Pour commencer à créer un bot Amazon Lex V2, consultez [Getting Started with Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html) dans le *guide du développeur Amazon Lex V2*. Pour plus d'informations sur la migration d'un bot Amazon Lex V1 vers Amazon Lex V2, consultez le [guide de migration d'Amazon Lex V1 vers V2](https://docs.aws.amazon.com/lexv2/latest/dg/migration.html).

**Topics**
+ [Conditions préalables](#lex-prereqs)
+ [Octroi d'autorisations d'invocation](#invocation-perms)
+ [Création d'une intention de bienvenue pour la messagerie du SDK Amazon Chime](welcome-intent.md)
+ [Création de versions de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](lex-versions.md)
+ [Création d'alias de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](lex-aliases.md)

## Conditions préalables
<a name="lex-prereqs"></a>

Votre bot Amazon Lex V2 doit répondre aux exigences suivantes.
+ Vous devez créer le bot dans une AWS région qui prend en charge les points de terminaison d'exécution Amazon Lex V2.
+ Vous devez créer le bot dans le même AWS compte et dans la même région que le bot `AppInstance` et`AppInstanceBot`.
+ Le bot doit accorder des autorisations d'invocation via une politique basée sur les ressources au principal du `messaging.chime.amazonaws.com` service.
+ Le bot peut modéliser une intention de bienvenue. Cela permet `AppInstanceBot` de s'annoncer et de faire connaître ses capacités lors de l'adhésion à une chaîne.
+ Le bot doit avoir une version de production et des alias afin de configurer le`AppInstanceBot`.
+ Le bot doit utiliser une langue et des paramètres régionaux compatibles. Pour plus d'informations sur les langues et les paramètres régionaux, consultez la section [Langues et paramètres régionaux pris en charge dans Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) dans le *manuel du développeur Amazon Lex V2*.

## Octroi d'autorisations d'invocation
<a name="invocation-perms"></a>

`AppInstanceBot`Pour pouvoir invoquer un bot Amazon Lex V2, le responsable du service de messagerie Amazon Chime SDK doit être autorisé à appeler la ressource Amazon Lex Bot. Pour plus d'informations sur les autorisations liées aux politiques basées sur les ressources Amazon Lex V2, consultez les exemples de [politiques basées sur les ressources pour Amazon Lex V2 dans le manuel du développeur *Amazon Lex* V2](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_resource-based-policy-examples.html).

L'exemple suivant montre une politique basée sur les ressources.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "messaging.chime.amazonaws.com"
      },
      "Action": [
        "lex:PutSession",
        "lex:DeleteSession",
        "lex:RecognizeText"
      ],
      "Resource": "arn:aws:lex:us-east-1:111122223333:bot-alias/lex-bot-id/lex-bot-alias-id",
      "Condition": {
        "StringEquals": {
        "AWS:SourceAccount": "111122223333"
        },
        "ArnEquals": {
        "AWS:SourceArn": "arn:aws:chime:us-east-1:111122223333:app-instance/app-instance-id/bot/app-instance-bot-id"
        }
      }
    }
  ]
}
```

------

**Note**  
Pour autoriser une personne `AppInstanceBot` à invoquer un bot Amazon Lex V2, utilisez AppInstanceBot l'ID. Pour permettre à tous `AppInstanceBots` les utilisateurs `AppInstance` d'invoquer un bot Amazon Lex V2, utilisez un caractère générique. Par exemple :  
`arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/*`

# Création d'une intention de bienvenue pour la messagerie du SDK Amazon Chime
<a name="welcome-intent"></a>

Si vous ajoutez une intention de bienvenue facultative à votre modèle de bot Amazon Lex V2, vous `AppInstanceBot` pouvez annoncer lui-même et ses fonctionnalités lorsqu'il rejoint une chaîne. L'intention de bienvenue peut afficher un message ou initier un dialogue avec les membres de la chaîne. Le nom de l'intention de bienvenue peut varier, et vous le définissez dans AppInstanceBot la configuration.

Pour plus d'informations sur les intentions, consultez [Ajouter des intentions](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html) dans le manuel *Amazon Lex V2* Developer Guide

# Création de versions de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="lex-versions"></a>

Lorsque vous créez un bot Amazon Lex V2, vous créez uniquement une version *préliminaire*. Le brouillon est une copie de travail du bot que vous pouvez mettre à jour. Par défaut, le brouillon est associé à un alias appelé`TestBotAlias`, et vous ne devez utiliser le bot du brouillon que pour les tests manuels.

Une fois que vous avez terminé de modéliser le dialogue et de créer le brouillon de bot, vous créez une ou plusieurs *versions*, des instantanés numérotés du bot Lex brouillon. Les versions vous permettent de contrôler l'implémentation utilisée par vos applications clientes. Par exemple, vous pouvez publier des versions destinées à être utilisées dans différentes parties de votre flux de travail, telles que le développement, le déploiement bêta et la production.

Pour plus d'informations sur le versionnement des robots Lex, consultez la section [Création de versions](https://docs.aws.amazon.com/lexv2/latest/dg/versions.html) dans le manuel *Amazon Lex V2 Developer Guide*.

# Création d'alias de bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="lex-aliases"></a>

Une fois que vous avez créé une ou plusieurs versions d'un bot Amazon Lex V2, vous créez des *alias*. Les alias agissent comme des pointeurs nommés vers les versions d'un bot Amazon Lex V2. Par exemple, vous ne pouvez associer un alias qu'à une seule version à la fois.

Pour plus d'informations sur les alias de bot Lex, consultez la section [Création d'alias](https://docs.aws.amazon.com/lexv2/latest/dg/aliases.html) dans le guide du *développeur de Lex V2*.

# Configuration de AppInstance robots pour la messagerie du SDK Amazon Chime
<a name="appinstance-bot-setup"></a>

Une fois que vous avez un bot Amazon Lex V2 avec un modèle, une version et un alias, vous utilisez la messagerie du SDK Amazon Chime ou APIs la CLI pour créer un. AppInstanceBot Pour plus d'informations sur l'utilisation de APIs, consultez la documentation de l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceBot.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_identity-chime_CreateAppInstanceBot.html)API.

**Note**  
Vous utilisez `InvokedBy` cet attribut pour configurer le comportement d'interaction avec le dialogue du`AppInstanceBot`. Vous pouvez configurer les types de messages qui déclenchent un bot, tels que les messages standard ou les messages ciblés.

L'exemple suivant montre comment utiliser la AWS CLI pour créer un message AppInstanceBot que tous les messages standard`MENTIONS`, ainsi que les messages ciblés, peuvent invoquer.

```
aws chime-sdk-identity create-app-instance-bot \
--app-instance-arn app-instance-arn \
--name app-instance-bot-name \
--configuration '{
   "Lex": {
      "LexBotAliasArn": "lex-bot-alias-arn",
      "LocaleId": "lex_bot_alias_locale_id",
      "InvokedBy": {
          "StandardMessages": "MENTIONS",
          "TargetedMessages": "ALL"
      }
      "WelcomeIntent": "welcome-intent-name"
   }
}
```

# Création d'un abonnement à une chaîne AppInstanceBot pour une messagerie du SDK Amazon Chime
<a name="channel-membership"></a>

Une fois que vous l'avez créé AppInstanceBot, vous l'ajoutez en tant que membre à une chaîne nouvelle ou existante. Pour plus d'informations, consultez [CreateChannel](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)et consultez [ CreateChannelMembership](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)la documentation de l'API de *messagerie du SDK Amazon Chime*.

L'exemple suivant montre comment utiliser la AWS CLI pour créer un canal et en ajouter un `AppInstanceBot` en tant que membre.

```
aws chime-sdk-messaging create-channel \
--chime-bearer caller_app_instance_user_arn \
--app-instance-arn app_instance_arn \
--name channel_name \
--member-arns '[
   "app_instance_bot_arn"
]'
```

L'exemple suivant montre comment utiliser la AWS CLI pour ajouter un `AppInstanceBot` à un canal existant.

```
aws chime-sdk-messaging create-channel-membership \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn \
--member-arn app_instance_bot_arn
```

# Envoi de messages vers et AppInstanceBot pour la messagerie du SDK Amazon Chime
<a name="message-appinstancebot"></a>

Vous utilisez l'[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_SendChannelMessage.html)API pour envoyer des messages à un AppInstanceBot. Vous envoyez les messages à la chaîne dont AppInstanceBot il est membre. Si le [modèle de compréhension du langage naturel](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) reconnaît le contenu du message et suscite une intention Amazon Lex, il AppInstanceBot répond par un message de chaîne et lance un dialogue.

Vous pouvez également envoyer des messages cibles à un membre de la chaîne, qui peut être un AppInstanceUser ou un AppInstanceBot. Seuls la cible et l'expéditeur peuvent consulter les messages ciblés. Seuls les utilisateurs qui peuvent voir les messages ciblés peuvent agir sur ceux-ci. Les administrateurs peuvent toutefois supprimer les messages ciblés qu'ils ne peuvent pas voir. 

L'exemple suivant montre comment utiliser la AWS CLI pour envoyer un message de canal.

```
aws chime-sdk-messaging send-channel-message \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn \
--content content \
--type STANDARD \
--persistence PERSISTENT
```

# Traitement des messages d'Amazon Lex pour la messagerie du SDK Amazon Chime
<a name="process-from-lexv2"></a>

Lorsque vous envoyez des messages à Amazon Lex, Amazon Chime SDK Messaging remplit le `CHIME.channel.arn` et `CHIME.sender.arn` avec les informations du canal et de l'ARN de l'expéditeur comme attributs de demande. Vous pouvez utiliser les attributs pour déterminer qui a envoyé un message et le canal auquel appartient l'expéditeur. Pour plus d'informations, reportez-vous à la section [Activation d'une logique personnalisée avec les fonctions AWS Lambda](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) dans le manuel *Amazon Lex Developer Guide*.

# Traitement des réponses depuis et AppInstanceBot pour la messagerie du SDK Amazon Chime
<a name="process-response"></a>

Lorsqu'un utilisateur envoie un message, il AppInstanceBot répond par un message de chaîne. Vous pouvez répertorier les messages des chaînes pour obtenir la réponse du bot. 

L'exemple suivant montre comment utiliser la CLI pour répertorier les messages des canaux.

```
aws chime-sdk-messaging list-channel-messages \
--chime-bearer caller_app_instance_user_arn \
--channel-arn channel_arn
```

Les réponses positives d'un an AppInstanceBot prennent le format suivant. 

```
{
    "MessageId": "messageId",
    "Content": "*{\"Messages\":[{\"...\"}]}*",
    "ContentType": "application/amz-chime-lex-msgs",
    "MessageAttributes": {
        "CHIME.LEX.sessionState.intent.name": {
            "StringValues": [
                "lex_bot_intent_name"
            ]
        },
        "CHIME.LEX.sessionState.intent.state": {
            "StringValues": [
                "lex_bot_intent_fullfilment_status"
            ]
        },
        "CHIME.LEX.sessionState.originatingRequestId": {
            "StringValues": [
                "lex_bot_originating_request_id"
            ]
        },
        "CHIME.LEX.sessionState.sessionId": {
            "StringValues": [
                "lex_bot_session_id"
            ]
        }
    },
    "Sender": {
        "Arn": "app_instance_bot_arn",
        "Name": "app_instance_bot_name"
    },
    "Type": "STANDARD",
}
```

**Content**  
Le `Content` champ contient une liste de messages provenant du bot Amazon Lex V2. Pour plus d'informations sur ces messages, reportez-vous aux [messages](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages) de l'`RecognizeText`API Amazon Lex V2.  
L'exemple suivant montre comment utiliser le `Content` champ dans un message de bienvenue.  

```
{
    "Messages":
    [
        {
            "Content": "Hello!",
            "ContentType": "PlainText"
        },
        {
            "ContentType": "ImageResponseCard",
            "ImageResponseCard":
            {
                "Title": "Hello! I'm BB, the Bank Bot.",
                "Subtitle": "I can help you with the following transactions",
                "Buttons":
                [
                    {
                        "Text": "Check balance",
                        "Value": "Check balance"
                    },
                    {
                        "Text": "Escalate to agent",
                        "Value": "Escalate to agent"
                    }
                ]
            }
        }
    ]
}
```
Pour une réponse en cas d'échec, le champ Contenu contient un message d'erreur et un code au format suivant :  

```
{
    "Code": error_code
}
```

**ContentType**  
Le `ContentType` fait référence au type de charge utile que contient le `Content` champ et doit être coché pour analyser le `Content` champ.   
Le bot Lex V2 utilise un autre`ContentType`.
`ContentType`est défini sur `application/amz-chime-lex-msgs` pour une réponse réussie ou `application/amz-chime-lex-error` une réponse d'échec.

**MessageAttribute**  
A *MessageAttribute*est une carte entre les clés de chaîne et les valeurs de chaîne. Une réponse provenant d'un `AppInstanceBot` contient les attributs de message suivants mappés à une réponse d'un bot Amazon Lex.   
+ **Chime.Lex.SessionState.Intent.name : nom de l'intention du bot Lex** que la demande a tenté de satisfaire.
+ **chime.lex.SessionState.Intent.State — État actuel de l'intention.** Les valeurs possibles sont les suivantes : `Fulfilled``InProgress`, et`Failed`. 
+ **chime.lex. SessionState. originatingRequestId** — Un identifiant unique pour une demande spécifique adressée au bot Amazon Lex. Ce paramètre est défini sur le `MessageId` message utilisateur d'origine qui a déclenché le AppInstanceBot.
+ **chime.lex.SessionState.SessionId — Identifiant** unique pour une conversation entre l'utilisateur et le bot. Lorsqu'un utilisateur lance une discussion avec votre bot, Amazon Lex crée une session.
Pour plus d'informations sur les sessions et les états de session Amazon Lex, reportez-vous [https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html)à la *référence des API Amazon Lex* et à la [gestion des sessions](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) *dans le guide du développeur Amazon Lex V2*  
Pour plus d'informations sur les attributs renvoyés par Amazon Lex V2, consultez [Amazon Lex Runtime V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) APIs.

# Utilisation de règles pour envoyer des événements à Amazon EventBridge pour la messagerie du SDK Amazon Chime
<a name="event-bridge-alerts"></a>

Le SDK Amazon Chime génère des EventBridge événements lorsqu'une erreur l'empêche d'appeler le bot Amazon Lex V2. Vous pouvez créer des EventBridge règles qui reconnaissent ces événements et prennent automatiquement des mesures lorsque la règle correspond. Pour plus d'informations, consultez les [ EventBridge règles Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) dans le *guide de EventBridge l'utilisateur Amazon*.

L'exemple suivant illustre un événement de défaillance typique.

```
{
  version: '0',
  id: '12345678-1234-1234-1234-111122223333',
  'detail-type': 'Chime Messaging AppInstanceBot Lex Failure',
  source: 'aws.chime',
  account: 'aws-account-id',
  time: 'yyyy-mm-ddThh:mm:ssZ',
  region: "region",
  resources: [],
  detail: {    
    resourceArn: 'arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/app-instance-bot-id',
    failureReason: "1 validation error detected: Value at 'text' failed to satisfy constraint: Member must have length less than or equal to 1024 (Service: LexRuntimeV2, Status Code: 400, Request ID: request-id)"
  }
}
```

# Résolution des problèmes AppInstanceBots configurés avec les robots Amazon Lex V2 pour la messagerie du SDK Amazon Chime
<a name="troubleshoot-lex-bots"></a>

Les rubriques suivantes expliquent comment résoudre les problèmes courants liés à AppInstanceBots.

## Détecter les défaillances d'Amazon Lex V2
<a name="find-lex-failures"></a>

La messagerie du SDK Amazon Chime envoie des [ EventBridge événements Amazon](https://docs.aws.amazon.com/chime-sdk/latest/dg/event-bridge-alerts.html) lorsqu'une erreur l'empêche d'appeler le bot Amazon Lex V2. Pour plus d'informations sur la mise en place de règles et la configuration des cibles de notification, consultez la section [Getting started with Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) dans le *guide de EventBridge l'utilisateur Amazon*.

Si vous recevez des EventBridge événements dans AWS CloudWatch Logs, vous pouvez utiliser AWS CloudWatch Logs Insights pour interroger les EventBridge événements en fonction du type de message détaillé du SDK Amazon Chime. `failureReason`Répertorie la cause de l'échec. 

L'exemple suivant montre une requête typique.

```
fields @timestamp, @message
| filter `detail-type` = "Chime Messaging AppInstanceBot Lex Failure"
| sort @timestamp desc
```

Si Amazon Chime SDK Messaging peut appeler votre bot Amazon Lex V2, le SDK envoie des `CONTROL` messages contenant un message d'erreur.

## Résolution des erreurs d'autorisation du bot Amazon Lex V2
<a name="lex-permission-errors"></a>

 AppInstanceBot Pour pouvoir invoquer un bot Amazon Lex V2, le responsable du service de messagerie Amazon Chime SDK doit être autorisé à appeler la ressource Amazon Lex V2 Bot. Assurez-vous également que la condition `AWS:SourceArn` de politique de ressources correspond à l'ARN du AppInstanceBot.

Pour plus d'informations sur la configuration d'un robot Amazon Lex V2 AppInstanceBot pour appeler un bot Amazon Lex V2[Création d'un bot Amazon Lex V2 pour la messagerie du SDK Amazon Chime](create-lex-bot.md), reportez-vous à la section précédente de cette section.

## Résolution des problèmes liés à la régulation des bots Amazon Lex V2
<a name="lex-throttling"></a>

Amazon Lex dispose d'un quota de service pour le nombre maximum de conversations simultanées en mode texte par alias de bot. Vous pouvez contacter l'équipe du service Amazon Lex pour obtenir des augmentations de quotas. Pour plus d'informations, reportez-vous aux [directives et aux quotas Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) dans le *manuel du développeur Amazon Lex*.

# Gestion de la rétention des messages pour la messagerie du SDK Amazon Chime
<a name="manage-retention"></a>

Les titulaires de comptes peuvent utiliser le SDK Amazon Chime APIs pour activer la rétention des messages. Les messages sont automatiquement supprimés en fonction de la période définie par l'administrateur. Les périodes de conservation peuvent aller d'un jour à 15 ans. Vous pouvez également utiliser le APIs pour mettre à jour les périodes de conservation des messages ou désactiver la conservation des messages à tout moment.

**Topics**
+ [Exemples de commandes de rétention de la CLI](#retention-examples)
+ [Activation de la rétention des messages](#enable-retention)
+ [Restaurer et supprimer des messages](#restore-and-delete)

## Exemples de commandes de rétention de la CLI
<a name="retention-examples"></a>

Les exemples suivants illustrent les commandes CLI typiques pour la rétention :

**Activant**

`aws chime-sdk-identity put-app-instance-retention-settings --app-instance-arn {appInstanceArn} --app-instance-retention-settings ChannelRetentionSettings={RetentionDays=60}`

**Mise à jour en cours**

`aws chime-sdk-identity put-app-instance-retention-settings --app-instance-arn {appInstanceArn} --app-instance-retention-settings ChannelRetentionSettings={RetentionDays=30}`

**Désactivation**

`aws chime-sdk-identity put-app-instance-retention-settings --app-instance-arn {appInstanceArn} --app-instance-retention-settings ChannelRetentionSettings={}`

## Activation de la rétention des messages
<a name="enable-retention"></a>

Vous utilisez le SDK Amazon Chime APIs pour activer la rétention des messages. Vous pouvez également utiliser le APIs pour mettre à jour les périodes de conservation des messages ou désactiver la conservation des messages à tout moment. Pour plus d'informations sur la configuration de la rétention des messages, consultez le [manuel Amazon Chime SDK API Reference](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/Welcome.html).

## Restaurer et supprimer des messages
<a name="restore-and-delete"></a>

Vous pouvez restaurer les messages destinés aux utilisateurs dans les 30 jours suivant la définition ou la mise à jour d'une période de conservation des messages. Toutefois, après cette période de grâce de 30 jours, tous les messages relevant de la période de conservation sont définitivement supprimés, et les nouveaux messages sont définitivement supprimés dès qu'ils ont dépassé la période de conservation.

**Note**  
Pendant la période de grâce de 30 jours, si vous prolongez la politique de rétention ou si vous la désactivez, les messages qui n'ont pas dépassé la nouvelle période de rétention redeviennent visibles pour les utilisateurs du compte.

Les messages sont également définitivement supprimés lorsqu'un canal `AppInstanceUser` ou un message est supprimé.

# Composants de l'interface utilisateur pour la messagerie du SDK Amazon Chime
<a name="ui-components"></a>

Vous pouvez utiliser une bibliothèque de composants pour réduire les efforts nécessaires à la création de l'interface utilisateur pour la messagerie instantanée. Consultez la [bibliothèque de composants Amazon Chime React](https://github.com/aws/amazon-chime-sdk-component-library-react) GitHub pour plus d'informations.

# Intégration de la messagerie du SDK Amazon Chime aux bibliothèques clientes
<a name="integrate-client-library"></a>

Pour utiliser les fonctionnalités de messagerie du SDK Amazon Chime, vous devez intégrer votre application cliente aux bibliothèques clientes suivantes :
+ **AWS SDK** : contient des informations APIs pour l'envoi de messages et la gestion des ressources.
+ **Bibliothèque cliente du SDK Amazon Chime pour JavaScript (NPM) : bibliothèque** contenant des définitions de TypeScript type qui vous aide à intégrer votre client au socket Web de messagerie du SDK Amazon Chime pour recevoir des messages. JavaScript 

Pour intégrer votre application client au SDK Amazon Chime, consultez les instructions de la bibliothèque cliente README.md et utilisez les démos pour apprendre à créer des fonctionnalités de messagerie.

# Utilisation de la messagerie du SDK Amazon Chime avec JavaScript
<a name="use-javascript"></a>

Vous pouvez l'utiliser JavaScript pour gérer les ressources du SDK Amazon Chime et envoyer des messages. Pour plus d'informations, consultez le [AWS JavaScript SDK.](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Chime.html)

Vous pouvez également créer une session de messagerie dans votre application cliente pour recevoir des messages provenant de la messagerie du SDK Amazon Chime. Pour plus d'informations, consultez la section [Utilisation de la bibliothèque cliente du SDK Amazon Chime](https://github.com/aws/amazon-chime-sdk-js/blob/master/README.md) pour le moment. JavaScript GitHub