

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden von Amazon Chime SDK-Messaging
<a name="using-the-messaging-sdk"></a>

In diesem Abschnitt des Amazon Chime SDK Developer Guide helfen Sie bei der Erstellung von Messaging-Anwendungen, die auf dem Amazon Chime SDK-Service ausgeführt werden. Dieses SDK bietet die konzeptionellen und praktischen Informationen, die für die Erstellung einer grundlegenden Messaging-App erforderlich sind.

**Topics**
+ [Migration zum Amazon Chime SDK-Identitätsnamespace](identity-namespace-migration.md)
+ [Migration zum Amazon Chime SDK-Messaging-Namespace](messaging-namespace-migration.md)
+ [Grundlegendes zu den Voraussetzungen für Amazon Chime SDK-Messaging](messaging-prerequisites.md)
+ [Grundlegendes zu den Messaging-Konzepten des Amazon Chime SDK](messaging-concepts.md)
+ [Grundlegendes zur Amazon Chime SDK-Messaging-Architektur](messaging-architecture.md)
+ [Grundlegendes zu den Nachrichtentypen des Amazon Chime SDK](msg-types.md)
+ [Erste Schritte mit Amazon Chime SDK-Messaging](getting-started.md)
+ [Grundlegendes zu Systemnachrichten für Amazon Chime SDK-Messaging](system-messages.md)
+ [Beispiele für IAM-Rollen für Amazon Chime SDK-Messaging](iam-roles.md)
+ [Autorisierung nach Rolle verstehen](auth-by-role.md)
+ [Streaming-Messaging-Daten in Amazon Chime SDK-Messaging](streaming-export.md)
+ [Nutzung elastischer Kanäle für die Ausrichtung von Live-Veranstaltungen in Amazon Chime SDK-Meetings](elastic-channels.md)
+ [Verwenden von mobilen Push-Benachrichtigungen für Amazon Chime SDK-Nachrichten zum Empfangen von Nachrichten](using-push-notifications.md)
+ [Verwenden von serviceverknüpften Rollen für Amazon Chime SDK-Messaging](using-roles.md)
+ [Verwenden von Kanalflüssen zur Verarbeitung von Nachrichten für Amazon Chime SDK-Messaging](using-channel-flows.md)
+ [Verwendung AppInstanceBots als intelligente Kanalagenten für Amazon Chime SDK-Messaging](appinstance-bots.md)
+ [Verwaltung der Nachrichtenspeicherung für Amazon Chime SDK-Messaging](manage-retention.md)
+ [Benutzeroberflächenkomponenten für Amazon Chime SDK-Messaging](ui-components.md)
+ [Integrieren von Amazon Chime SDK-Messaging mit Client-Bibliotheken](integrate-client-library.md)
+ [Verwenden von Amazon Chime SDK-Messaging mit JavaScript](use-javascript.md)

# Migration zum Amazon Chime SDK-Identitätsnamespace
<a name="identity-namespace-migration"></a>

Der [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) ist ein spezieller Ort für die APIs Erstellung und Verwaltung von Amazon Chime SDK-Identitätsressourcen, einschließlich und. AppInstances AppInstanceUsers Sie verwenden den Namespace, um Amazon Chime SDK-Identity-API-Endpunkte in jeder AWS Region anzusprechen, in der sie verfügbar sind. Verwenden Sie diesen Namespace, wenn Sie gerade erst anfangen, das Amazon Chime SDK zu verwenden. Weitere Informationen zu Regionen finden Sie [Verfügbare AWS-Regionen für das Amazon Chime SDK](sdk-available-regions.md) in diesem Handbuch.

Bestehende Anwendungen, die den [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) verwenden, sollten eine Migration zum dedizierten Namespace planen.

**Topics**
+ [Gründe für eine Migration](#identity-migration-reasons)
+ [Bevor Sie migrieren](#id-before-migrating)
+ [Unterschiede zwischen den Namespaces](#id-namespace-differences)

## Gründe für eine Migration
<a name="identity-migration-reasons"></a>

Aus den folgenden Gründen empfehlen wir Ihnen, zum [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) zu migrieren:

**Wahl des API-Endpunkts**  
Der Amazon Chime SDK Identity-Namespace ist der einzige API-Namespace, der API-Endpunkte in jeder [Region verwenden kann,](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html) in der sie verfügbar sind. Wenn Sie andere API-Endpunkte als verwenden möchten`us-east-1`, müssen Sie den Amazon Chime SDK Identity-Namespace verwenden. Weitere Informationen zu den aktuellen Endpunkten finden Sie in diesem Handbuch. [API-Zuordnung](migrate-from-chm-namespace.md#name-end-map)

**Aktualisierte und neue Nachrichten APIs**  
Wir fügen nur Identitäten APIs im Amazon Chime SDK Identity-Namespace hinzu oder aktualisieren sie.

## Bevor Sie migrieren
<a name="id-before-migrating"></a>

Beachten Sie vor der Migration die Unterschiede zwischen den Namespaces. In der folgenden Tabelle sind sie aufgeführt und beschrieben.


|  | Amazon Chime SDK-Identitätsnamespace | Amazon Chime Chime-Namespace | 
| --- | --- | --- | 
| AWS SDK-Namespace | ChimeSDKIdentity | Chime | 
| Regionen | Mehrere | nur us-east-1 | 
| Direktor des Dienstes | https://identity.chime.amazonaws.com | https://chime.amazonaws.com | 
| APIs | Nur APIs zur Identität | APIs für Identität und andere Teile von Amazon Chime | 
| Ablauf des Benutzers | Verfügbar | Nicht verfügbar | 
| Bots | Verfügbar | Nicht verfügbar | 

## Unterschiede zwischen den Namespaces
<a name="id-namespace-differences"></a>

In den folgenden Abschnitten werden die Unterschiede zwischen den Namespaces und erklärt. `Chime` `ChimeSDKIdentity`

**AWS SDK-Namespace**  
Der Amazon Chime SDK-Namespace verwendet den `Chime` formalen Namen. Der Amazon Chime SDK Identity-Namespace verwendet den `ChimeSDKIdentity` formalen Namen. Das genaue Format des Namens variiert je nach Plattform.

Wenn Sie beispielsweise das AWS SDK in Node.js verwenden, um Identitäten zu erstellen, verwenden Sie eine Codezeile, um den Namespace zu adressieren.

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

Um zum `ChimeSDKIdentity` Namespace zu migrieren, aktualisieren Sie diese Codezeile mit dem neuen Namespace und der Endpunktregion.

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

**Regionen**  
Der [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) kann nur API-Endpunkte in der Region adressieren. `us-east-1` Der [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) kann Amazon Chime SDK Identity API-Endpunkte in jeder Region adressieren, in der sie verfügbar sind. Eine aktuelle Liste der Endpunktregionen finden Sie in diesem Handbuch. [Verfügbare AWS-Regionen für das Amazon Chime SDK](sdk-available-regions.md)

**Endpunkte**  
Der [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) verwendet andere API-Endpunkte als der [Amazon](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) Chime Chime-Namespace.

Nur der Endpunkt, der zur Erstellung von Identitätsressourcen verwendet wird, kann für deren Aktualisierung verwendet werden. Das bedeutet, dass ein über einen Endpunkt AppInstance erstellter in nur über geändert werden `eu-central-1` kann`eu-central-1`. Das bedeutet auch, dass Sie kein über den Chime-Namespace AppInstance erstelltes Objekt adressieren können, in dem sich der SDKIdentity Chime-Namespace befindet`us-east-1`, oder einen Channel in einer anderen Region als der Region erstellen können, in der die Mitglieder AppInstance und AppInstanceUser erstellt wurden. Weitere Informationen zu den aktuellen Endpunkten finden Sie in diesem Handbuch. [API-Zuordnung](migrate-from-chm-namespace.md#name-end-map)

**Dienstauftraggeber**  
Der [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) verwendet einen neuen Dienstprinzipal:. `Identity.chime.amazonaws.com` Wenn Sie über SQS-, SNS- oder andere IAM-Zugriffsrichtlinien verfügen, die Zugriff auf den Service gewähren, müssen Sie diese Richtlinien aktualisieren, um Zugriff auf den neuen Service Principal zu gewähren.

**APIs**  
Der [Amazon Chime SDK Identity-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) dient nur APIs zum Erstellen und Verwalten von Messaging-Ressourcen sowie zum Senden und Empfangen von Nachrichten. Der [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) umfasst APIs für andere Teile des Amazon Chime Chime-Dienstes sowie Nachrichten.

**Ablauf des Benutzers**  
Mit den Ablaufeinstellungen bei der Erstellung von AppInstanceUsers können Sie temporäre Benutzer erstellen. Sie können beispielsweise Chat-Benutzer erstellen, die nur für die Dauer einer großen Übertragung existieren. Nur der Identity-Namespace unterstützt Ablaufeinstellungen für AppInstanceUsers.

**Bots**  
Sie verwenden den [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 zum Hinzufügen von Chat-Bots, die von Amazon Lex V2 unterstützt werden, zu Ihren Anwendungen. Sie können sie nur AppInstanceBots im Identity-Namespace verwenden. Weitere Informationen zu Bots finden Sie [Verwendung AppInstanceBots als intelligente Kanalagenten für Amazon Chime SDK-Messaging](appinstance-bots.md) in diesem Handbuch.

**Zusätzliche APIs**  
Der Identity-Namespace enthält eine wachsende Liste zusätzlicher Funktionen APIs , die der Chime-Namespace nicht hat. Wenn Sie mit dem Amazon Chime SDK beginnen, verwenden Sie den Identity-Namespace, um Zugriff auf alle aktuellen Funktionen zu haben. Weitere Informationen zur aktuellen APIs Version finden Sie unter [Amazon Chime SDK Identity](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Identity.html) in der *Amazon Chime SDK API-Referenz*.

# Migration zum Amazon Chime SDK-Messaging-Namespace
<a name="messaging-namespace-migration"></a>

Der [Amazon Chime SDK Messaging-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) ist ein spezieller Ort für diejenigen APIs , die Amazon Chime SDK-Messaging-Ressourcen erstellen und verwalten. Sie verwenden den Namespace, um Amazon Chime SDK-Messaging-API-Endpunkte in jeder AWS-Region anzusprechen, in der sie verfügbar sind. Verwenden Sie diesen Namespace, wenn Sie gerade erst anfangen, das Amazon Chime SDK zu verwenden. Weitere Informationen zu Regionen finden Sie [Verfügbare AWS-Regionen für das Amazon Chime SDK](sdk-available-regions.md) in diesem Handbuch.

Bestehende Anwendungen, die den [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) verwenden, sollten eine Migration zum dedizierten Namespace planen.

**Topics**
+ [Gründe für die Migration](#migration-reasons)
+ [Bevor Sie migrieren](#before-migrating)
+ [Unterschiede zwischen den Namespaces](#namespace-differences)

## Gründe für die Migration
<a name="migration-reasons"></a>

Aus den folgenden Gründen empfehlen wir Ihnen, zum [Amazon Chime SDK Messaging-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) zu migrieren:

**Wahl des API-Endpunkts**  
Der Amazon Chime SDK Messaging-Namespace ist der einzige API-Namespace, der API-Endpunkte in jeder [Region verwenden kann,](https://docs.aws.amazon.com/chime-sdk/latest/dg/sdk-available-regions.html) in der sie verfügbar sind. Wenn Sie andere API-Endpunkte als US East (Nord-Virginia) verwenden möchten, müssen Sie den Amazon Chime SDK Messaging-Namespace verwenden.  
Weitere Informationen darüber, wie Amazon Chime SDK-Messaging AWS Regionen verwendet, finden Sie unter [Verfügbare Regionen](https://docs.aws.amazon.com/chime-sdk/latest/dg/available-regions.html) in diesem Handbuch.

**Aktualisierte und neue Nachrichten APIs**  
Wir fügen Nachrichten nur APIs im Amazon Chime SDK Messaging-Namespace hinzu oder aktualisieren sie.

## Bevor Sie migrieren
<a name="before-migrating"></a>

Beachten Sie vor der Migration die Unterschiede zwischen den Namespaces. In der folgenden Tabelle sind sie aufgeführt und beschrieben.


|  | Amazon Chime SDK Messaging-Namespace | Amazon Chime Chime-Namespace | 
| --- | --- | --- | 
| AWS SDK-Namespace | ChimeSDKMessaging | Chime | 
| Regionen | Mehrere | Nur USA Ost (Nord-Virginia) | 
| APIs | Nur APIs für Nachrichten | APIs für Messaging und andere Teile von Amazon Chime | 
| Fließt | Available (Verfügbar) | Nicht verfügbar | 
| Elastische Kanäle | Available (Verfügbar) | Nicht verfügbar | 

## Unterschiede zwischen den Namespaces
<a name="namespace-differences"></a>

In den folgenden Abschnitten werden die Unterschiede zwischen den Namespaces und erklärt. `Amazon Chime` `Amazon Chime SDK Messaging`

**AWS SDK-Namespace**  
Der Amazon Chime SDK-Namespace verwendet den `Chime` formalen Namen. Der Amazon Chime SDK Messaging-Namespace verwendet den `ChimeSDKMessaging` formalen Namen. Das genaue Format des Namens variiert je nach Plattform.

Wenn Sie beispielsweise das AWS SDK in Node.js verwenden, um Nachrichten zu erstellen, verwenden Sie eine Codezeile, um den Namespace zu adressieren.

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

Um zum Amazon Chime Messaging SDK zu migrieren, aktualisieren Sie diese Codezeile mit dem neuen Namespace und der Endpunktregion.

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

**Regionen**  
Der [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) kann nur API-Endpunkte in der Region adressieren. `US East (N. Virginia)` Der [Amazon Chime SDK Messaging-Namespace kann Amazon Chime SDK-Messaging-API-Endpunkte](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) in jeder Region adressieren, in der sie verfügbar sind. Eine aktuelle Liste der Messaging-Regionen finden Sie in diesem Handbuch. [Verfügbare AWS-Regionen für das Amazon Chime SDK](sdk-available-regions.md)

**Endpunkte**  
Der [Amazon Chime SDK Messaging-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) verwendet andere API-Endpunkte als der [Amazon](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) Chime Chime-Namespace.

Nur der Endpunkt, der zur Erstellung einer Messaging-Ressource verwendet wurde, kann für deren Änderung verwendet werden. Das bedeutet, dass eine Messaging-Ressource, die über einen Endpunkt in erstellt wurde, nur über geändert werden `Europe (Frankfurt)` kann`Europe (Frankfurt)`. Das bedeutet, dass ein Kanal, der über einen Endpunkt in Europa (Frankfurt) erstellt wurde, nur über Europa (Frankfurt) geändert werden kann. Das bedeutet auch, dass Sie einen Kanal, der über den `Chime` Namespace erstellt wurde, nicht mit dem `ChimeSDKMessaging` Namespace in US East (Nord-Virginia) adressieren können. Weitere Informationen zu den aktuellen Endpunkten finden Sie [API-Zuordnung](migrate-from-chm-namespace.md#name-end-map) in diesem Handbuch.

**Dienstauftraggeber**  
Der [Amazon Chime SDK Messaging-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) verwendet einen neuen Dienstprinzipal:. `messaging.chime.amazonaws.com` Wenn Sie über SQS-, SNS- oder andere IAM-Zugriffsrichtlinien verfügen, die Zugriff auf den Service gewähren, müssen Sie diese Richtlinien aktualisieren, um Zugriff auf den neuen Service Principal zu gewähren.

**APIs**  
Der [Amazon Chime SDK Messaging-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) dient nur APIs zum Erstellen und Verwalten von Messaging-Ressourcen sowie zum Senden und Empfangen von Nachrichten. Der [Amazon Chime Chime-Namespace](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime.html) umfasst APIs für andere Teile des Amazon Chime Chime-Dienstes sowie Nachrichten.

**Kanalflüsse**  
Kanalflüsse ermöglichen es Entwicklern, Geschäftslogik auf Nachrichten während der Übertragung anzuwenden, bevor sie an Mitglieder eines Messaging-Channels zugestellt werden. Sie können beispielsweise Flows erstellen, mit denen vertrauliche Daten wie behördliche Ausweisnummern, Telefonnummern oder Schimpfwörter aus Nachrichten entfernt werden, bevor sie zugestellt werden. Dies kann bei der Umsetzung von Unternehmenskommunikationsrichtlinien oder anderen Kommunikationsrichtlinien helfen.

Sie können Kanalflüsse auch verwenden, um Funktionen auszuführen, z. B. die Antworten auf eine Umfrage zu aggregieren, bevor die Ergebnisse an die Teilnehmer zurückgesendet werden, oder um Nachrichten per SMS zu versenden. 

Channel Flows sind nur im `ChimeSDKMessaging` Namespace verfügbar. Weitere Informationen zu ihnen finden Sie [Verwenden von Kanalflüssen zur Verarbeitung von Nachrichten für Amazon Chime SDK-Messaging](using-channel-flows.md) in diesem Handbuch.

**Elastische Kanäle**  
Elastische Kanäle unterstützen groß angelegte Chat-Erlebnisse mit bis zu einer Million Chat-Nutzern, die automatisch auf eine definierte Anzahl von Unterkanälen verteilt werden. Elastische Kanäle sind nur am `ChimeSDKMessaging` Endpunkt verfügbar. Weitere Informationen zu elastischen Kanälen finden Sie [Nutzung elastischer Kanäle für die Ausrichtung von Live-Veranstaltungen in Amazon Chime SDK-Meetings](elastic-channels.md) in diesem Handbuch.

**Zusätzliche APIs**  
Der Messaging-Namespace hat eine wachsende Liste von Dingen APIs , die der `Chime` Namespace nicht hat. Wenn Sie mit dem Amazon Chime SDK beginnen, verwenden Sie den Messaging-Namespace für den Zugriff auf die neuesten Funktionen. Weitere Informationen zur aktuellen APIs Version finden Sie unter [Amazon Chime SDK Messaging](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_Operations_Amazon_Chime_SDK_Messaging.html) in der *Amazon Chime SDK API-Referenz*.

# Grundlegendes zu den Voraussetzungen für Amazon Chime SDK-Messaging
<a name="messaging-prerequisites"></a>

Sie benötigen Folgendes, um Amazon Chime SDK-Messaging verwenden zu können.
+ Die Fähigkeit zu programmieren.
+ Ein AWS Konto.
+ Berechtigungen zur Konfiguration von IAM-Rollen für die Anwendungen, die Amazon Chime SDK-Messaging verwenden.

In den meisten Fällen benötigen Sie außerdem:
+ **Eine Client-Anwendung** — Zeigt die Messaging-Benutzeroberfläche an, stellt über Amazon Chime eine Verbindung zu Web-Sockets her SDKs und verwaltet den Status.
+ **Eine Serveranwendung** — Verwaltet Identität und Benutzer.

# Grundlegendes zu den Messaging-Konzepten des Amazon Chime SDK
<a name="messaging-concepts"></a>

Um Amazon Chime SDK-Messaging effektiv nutzen zu können, müssen Sie die folgenden Begriffe und Konzepte verstehen.

**AppInstance**  
Um Amazon Chime SDK-Messaging verwenden zu können, müssen Sie zuerst eine AppInstance erstellen. Ein AppInstance enthält AppInstanceUsers und Kanäle. In der Regel erstellen Sie eine Single AppInstance für Ihre Anwendung. Ein AWS Konto kann mehrere haben AppInstances. Sie nehmen Einstellungen auf App-Ebene vor, z. B. die Aufbewahrung von Nachrichten und die Streaming-Konfiguration, auf der AppInstance Ebene. AppInstances werden durch einen eindeutigen ARN in diesem Format identifiziert:`arn:aws:chime:region:aws_account_id:app-instance/app_instance_id`.

**AppInstanceUser**  
AppInstanceUsers sind die Entitäten, die Nachrichten senden, Kanäle erstellen, Kanälen beitreten usw. In der Regel erstellen Sie eine one-to-one Zuordnung von einem `AppInstanceUser` zu einem Benutzer Ihrer App. Sie können auch eine Verbindung `AppInstanceUser` zu Back-End-Diensten herstellen, sodass Benutzer Nachrichten als von einem Back-End-Dienst stammend identifizieren können. AppInstanceUsers identifiziert durch einen ARN, z. `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/app_instance_user_id` B. Sie kontrollieren das`app_instance_user_id`, was in Ihrer Anwendung bereits vorhanden ist, und verwenden IDs es als bewährte Methode erneut.

**Kanal**  
Wenn Sie einem Kanal einen `AppInstanceUser` hinzufügen, wird dieser Benutzer Mitglied und kann Nachrichten senden und empfangen. Kanäle können öffentlich sein, sodass sich jeder Benutzer selbst als Mitglied hinzufügen kann, oder privat, sodass nur Kanalmoderatoren Mitglieder hinzufügen können. Du kannst Kanalmitglieder auch ausblenden. Versteckte Mitglieder können Konversationen beobachten, aber keine Nachrichten senden, und sie werden nicht zur Kanalmitgliedschaft hinzugefügt.

**SubChannel**  
Mitglieder eines elastischen Kanals werden in einen logischen Container namens unterteilt SubChannels. Wenn Sie einem Elastic Channel einen AppInstanceUser hinzufügen, wird der Benutzer Mitglied eines Kanals SubChannel und kann Nachrichten für diesen bestimmten Kanal senden und empfangen SubChannel. Kanalmitgliedschaften und Nachrichten sind auf einer bestimmten SubChannel Ebene angeordnet, was bedeutet, dass eine Nachricht, die von einem Mitglied in einem Kanal gesendet wurde, nicht von einem Mitglied in einem anderen SubChannel Kanal empfangen SubChannel wird. Mitglieder werden in andere Kanäle versetzt SubChannels , um die Flexibilität eines Kanals zu unterstützen und das Engagement zu fördern.

**UserMessage**  
Jeder`AppInstanceUser`, der einem Kanal angehört, kann Benutzernachrichten senden und empfangen. Sie `AppInstanceUser` können `CONTROL` Nachrichten `STANDARD` oder Nachrichten senden. `STANDARD`Nachrichten können 4 KB an Daten und 1 KB an Metadaten enthalten. `CONTROL`Nachrichten können nur 30 Byte an Daten enthalten. Nachrichten können `PERSISTENT` oder sein`NON_PERSISTENT`. Sie können `PERSISTENT` Nachrichten aus dem Kanalverlauf abrufen. `NON_PERSISTENT`Nachrichten werden nur von Kanalmitgliedern gesehen, die derzeit mit Amazon Chime SDK-Nachrichten verbunden sind.

**Systemnachricht**  
Das Amazon Chime SDK generiert Systemnachrichten als Reaktion auf Ereignisse wie Mitglieder, die einem Kanal beitreten oder ihn verlassen.

# Grundlegendes zur Amazon Chime SDK-Messaging-Architektur
<a name="messaging-architecture"></a>

Sie können Amazon Chime SDK-Messaging als serverseitiges und clientseitiges SDK verwenden. Auf der APIs Serverseite erstellen Sie ein und. `AppInstance` `AppInstanceUser` Sie können verschiedene Hooks und Konfigurationen verwenden, um anwendungsspezifische Geschäftslogik und Validierung hinzuzufügen. Weitere Informationen dazu finden Sie unter[Streaming-Messaging-Daten in Amazon Chime SDK-Messaging](streaming-export.md). Darüber hinaus können serverseitige Prozesse APIs im Namen eines Dedizierten`AppInstanceUser`, der Back-End-Prozesse repräsentiert`AppInstanceUser`, aufrufen oder einen solchen steuern.

Clientseitige Anwendungen, die als und dargestellt werden, `AppInstanceUser` können das Amazon Chime SDK-Messaging direkt aufrufen. APIs Clientseitige Anwendungen verwenden WebSocket das Protokoll, um eine Verbindung zum Messaging-SDK herzustellen, wenn sie online sind. Wenn sie verbunden sind, erhalten sie Echtzeitnachrichten von jedem Kanal, in dem sie Mitglied sind. Wenn die Verbindung unterbrochen wird, gehört an `AppInstanceUser` immer noch zu den Kanälen, zu denen es hinzugefügt wurde, und es kann den Nachrichtenverlauf dieser Kanäle laden, indem es die HTTP-basierte APIs Version des SDK verwendet.

Clientseitige Anwendungen sind berechtigt, API-Aufrufe als einzelne zu tätigen. `AppInstanceUser` Um IAM-Anmeldeinformationen auf eine einzelne Person zuzuweisen`AppInstanceUser`, übernehmen clientseitige Anwendungen eine parametrisierte IAM-Rolle über AWS Cognito Identity Pools oder über eine kleine, selbst gehostete Back-End-API. Weitere Informationen über die Authentifizierung finden Sie unter [Authentifizierung von Endbenutzer-Client-Anwendungen für Amazon Chime SDK-Messaging](auth-client-apps.md). Im Gegensatz dazu verfügen serverseitige Anwendungen in der Regel über Berechtigungen, die an einen einzelnen App-Instanzbenutzer gebunden sind, z. B. an einen Benutzer mit Administratorrechten, oder sie sind berechtigt, API-Aufrufe im Namen aller App-Instanzbenutzer durchzuführen. 

# Grundlegendes zu den Nachrichtentypen des Amazon Chime SDK
<a name="msg-types"></a>

Sie senden Nachrichten über Kanäle. Sie können `SYSTEM` Nachrichten `STANDARD``CONTROL`, oder senden.
+ `STANDARD`Nachrichten können bis zu 4 KB groß sein und Metadaten enthalten. Metadaten sind beliebig und können auf vielfältige Weise verwendet werden, z. B. als Link zu einem Anhang.
+ `CONTROL`Nachrichten sind auf 30 Byte begrenzt und enthalten keine Metadaten.
+ `STANDARD`und `CONTROL` Nachrichten können persistent oder nicht persistent sein. Dauerhafte Nachrichten werden in der Historie eines Kanals gespeichert und mithilfe eines `ListChannelMessages` API-Aufrufs angezeigt. Nicht persistente Nachrichten werden an alle `AppInstanceUser` verbundenen Verbindungen gesendet WebSocket.
+ Das Amazon Chime SDK sendet automatische `SYSTEM` Nachrichten für Ereignisse wie Mitglieder, die einem Kanal beitreten oder ihn verlassen.

# Erste Schritte mit Amazon Chime SDK-Messaging
<a name="getting-started"></a>

In den Themen in diesem Abschnitt wird erklärt, wie Sie mit der Erstellung einer Amazon Chime SDK-Messaging-Anwendung beginnen.

**Topics**
+ [Eine Nachricht AppInstance für das Amazon Chime SDK erstellen](create-app-instance.md)
+ [SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md)
+ [Authentifizierung von Endbenutzer-Client-Anwendungen für Amazon Chime SDK-Messaging](auth-client-apps.md)
+ [Kanäle für Amazon Chime SDK-Nachrichten erstellen](creating-channels.md)
+ [Senden von Nachrichten im Amazon Chime SDK-Messaging](send-messages.md)
+ [Verwendung von ExpirationSettings Nachrichten im Amazon Chime SDK](expiration.md)
+ [Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](websockets.md)
+ [Konfiguration von Anhängen im Amazon Chime SDK-Messaging](configure-attachments.md)

# Eine Nachricht AppInstance für das Amazon Chime SDK erstellen
<a name="create-app-instance"></a>

Um Amazon Chime SDK Messaging verwenden zu können, müssen Sie zunächst ein Amazon Chime SDK `AppInstance` in Ihrem AWS Konto erstellen.

**Topics**
+ [Aufbau eines AppInstance](#app-instance-steps)
+ [Erstellen eines AppInstanceUser](#create-app-instance-user)

## Aufbau eines AppInstance
<a name="app-instance-steps"></a>

**Um eine `AppInstance` für den Nachrichtenversand zu erstellen**

1. Führen Sie in der CLI Folgendes aus `aws chime-sdk-identity create-app-instance --name NameOfAppInstance.`

1. Notieren Sie sich in der Antwort zum Erstellen den`AppInstanceArn`. `arn:aws:chime:region: aws_account_id:app-instance/app_instance_id`.

## Erstellen eines AppInstanceUser
<a name="create-app-instance-user"></a>

Sobald Sie eine erstellt haben`AppInstance`, erstellen Sie eine `AppInstanceUser` darin`AppInstance`. In der Regel tun Sie dies, wenn sich ein Benutzer zum ersten Mal bei Ihrer App registriert oder anmeldet. Sie können auch eine erstellen`AppInstanceUser`, die im Namen Ihrer Back-End-Dienste agiert.

Das folgende Beispiel zeigt, wie Sie ein Backend `AppInstanceUser` erstellen:

```
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"
```

Beachten Sie in der Antwort zum Erstellen den`AppInstanceUserArn`. Es hat diese Form:`arn:aws:chime:region: aws_account_id:app-instance/app_instance_id/user/app_instance_user_id`. In diesem Beispiel `app_instance_user_id` ist "back-end-worker.“

**Anmerkung**  
Es hat sich bewährt, bei der Erstellung einer `AppInstanceUser` für eine Client-Anwendung eine bestehende eindeutige ID für diesen Benutzer `AppInstanceUserId` abzugleichen, z. B. die `sub` eines Identitätsanbieters. Der Name ist ein optionaler Platzhalter, der an einige API-Entitäten angehängt wird, z. B. an einen Nachrichtenabsender. Es ermöglicht Ihnen, den Anzeigenamen eines Benutzers an einem Ort zu steuern, anstatt ihn im `AppInstanceUser` ARN nachschlagen zu müssen, der auch als Absender einer Nachricht angehängt ist.

# SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen
<a name="call-from-backend"></a>

Sobald Sie einen Benutzer erstellt haben, der Ihre Back-End-Dienste repräsentiert, erstellen Sie einen Kanal, senden Nachrichten an diesen Kanal und lesen Nachrichten von diesem Kanal.

Führen Sie den folgenden CLI-Befehl aus, um einen öffentlichen Channel zu erstellen.

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

Der Befehl erzeugt einen ARN in diesem Format: `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [So funktioniert die IAM-Autorisierung für Back-End-Dienste](#how-iam-works)
+ [Grundlegendes zur impliziten API-Autorisierung](#api-implicit-auth)
+ [Kanalnachrichten senden und auflisten](#send-list-msgs)

## So funktioniert die IAM-Autorisierung für Back-End-Dienste
<a name="how-iam-works"></a>

Notieren Sie sich den `chime-bearer` Parameter im CLI-Befehl aus dem vorherigen Abschnitt. Es identifiziert den Benutzer, der Ressourcen wie Kanäle und Nachrichten erstellt oder mit ihnen interagiert. Fast alle Amazon Chime APIs SDK-Nachrichten verwenden `chime-bearer` als Parameter, außer APIs dass sie nur von Entwicklern aufgerufen werden sollen, z. B. `CreateAppInstance`

Die IAM-Berechtigungen für Amazon Chime SDK-Messaging APIs erfordern eine`app-instance-user-arn `, die dem `chime-bearer` Parameter entspricht. Je ARNs nach API ARNs kann ein zusätzlicher Kanal erforderlich sein. Bei Back-End-Diensten wie dem obigen Beispiel führt dies zu IAM-Richtlinien wie dem folgenden Beispiel:

------
#### [ 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/*"
        ]
    }
}
```

------

Notieren Sie sich den `AppInstanceUser` ARN und den Kanal-ARN im `Resource` Abschnitt. In diesem Beispiel für eine IAM-Richtlinie wird dem Back-End-Dienst die Berechtigung erteilt, API-Aufrufe als Benutzer mit der ID "" back-end-worker durchzuführen. Wenn Sie möchten, dass Ihr Back-End-Dienst Anrufe für die Personen tätigen kann, die Ihre App verwenden, ändern Sie den Wert in. `app_instance_user_arn` `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`

## Grundlegendes zur impliziten API-Autorisierung
<a name="api-implicit-auth"></a>

Zusätzlich zu den IAM-Richtlinien verfügen die Amazon Chime SDK-Messaging APIs über implizite Berechtigungen. Beispielsweise `AppInstanceUser` kann ein nur in Kanälen, denen der Benutzer angehört, eine Nachricht senden oder eine Kanalmitgliedschaft auflisten. Eine Ausnahme bilden Personen`AppInstanceUser`, zu denen sie befördert wurden`AppInstanceAdmin`. Standardmäßig haben Administratoren Berechtigungen für alle Kanäle in deiner App. In den meisten Anwendungsfällen benötigen Sie dies nur für Back-End-Dienste, die eine umfangreiche Geschäftslogik enthalten.

Der folgende CLI-Befehl ernennt einen Back-End-Benutzer zu einem Administrator.

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

## Kanalnachrichten senden und auflisten
<a name="send-list-msgs"></a>

Der folgende CLI-Befehl sendet Kanalnachrichten.

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

Die folgenden CLI-Befehle listen Kanalnachrichten in umgekehrter chronologischer Reihenfolge auf.
+ `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"
```

# Authentifizierung von Endbenutzer-Client-Anwendungen für Amazon Chime SDK-Messaging
<a name="auth-client-apps"></a>

Sie können Amazon Chime SDK-Messaging auch von Endbenutzer-Client-Anwendungen aus ausführen. [SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md)erklärt, wie API-Aufrufe wie create-channel, und ausgeführt werden. send-channel-message list-channel-messages Client-Anwendungen für Endbenutzer wie Browser und mobile Anwendungen führen dieselben API-Aufrufe durch. Client-Anwendungen können sich auch über Kanäle verbinden WebSocket , in denen sie Mitglied sind, um in Echtzeit Updates zu Nachrichten und Ereignissen zu erhalten. In diesem Abschnitt wird beschrieben, wie Sie einer Client-Anwendung, die auf einen bestimmten App-Instanzbenutzer beschränkt ist, IAM-Anmeldeinformationen zuweisen. Sobald die Endbenutzer über diese Anmeldeinformationen verfügen, können sie die unter aufgeführten API-Aufrufe tätigen. [SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md) Eine vollständige Demo einer Client-Anwendung finden Sie unter [ https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat). Weitere Informationen zum Empfangen von Echtzeitnachrichten von den Kanälen, zu denen eine Client-App gehört, finden Sie unter[Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](websockets.md).

## Bereitstellung von IAM-Anmeldeinformationen für Endbenutzer
<a name="connect-id-provider"></a>

Amazon Chime SDK-Messaging lässt sich nativ in AWS Identity and Access Management (IAM) -Richtlinien integrieren, um eingehende Anfragen zu authentifizieren. Die IAM-Richtlinie definiert, was ein einzelner Benutzer tun kann. IAM-Richtlinien können so gestaltet werden, dass sie begrenzte Anmeldedaten für Ihren Anwendungsfall bereitstellen. Weitere Informationen zum Erstellen von Richtlinien für Amazon Chime SDK-Messaging-Benutzer finden Sie unter[Beispiele für IAM-Rollen für Amazon Chime SDK-Messaging](iam-roles.md).

Wenn Sie bereits über einen Identitätsanbieter verfügen, haben Sie die folgenden Optionen, um Ihre bestehende Identität in das Amazon Chime SDK-Messaging zu integrieren.
+ Sie können Ihren vorhandenen Identitätsanbieter verwenden, um Benutzer zu authentifizieren, und dann den Authentifizierungsdienst in den AWS Security Token Service (STS) integrieren, um Ihren eigenen Verkaufsservice für Anmeldeinformationen für Kunden einzurichten. STS ermöglicht die Übernahme von APIs IAM-Rollen.
+ Wenn Sie bereits über einen SAML- oder OpenID-kompatiblen Identitätsanbieter verfügen, empfehlen wir die Verwendung von Amazon [Cognito Identity Pools](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html), die Aufrufe an AWS STS und abstrahieren. [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) Amazon Cognito lässt sich in OpenID, SAML und öffentliche Identitätsanbieter wie Facebook, Login with Amazon, Google und Sign in with Apple integrieren.

Wenn Sie keinen Identitätsanbieter haben, können Sie mit Amazon Cognito User Pools beginnen. Ein Beispiel für die Verwendung von Amazon Cognito mit den Amazon Chime SDK-Messaging-Funktionen finden Sie unter [Integrieren von Chat-Funktionen in Ihre Anwendung mit Amazon Chime](https://aws.amazon.com/blogs/business-productivity/build-chat-features-into-your-application-with-amazon-chime-sdk-messaging/) SDK-Messaging. 

Alternativ können Sie den verwenden, [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html)um Ihren eigenen Verkaufsservice für Anmeldeinformationen einzurichten oder Ihren eigenen Identitätsanbieter zu erstellen.

**Verwenden von STS zum Verkauf von Anmeldeinformationen**  
[Wenn Sie bereits über einen IDP wie ActiveDirectory LDAP verfügen und einen benutzerdefinierten Verkaufsservice für Anmeldeinformationen implementieren oder nicht authentifizierten Besprechungsteilnehmern Zugriff auf den Chat gewähren möchten, können Sie die STS-API verwenden.AWSAssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) Dazu erstellen Sie zunächst eine Amazon Chime SDK-Messaging-SDK-Rolle. Weitere Informationen zum Erstellen dieser Rolle finden Sie unter Eine Rolle [erstellen, um Berechtigungen an einen IAM-Benutzer zu delegieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

Die IAM-Rolle hätte Berechtigungen für die Amazon Chime SDK-Messaging-Aktion, die Ihre Anwendung verwenden würde, ähnlich der folgenden:

------
#### [ 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/*"
    ]
        }
    ]
}
```

------

Nennen Sie diese Rolle in diesem Beispiel die. *ChimeMessagingSampleAppUserRole*

Notieren Sie sich das Sitzungs-Tag in der *ChimeMessagingSampleAppUserRole*Richtlinie `${my_application_user_id}` in der Benutzer-ARN-Ressource. Dieses Sitzungs-Tag wird im [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API-Aufruf parametrisiert, um die zurückgegebenen Anmeldeinformationen auf Berechtigungen für einen einzelnen Benutzer zu beschränken.

Die [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)und [https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html) APIs werden mithilfe einer IAM-Entität aufgerufen, für die bereits Anmeldeinformationen vergeben wurden, z. B. eines IAM-Benutzers. APIs [Sie können auch von einer anderen IAM-Rolle aufgerufen werden, z. B. von einer Ausführungsrolle.AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) Diese IAM-Identität muss über Berechtigungen zum Aufrufen `AssumeRole` und `TagSession` Aktivieren von verfügen. *ChimeMessagingSampleAppUserRole* 

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

****  

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

------

 Nennen Sie diese Rolle in diesem Beispiel die *ChimeSampleAppServerRole*.

Sie müssen das `ChimeMessagingSampleAppUserRole` mit einer Vertrauensrichtlinie einrichten, die es ermöglicht, `ChimeMessagingSampleAppServerRole` die [AssumeRoleSTS-API darauf](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) aufzurufen. Weitere Informationen zur Verwendung von Vertrauensrichtlinien mit IAM-Rollen finden Sie unter [So verwenden Sie Vertrauensrichtlinien mit IAM-Rollen](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/). Sie können die AWS IAM-Rollenkonsole verwenden, um diese Richtlinie zur hinzuzufügen. `ChimeMessagingSampleAppUserRole` Das folgende Beispiel zeigt eine typische Vertrauensbeziehung.

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

****  

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

------

 In einer Beispielbereitstellung wird eine [Amazon EC2 EC2-Instance](https://aws.amazon.com/ec2/) oder AWS Lambda eine mit dem `ChimeMessagingSampleAppServerRole` gestartet. Der Server dann:

1. Führt alle anwendungsspezifischen Autorisierungen für die Anfragen eines Clients zum Empfang von Anmeldeinformationen durch.

1. Ruft STS `AssumeRole` on auf`ChimeMessagingSampleAppUserRole`, wobei ein Tag das parametrisiert. `${aws:PrincipalTag/my_applications_user_id}`

1. Leitet die beim `AssumeRole` Anruf zurückgegebenen Anmeldeinformationen an den Benutzer weiter.

Das folgende Beispiel zeigt den CLI-Befehl zur Übernahme einer Rolle für Schritt 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 ` 

# Kanäle für Amazon Chime SDK-Nachrichten erstellen
<a name="creating-channels"></a>

Sie und Ihre Endbenutzer können Kanäle erstellen. Nach der Erstellung müssen Sie oder Ihre Endbenutzer dem Kanal auch Mitglieder hinzufügen. Ein Beispielcode für die Erstellung von Kanälen ist in der [Beispielanwendung unter](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat) verfügbar GitHub.

Weitere Informationen zum Erstellen von Channels und zum Hinzufügen von Mitgliedern finden Sie unter:
+  [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) 

# Senden von Nachrichten im Amazon Chime SDK-Messaging
<a name="send-messages"></a>

Verwenden Sie die [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, um Nachrichten zu senden. Der Beispielcode ist in einer [Beispielanwendung unter](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat) verfügbar GitHub. 

# Verwendung von ExpirationSettings Nachrichten im Amazon Chime SDK
<a name="expiration"></a>

Wenn du eine `AppInstanceUser` oder eine erstellst`Channel`, kannst du sie verwenden, `ExpirationSettings` um diese Ressourcen für das automatische Löschen zu konfigurieren. `ExpirationSettings`trägt dazu bei, die Speicherkosten zu senken und resource-limit-exceeded Probleme zu vermeiden. Sie können beispielsweise ungenutzte Kanäle nach 7 Tagen löschen oder Kanäle löschen, `AppInstanceUser` die nur zu Testzwecken aufgerufen wurden.

Für eine `AppInstanceUser` geben Sie den Ablaufzeitraum auf der Grundlage der Benutzererstellungszeit an. Für a `Channel` geben Sie den Ablaufzeitraum auf der Grundlage der Erstellungszeit des Kanals oder der Zeit der letzten Nachricht an. Letzteres ermöglicht es Ihnen, Nachrichtenaktivitäten zu verwenden, um das automatische Löschen anzupassen.

**Wichtig**  
`ExpirationSettings`Startet kurz nach Ablauf einer Ressource einen Hintergrundprozess zum Löschen dieser Ressource. Der Vorgang dauert normalerweise 6 Stunden, diese Zeit kann jedoch variieren.  
Abgelaufen `AppInstanceUsers` und `Channels` noch nicht gelöschte Dateien werden weiterhin als gültig und aktiv angezeigt. Sie können ihre Ablaufeinstellungen aktualisieren oder entfernen, und das System berücksichtigt Ihre Änderungen.

**Topics**
+ [Konfiguration ExpirationSettings](#create-expiration)
+ [AWS CloudTrail Ereignisse für das Löschen abgelaufener Ressourcen](#ct-events)

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

In den folgenden Abschnitten wird erklärt, wie Sie den `ExpirationSettings` von an `AppInstanceUser` oder a konfigurieren`Channel`. 

### Konfiguration ExpirationSettings beim Erstellen einer Ressource
<a name="configure-on-create"></a>

Sie können konfigurieren`ExpirationSettings`, wann Sie das [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)oder ausführen [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. Wenn Sie den `ExpirationSettings` Parameter festlegen, müssen Sie die folgenden IAM-Berechtigungen gewähren:
+ `chime:PutAppInstanceUserExpirationSettings`beim Erstellen eines `AppInstanceUser`
+ `chime:PutChannelExpirationSettings`beim Erstellen eines`Channel`.

Das folgende Beispiel verwendet die AWS CLI, um eine zu erstellen`AppInstanceUser`, die nach einem Tag abläuft.

```
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"
        }'
```

Das folgende Beispiel verwendet die AWS CLI, um eine zu erstellen`Channel`, die nach einem Tag nach dem letzten Empfang einer Nachricht abläuft.

```
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"
        }'
```

### Verwenden Sie Put APIs zur Konfiguration ExpirationSettings
<a name="configure-on-put"></a>

Sie können das [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_PutAppInstanceUserExpirationSettings.html)und auch [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 zum Erstellen, Aktualisieren und Löschen verwenden`ExpirationSettings`. 

Das folgende Beispiel zeigt, wie Sie die AWS CLI verwenden, um eine `AppInstanceUser` zu aktualisieren`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"
        }'
```

Das folgende Beispiel zeigt, wie Sie die AWS CLI verwenden, um einen Kanal zu löschen`ExpirationSettings`.

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

## AWS CloudTrail Ereignisse für das Löschen abgelaufener Ressourcen
<a name="ct-events"></a>

Nachdem das System eine abgelaufene Ressource gelöscht hat, sendet es ein `ExpireAppInstanceUser` `ExpireChannel` OR-Ereignis an AWS CloudTrail. Die Art des Ereignisses hängt von der Art des gelöschten Elements ab.

Das folgende Beispiel zeigt ein `AppInstanceUser` Ereignis.

```
{
    "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"
}
```

# Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen
<a name="websockets"></a>

 Sie können das [Amazon Chime JS SDK](https://github.com/aws/amazon-chime-sdk-js) verwenden, um Nachrichten zu empfangen WebSockets, oder Sie können die WebSocket Client-Bibliothek Ihrer Wahl verwenden.

Folgen Sie diesen Themen in der angegebenen Reihenfolge, um mit der Nutzung WebSockets zu beginnen:

**Topics**
+ [Definition einer IAM-Richtlinie](#define-iam-policy)
+ [Der Endpunkt wird abgerufen](#retrieve-endpoint)
+ [Die Verbindung wird hergestellt](#connect-api)
+ [Verwenden von Prefetch zur Bereitstellung von Kanaldetails](#prefetch)
+ [Bearbeitung der Ereignisse](#process-events)

## Definition einer IAM-Richtlinie
<a name="define-iam-policy"></a>

Definieren Sie zunächst eine IAM-Richtlinie, die Ihnen die Erlaubnis gibt, eine WebSocket Verbindung herzustellen. Die folgende Beispielrichtlinie erteilt die `AppInstanceUser` Erlaubnis, eine WebSocket Verbindung herzustellen.

```
"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": [
      "*"
    ]
 }
 ]
}
```

## Der Endpunkt wird abgerufen
<a name="retrieve-endpoint"></a>

In den folgenden Schritten wird erklärt, wie der in einer WebSocket Verbindung verwendete Endpunkt abgerufen wird.

1. Verwenden Sie die [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, um den WebSocket Endpunkt abzurufen. 

1. Verwenden Sie die von der [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 zurückgegebene URL, um eine signierte Signature Version WebSocket 4-URL zu erstellen. Wenn Sie dabei Hilfe benötigen, können Sie den Anweisungen in der folgen[Die Verbindung wird hergestellt](#connect-api).
**Anmerkung**  
WebSocket URLs habe das folgende Formular: `id.region.ws-messaging.chime.aws`

## Die Verbindung wird hergestellt
<a name="connect-api"></a>

 Nachdem Sie einen Endpunkt abgerufen haben, verwenden Sie die Connect-API, um eine WebSocket Verbindung zum Amazon Chime SDK-Backend-Server herzustellen und Nachrichten für einen zu empfangen. `AppInstanceUser` Sie müssen AWS Signature Version 4 verwenden, um Anfragen zu signieren. Weitere Informationen zum Signieren einer Anfrage finden Sie unter [Signieren von AWS Anfragen mit Signature Version 4.](https://docs.aws.amazon.com/general/latest/gr/Signature Version 4_signing.html)

**Anmerkung**  
Um den Endpunkt abzurufen, können Sie die [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 aufrufen. Sie können die WebSocket Client-Bibliothek Ihrer Wahl verwenden, um eine Verbindung zum Endpunkt herzustellen.

**Anforderungssyntax**

```
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
```

**URI-Anforderungsparameter**

Alle URI-Anforderungsabfrageparameter müssen URL-codiert sein.

**X-Amz-Algorithmus**

Identifiziert die Version von AWS Signature und den Algorithmus, den Sie zur Berechnung der Signatur verwendet haben. Das Amazon Chime SDK unterstützt nur die Authentifizierung mit AWS Signature Version 4, der Wert dieser Option ist `AWS4-HMAC-SHA256` also.

**X-Amz-Anmeldedaten**

Zusätzlich zu Ihrer Zugriffsschlüssel-ID gibt dieser Parameter auch die AWS Region und den Dienst (den Bereich) an, für den die Signatur gültig ist. Dieser Wert muss dem Bereich entsprechen, den Sie bei Signaturberechnungen verwenden. Die allgemeine Form für diesen Parameterwert lautet:

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

Beispiel:

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

**X-Amz-Date**

Das Datums- und Uhrzeitformat muss dem ISO 8601-Standard entsprechen, und Sie müssen es als formatieren. `yyyyMMddTHHmmssZ` Beispielsweise müssen Sie **08/01/2020 15:32:41.982-700** in die koordinierte Weltzeit (UTC) umrechnen und als angeben. `20200801T083241Z`

**Von X-Amz signierte Header**

Listet die Header auf, die Sie zur Berechnung der Signatur verwendet haben. Für die Signaturberechnungen sind folgende Header erforderlich:
+ Der HTTP-Host-Header.
+ Alle x-amz-\$1-Header, die Sie der Anfrage hinzufügen möchten.

**Anmerkung**  
Signieren Sie aus Sicherheitsgründen alle Anforderungsheader, die Sie in Ihre Anfrage aufnehmen möchten.

**X-Amz-Signaturen**

Stellt die Signatur zur Authentifizierung Ihrer Anfrage bereit. Diese Signatur muss mit der Signatur übereinstimmen, die das Amazon Chime SDK berechnet. Ist dies nicht der Fall, lehnt das Amazon Chime SDK die Anfrage ab. Beispiel, `733255ef022bec3f2a8701cd61d4b371f3f28c9f19EXAMPLEd48d5193d7`.

**X-Amz-Sicherheitstoken**

Optionaler Anmeldeinformationsparameter, wenn Anmeldeinformationen verwendet werden, die vom Security Token Service stammen. Weitere Informationen über den Dienst finden Sie in der [https://docs.aws.amazon.com/STS/neuesten APIReference](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) Version von/.

**SessionId**

Gibt eine eindeutige ID für die WebSocket Verbindung an, die gerade hergestellt wird.

**UserArn**

Gibt die Identität der Person an`AppInstanceUser`, die versucht, eine Verbindung herzustellen. Der Wert sollte der ARN von sein`AppInstanceUser`. Beispiel: `arn:aws:chime:us%2Deast%2D1:123456789012:app%2Dinstance/694d2099%2Dcb1e%2D463e%2D9d64%2D697ff5b8950e/user/johndoe` 

## Verwenden von Prefetch zur Bereitstellung von Kanaldetails
<a name="prefetch"></a>

Wenn Sie eine WebSocket Verbindung herstellen, können Sie `prefetch-on=connect` in Ihren Abfrageparametern angeben, ob Ereignisse übermittelt werden sollen. `CHANNEL_DETAILS` Die Prefetch-Funktion wird mit der Connect-API geliefert, und die Funktion ermöglicht es Benutzern, eine erweiterte Chat-Ansicht ohne zusätzliche API-Aufrufe zu sehen. Benutzer können:
+ Eine Vorschau der letzten Kanalnachricht mit ihrem Zeitstempel anzeigen.
+ Sieh dir die Mitglieder eines Kanals an.
+ Sieh dir die ungelesenen Markierungen eines Kanals an.

Nachdem ein Benutzer mit dem angegebenen Prefetch-Parameter eine Verbindung hergestellt hat, erhält der Benutzer das Ereignis „Sitzung hergestellt“, das angibt, dass die Verbindung hergestellt wurde. Der Benutzer empfängt dann bis zu 50 `CHANNEL_DETAILS` Ereignisse. Wenn der Benutzer weniger als 50 Kanäle hat, ruft die Connect-API alle Kanäle über `CHANNEL_DETAILS` Ereignisse vorab ab. Wenn der Benutzer mehr als 50 Kanäle hat, ruft die API die 50 wichtigsten Kanäle, die ungelesene Nachrichten enthalten, und die neuesten Werte vorab ab. `LastMessageTimestamp` Die `CHANNEL_DETAILS` Ereignisse kommen in zufälliger Reihenfolge an, und Sie erhalten Ereignisse für alle 50 Kanäle.

Außerdem gibt Prefetch für `ChannelMessages` und Folgendes zurück: `ChannelMemberships`
+ **ChannelMessages**— Liste der [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)Objekte, sortiert nach absteigender `CreatedTimestamp` Reihenfolge. Enthält nur die letzten 20 Nachrichten, die für den Benutzer sichtbar sind. Wenn der Kanal gezielte Nachrichten enthält, die für den aktuellen Benutzer nicht sichtbar sind, werden möglicherweise weniger als 20 Nachrichten zurückgegeben. Der `ChannelMessagesHasMore` boolesche Wert wird auf true gesetzt, um anzuzeigen, dass mehr Nachrichten vorhanden sind. Soft-Limit, einstellbar auf AWS Kontoebene.
+ **ChannelMemberships**— Liste der [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)Objekte. Beinhaltet maximal 30 Kanalmitglieder. Soft-Limit, auf AWS Kontoebene einstellbar.

Dieses Beispiel zeigt, wie man es benutzt`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
```

Dieses Beispiel zeigt die Antwort für einen Kanal. Sie erhalten Antworten für alle 50 Kanäle.

```
{
   "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 
    })
}
```

## Bearbeitung der Ereignisse
<a name="process-events"></a>

Damit `AppInstanceUser` Sie Nachrichten empfangen können, nachdem sie eine Verbindung hergestellt haben, müssen Sie sie zu einem Kanal hinzufügen. Verwenden Sie dazu die [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.

**Anmerkung**  
An empfängt `AppInstanceUser` immer Nachrichten für alle Kanäle, zu denen sie gehören. Die Nachrichtenübermittlung wird beendet, wenn der `AppInstance` Benutzer die Verbindung trennt.

An `AppInstanceAdmin` und a empfangen `ChannelModerator` keine Nachrichten auf einem Kanal, es sei denn, Sie verwenden die [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, um sie explizit hinzuzufügen.

In den folgenden Themen wird erklärt, wie Ereignisse verarbeitet werden.

**Topics**
+ [Grundlegendes zu Nachrichtenstrukturen](#message-structures)
+ [Umgang mit Verbindungsabbrüchen](#handle-disconnects)

### Grundlegendes zu Nachrichtenstrukturen
<a name="message-structures"></a>

Jede WebSocket Nachricht, die Sie erhalten, entspricht diesem Format:

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

**Kopfzeilen**  
Amazon Chime SDK-Nachrichten verwenden die folgenden Header-Schlüssel:
+ `x-amz-chime-event-type`
+ `x-amz-chime-message-type`
+ `x-amz-chime-event-reason`

Im nächsten Abschnitt werden die möglichen Werte und Payloads des Headers aufgeführt und beschrieben.

**Nutzlast**  
Websocket-Nachrichten geben JSON-Strings zurück. Die Struktur der JSON-Strings hängt von den `x-amz-event-type` Headern ab. In der folgenden Tabelle sind die möglichen `x-amz-chime-event-type` Werte und Payloads aufgeführt:

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

**x-amz-chime-message-Typ**  
In der folgenden Tabelle sind die `x-amz-chime-message-type` Nachrichtentypen aufgeführt.


| Nachrichtentyp | Description | 
| --- | --- | 
| `STANDARD` | Wird gesendet, wenn der Websocket eine STANDARD-Kanalnachricht empfängt. | 
| `CONTROL` | Wird gesendet, wenn der eine WebSocket CONTROL-Kanalnachricht empfängt. | 
| `SYSTEM` | Alle anderen Websocket-Nachrichten, die von Amazon Chime SDK Messaging gesendet werden. | 

**x-amz-chime-event-Grund**  
Dies ist ein optionaler Header, der für einen bestimmten Anwendungsfall unterstützt wird. Der Header enthält Informationen darüber, warum ein bestimmtes Ereignis empfangen wurde.


| Grund des Ereignisses | Description | 
| --- | --- | 
| SubChannel\$1Deleted | `DELETE_CHANNEL_MEMBERSHIP`Ereignisse, die von Elastic Channel-Moderatoren empfangen wurden. Moderatoren werden nur angezeigt, nachdem der Mitgliederausgleich einen Unterkanal gelöscht hat, dem sie angehört haben. | 

### Umgang mit Verbindungsabbrüchen
<a name="handle-disconnects"></a>

Websockets können aufgrund von Änderungen in der Netzwerkkonnektivität oder wenn Anmeldeinformationen ablaufen, getrennt werden. Nachdem Sie eine geöffnet haben WebSocket, sendet das Amazon Chime SDK regelmäßig Pings an den Messaging-Client, um sicherzustellen, dass er weiterhin verbunden ist. Wenn die Verbindung geschlossen wird, erhält der Client einen WebSocket Schließcode. Der Client kann je nach Schließcode versuchen, die Verbindung wiederherzustellen oder nicht. In den folgenden Tabellen sind die Schließcodes aufgeführt, mit denen der Client die Verbindung wiederherstellen kann.

Stellen Sie bei den Schließungscodes 1000 bis 4000 die Verbindung nur für die folgenden Meldungen wieder her:


| Schließungscodes | Kann die Verbindung wieder herstellen | Grund | 
| --- | --- | --- | 
| 1001 | Ja | Normaler Verschluss | 
| 1006 | Ja | Abnormaler Verschluss | 
| 1011 | Ja | Interner Serverfehler | 
| 1012 | Ja | Dienst neu starten | 
| 1013 | Ja | Versuchen Sie es später erneut | 
| 1014 | Ja | Der Server fungierte als Gateway oder Proxy und erhielt eine ungültige Antwort vom Upstream-Server. Dies ähnelt dem 502-HTTP-Statuscode. | 

Stellen Sie bei 4XXX-Codes immer wieder eine Verbindung her, *mit Ausnahme* der folgenden Meldungen:


| Schließungscodes | Kann die Verbindung wieder herstellen | Grund | 
| --- | --- | --- | 
| 4002 | Nein | Der Kunde wurde initiiert | 
| 4003 | Nein | Forbidden | 
| 4401 | Nein | Nicht autorisiert. | 

Wenn die Anwendung einen Code zum Schließen verwendet, um die Verbindung wiederherzustellen, sollte die Anwendung:

1. Rufen Sie die [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 erneut auf, um eine neue Basis-URL zu erhalten. 

1. Aktualisieren Sie die IAM-Anmeldeinformationen, falls sie abgelaufen sind.

1. Connect über die WebSocket. 

Wenn Sie die amazon-chime-sdk-js Bibliothek verwenden, wird dies für Sie erledigt, wenn Sie die Eigenschaft [needsRefresh ()](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html#needsRefresh-property) und die Methode [refresh ()](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html#refresh-property) implementieren. Ein funktionierendes Beispiel finden Sie unter [https://github.com/aws-samples/amazon-chime-sdk/blob/dc11c4c76c78d28f618577706bba2087919a5635/apps/chat/src/providers/AuthProvider.jsx](https://github.com/aws-samples/amazon-chime-sdk/blob/dc11c4c76c78d28f618577706bba2087919a5635/apps/chat/src/providers/AuthProvider.jsx#L93-L101) \$1L93 -L101.

# Konfiguration von Anhängen im Amazon Chime SDK-Messaging
<a name="configure-attachments"></a>

Das Amazon Chime SDK ermöglicht es Ihnen, Ihren eigenen Speicher für Nachrichtenanhänge zu verwenden und diese als Nachrichtenmetadaten einzubinden. Amazon Simple Storage Service (S3) ist der einfachste Weg, um mit Anhängen zu beginnen.

**Um S3 für Anhänge zu verwenden**

1. Erstellen Sie einen S3-Bucket zum Speichern von Anhängen.

1. Erstellen Sie eine IAM-Richtlinie für den Bucket, die es Amazon Chime SDK-Benutzern ermöglicht, Anhänge aus Ihrem S3-Bucket hochzuladen, herunterzuladen und zu löschen.

1. Erstellen Sie eine IAM-Rolle, die von Ihrem Identitätsanbieter verwendet werden kann, um Anmeldeinformationen für Anhänge an Benutzer zu verkaufen.

Die [Beispielanwendung](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat) bietet ein Beispiel dafür, wie Sie dies mit Amazon S3, Amazon Cognito und dem Amazon Chime SDK tun können.

# Grundlegendes zu Systemnachrichten für Amazon Chime SDK-Messaging
<a name="system-messages"></a>

Das Amazon Chime SDK sendet Systemnachrichten an alle verbundenen Clients für Ereignisse, die in Kanälen stattfinden. Zu den Ereignissen gehören:
+ `UPDATE_CHANNEL`— Dieses Ereignis steht für jede Aktualisierung der Kanaldetails, wie z. B. des Namens oder der Metadaten.
+ `DELETE_CHANNEL`— Dieses Ereignis bedeutet, dass der Kanal und alle seine Daten, einschließlich Nachrichten, Mitgliedschaften, Moderatoren und Sperren, gelöscht werden.
+ `CREATE_CHANNEL_MEMBERSHIP`— Dieses Ereignis bedeutet, dass eine bestimmte Person dem Kanal als Mitglied hinzugefügt `AppInstanceUser` wurde. Die Veranstaltung enthält auch Einzelheiten zum Neuen`AppInstanceUser`.
+ `DELETE_CHANNEL_MEMBERSHIP`— Dieses Ereignis bedeutet, dass ein aus dem Kanal entfernt `AppInstanceUser` wurde. Das Ereignis enthält auch die entfernten `AppInstanceUser` Details.
+ `UPDATE_CHANNEL_MEMBERSHIP`— Dieses Ereignis gilt nur für elastische Kanäle. Das Ereignis bedeutet, dass die Mitgliederverteilung `AppInstanceUser` von einem Unterkanal auf einen anderen übertragen wurde. Das Ereignis enthält auch die `AppInstanceUser` Details sowie Informationen über den Unterkanal, auf den das übertragen `AppInstanceUser` wurde.

# Beispiele für IAM-Rollen für Amazon Chime SDK-Messaging
<a name="iam-roles"></a>

Damit Benutzer auf die Nachrichtenfunktionen des Amazon Chime SDK zugreifen können, müssen Sie eine IAM-Rolle und -Richtlinie definieren, um Benutzern bei der Anmeldung Anmeldeinformationen zur Verfügung zu stellen. Die IAM-Richtlinie definiert die Ressourcen, auf die Benutzer zugreifen können.

Die Beispiele in diesem Abschnitt enthalten grundlegende Richtlinien, die Sie an Ihre Bedürfnisse anpassen können. Weitere Informationen zur Funktionsweise von Richtlinien finden Sie unter[SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md). 

Dieses Beispiel zeigt eine Richtlinie für Entwickler, die Anwendungen mithilfe von Amazon Chime SDK-Messaging erstellen.

------
#### [ 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": "*"
        }
    ]
}
```

------

Dieses Beispiel zeigt eine Richtlinie, die Benutzern den Zugriff auf die Amazon Chime SDK-Benutzeraktionen ermöglicht.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

Dieses Beispiel zeigt eine Richtlinie, die Benutzern minimalen Zugriff auf Amazon Chime SDK-Benutzeraktionen gewährt.

------
#### [ 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/*"
            ]
        }
    ]
}
```

------

Dieses Beispiel zeigt eine Richtlinie zum Herstellen einer WebSocket Verbindung für einen`AppInstanceUser`. Weitere Informationen zu WebSocket Verbindungen finden Sie unter[Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](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"
         ]
      }
   ]
}
```

------

# Autorisierung nach Rolle verstehen
<a name="auth-by-role"></a>

In den Tabellen in diesem Thema sind die Aktionen aufgeführt, die App-Instance-Benutzer je nach ihrer Rolle ausführen können.

**Legende**
+ **Zulässig** — Wenn der richtige Aktions-/Ressourcenkontext in der IAM-Richtlinie angegeben ist, kann er erfolgreich ausgeführt werden.
+ **Mit Einschränkungen zulässig** — Wenn in der IAM-Richtlinie der richtige Aktions-/Ressourcenkontext angegeben ist, müssen bestimmte Bedingungen erfüllt sein, damit die Aktion erfolgreich ausgeführt werden kann.
+ **Verweigert** — Auch wenn der richtige Aktions-/Ressourcenkontext in der IAM-Richtlinie angegeben ist, wird er dennoch vom Backend blockiert.

**Topics**
+ [AppInstanceAdmin](#appinstanceadmin)
+ [ChannelModerator](#channelmoderator)
+ [Mitglied](#member)
+ [Kein Mitglied](#non-member)

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

Administratoren von App-Instanzen können Aktionen auf Kanälen innerhalb der App-Instanz ausführen, für die sie Administrator sind.


| API-Name | Erlaubt oder verweigert | Hinweise | 
| --- | --- | --- | 
| `UpdateChannel` | Mit Einschränkungen erlaubt |   ElasticChannelConfiguration Einmal festgelegt, kann nicht aktualisiert werden | 
| `DeleteChannel` | Zulässig |  | 
| `DescribeChannel` | Zulässig |  | 
| `ListChannel` | Zulässig |  | 
| `ListChannelMembershipsForAppInstanceUser` | Zulässig | Sie können auch das auffüllen [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)mit einem anderen`AppInstanceUser`. | 
| `DescribeChannelMembershipForAppInstanceUser` | Zulässig | Sie können auch bevölkern [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)mit einem anderen`AppInstanceUser`. | 
| `ListChannelsModeratedByAppInstanceUser` | Zulässig | Sie können auch bevölkern [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)mit einem anderen AppInstanceUser. | 
| `DescribeChannelModeratedByAppInstanceUser` | Zulässig | Sie können auch bevölkern [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)mit einem anderen `ppInstanceUser` A. Nicht zulässig für elastische Kanäle. | 
| `CreateChannelMembership` | Zulässig |  | 
| `DescribeChannelMembership` | Zulässig |  | 
| `ListChannelMembership` | Zulässig |  | 
| `DeleteChannelMembership` | Zulässig |  | 
| `SendChannelMessage` | Mit Einschränkungen erlaubt | Sie müssen zuerst verwenden [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateChannelMembership.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateChannelMembership.html)um eine Mitgliedschaft für sich selbst zu erstellen und dann die API aufzurufen. | 
| `GetChannelMessage` | Zulässig |  | 
| `ListChannelMessage` | Zulässig |  | 
| `DeleteChannelMessage` | Zulässig |  | 
| `RedactChannelMessage` | Zulässig |  | 
| `UpdateChannelMessage` | Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen Nachrichten bearbeiten. | 
| `CreateChannelModerator` | Zulässig |  | 
| `DeleteChannelModerator` | Zulässig |  | 
| `DescribeChannelModerator` | Zulässig |  | 
| `ListChannelModerator` | Zulässig |  | 
| `CreateChannelBan` | Mit Einschränkungen erlaubt | Derjenige`AppInstanceUser`, den du gebannt hast, darf weder der Kanal noch der Moderator dieses Kanals sein. `AppInstanceAdmin` | 
| `DeleteChannelBan` | Mit Einschränkungen erlaubt |  | 
| `DescribeChannelBan` | Zulässig |  | 
| `ListChannelBan` | Zulässig |  | 
| `UpdateChannelReadMarker` | Mit Einschränkungen erlaubt | Für nichtelastische Kanäle müssen Sie den verwenden [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, um zuerst eine Mitgliedschaft für sich selbst zu erstellen und dann die API aufzurufen. Nicht zulässig für elastische Kanäle.  | 
|  `GetChannelMessage`  |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. Nicht zulässig für Nachrichten, die sich in Bearbeitung durch den Kanalfluss befinden, es sei denn, Sie sind der Nachrichtenabsender. | 
| `ListChannelMessages` |  Zulässig |  | 
| `DeleteChannelMessage` |  Mit Einschränkung zulässig | Nur für gesendete Nachrichten zulässig. | 
| `RedactChannelMessage` |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. | 
| `UpdateChannelMessage` |  Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen gesendeten Nachrichten bearbeiten. | 
| `AssociateChannelFlow` |  Zulässig |  | 
| `DisassociateChannelFlow` |  Zulässig |  | 
| `GetChannelMessageStatus` |  Mit Einschränkungen erlaubt | Sie können den Nachrichtenstatus nur für Ihre eigenen Nachrichten abrufen. | 
|  `ListSubChannels`  | Zulässig |  | 

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

Kanalmoderatoren können Aktionen nur für Kanäle ausführen, für die sie die Moderatorrolle innehaben.

**Anmerkung**  
Ein Moderator, der Aktionen auf Kanälen ausführen `AppInstanceAdmin` kann und kann, die dieser Rolle entsprechen.


| API-Name | Erlaubt oder verweigert | Hinweise | 
| --- | --- | --- | 
| `UpdateChannel` | Zulässig |   ElasticChannelConfiguration Einmal festgelegt, kann nicht aktualisiert werden | 
| `DeleteChannel` | Zulässig  |  | 
| `DescribeChannel` | Mit Einschränkungen zulässig | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannel` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannelMembershipsForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelMembershipForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `ListChannelsModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können auch ein füllen [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)mit einem anderen AppInstanceUser. | 
| `CreateChannelMembership` | Zulässig |  | 
| `DescribeChannelMembership` | Zulässig |  | 
| `ListChannelMembership` | Zulässig |  | 
| `DeleteChannelMembership` | Zulässig |  | 
| `SendChannelMessage` | Mit Einschränkungen erlaubt | Du musst benutzen [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, um zuerst eine Mitgliedschaft für sich selbst zu erstellen und dann die `SendChannelMessage` API aufzurufen. | 
| `GetChannelMessage` | Zulässig |  | 
| `ListChannelMessage` | Zulässig |  | 
| `DeleteChannelMessage` | Nicht zulässig |  | 
| `RedactChannelMessage` | Zulässig |  | 
| `UpdateChannelMessage` | Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen Nachrichten aktualisieren. | 
| `CreateChannelModerator` | Zulässig | Sie müssen das verwenden [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, um zuerst eine Mitgliedschaft für sich selbst zu erstellen und dann die `CreateChannelModerator` API aufzurufen. | 
| `DeleteChannelModerator` | Zulässig |  | 
| `DescribeChannelModerator` | Zulässig |  | 
| `ListChannelModerator` | Zulässig |  | 
| `CreateChannelBan` | Mit Einschränkungen erlaubt | Der`AppInstanceUser`, den du sperrst, darf `AppInstanceAdmin` weder der Moderator des Kanals sein. | 
| `DeleteChannelBan` | Mit Einschränkungen erlaubt |  | 
| `DescribeChannelBan` | Zulässig |  | 
| `ListChannelBan` | Zulässig |  | 
| `UpdateChannelReadMarker` | Mit Einschränkungen erlaubt |  Für nicht elastische Kanäle müssen Sie verwenden [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)um zuerst eine Mitgliedschaft für sich selbst zu erstellen und dann die `UpdateChannelReadMarker` API aufzurufen.  Nicht zulässig für elastische Kanäle.  | 
| `GetChannelMessage` |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. Nicht zulässig für Nachrichten, die sich in Bearbeitung durch den Kanalfluss befinden, es sei denn, Sie sind der Nachrichtenabsender. | 
| `ListChannelMessages` |  Zulässig |  | 
| `DeleteChannelMessage` |  Nicht zulässig |  | 
| `RedactChannelMessage` |  Mit Einschränkung zulässig | Nur für gesendete Nachrichten zulässig. | 
| `UpdateChannelMessage` |  Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen gesendeten Nachrichten bearbeiten. | 
| `AssociateChannelFlow` |  Zulässig |  | 
| `DisassociateChannelFlow` |  Zulässig |  | 
| `GetChannelMessageStatus` |  Mit Einschränkungen erlaubt | Sie können den Nachrichtenstatus nur für Ihre eigenen Nachrichten abrufen. | 
|  `ListSubChannels`  | Zulässig |  | 

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

Ein `AppInstanceUser` wird Mitglied eines Kanals, wenn er dem Kanal hinzugefügt wird über [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. 

Mitglieder können Aktionen nur auf Kanälen ausführen, denen sie angehören.

**Anmerkung**  
Ein Mitglied, das ein Mitglied ist `AppInstanceAdmin` oder Aktionen auf Kanälen ausführen `ChannelModerator` kann, die nach diesen beiden Rollen zulässig sind.


| API-Name | Erlaubt oder verweigert | Hinweise | 
| --- | --- | --- | 
| `UpdateChannel` | Nicht zulässig |  | 
| `DeleteChannel` | Nicht zulässig |  | 
| `DescribeChannel` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannel` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannelMembershipsForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelMembershipForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `ListChannelsModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt |  Sie können auch ein füllen [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)mit einem anderen AppInstanceUser. Nicht zulässig für elastische Kanäle. | 
| `CreateChannelMembership` | Mit Einschränkungen erlaubt | Sie können andere Mitglieder nur für einen hinzufügen [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)Kanal. | 
| `DescribeChannelMembership` | Zulässig |  | 
| `ListChannelMembership` | Zulässig |  | 
| `DeleteChannelMembership` | Zulässig |  | 
| `SendChannelMessage` | Zulässig |  | 
| `GetChannelMessage` | Zulässig |  | 
| `ListChannelMessage` | Zulässig |  | 
| `DeleteChannelMessage` | Nicht zulässig |  | 
| `RedactChannelMessage` | Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen Nachrichten redigieren. | 
| `UpdateChannelMessage` | Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen Nachrichten aktualisieren. | 
| `CreateChannelModerator` | Nicht zulässig |  | 
| `DeleteChannelModerator` | Nicht zulässig |  | 
| `DescribeChannelModerator` | Nicht zulässig |  | 
| `ListChannelModerator` | Nicht zulässig |  | 
| `CreateChannelBan` | Nicht zulässig |  | 
| `DeleteChannelBan` | Nicht zulässig |  | 
| `DescribeChannelBan` | Nicht zulässig |  | 
| `ListChannelBan` | Nicht zulässig |  | 
| `UpdateChannelReadMarker` | Mit Einschränkungen erlaubt |  Nicht zulässig für elastische Kanäle.  | 
| `GetChannelMessage` |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. Nicht zulässig für Nachrichten, die sich in Bearbeitung durch den Kanalfluss befinden, es sei denn, Sie sind der Nachrichtenabsender. | 
| `ListChannelMessages` |  Zulässig |  | 
| `DeleteChannelMessage` |  Mit Einschränkung zulässig | Nur für gesendete Nachrichten zulässig. | 
| `RedactChannelMessage` |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. | 
| `UpdateChannelMessage` |  Mit Einschränkungen erlaubt | Sie können nur Ihre eigenen gesendeten Nachrichten bearbeiten. | 
| `AssociateChannelFlow` |  Nicht zulässig |  | 
| `DisassociateChannelFlow` |  Nicht zulässig |  | 
| `GetChannelMessageStatus` |  Mit Einschränkungen erlaubt | Sie können den Nachrichtenstatus nur für Ihre eigenen Nachrichten abrufen. | 
| `Listsubchannels` | Nicht zulässig |  | 

## Kein Mitglied
<a name="non-member"></a>

Nichtmitglieder sind Stammkunden `AppInstanceUser` und können keine Aktionen im Zusammenhang mit dem Kanal ausführen, es sei denn, du verwendest die [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, um sie hinzuzufügen.

**Anmerkung**  
Ein Nichtmitglied, das kanalbezogene Aktionen `AppInstanceAdmin` besitzt oder ausführen `ChannelModerator` kann, die in diesen beiden Rollen zulässig sind.


| API-Name | Erlaubt oder verweigert | Hinweise | 
| --- | --- | --- | 
| `UpdateChannel` | Nicht zulässig |  | 
| `DeleteChannel` | Nicht zulässig |  | 
| `DescribeChannel` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannel` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannelMembershipsForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelMembershipForAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können auch ein füllen [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)mit einem anderen`AppInstanceUser`. Nicht zulässig für elastische Kanäle. | 
| `ListChannelsModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `DescribeChannelModeratedByAppInstanceUser` | Mit Einschränkungen erlaubt | Sie können Ihren ARN nur als [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) Wert. | 
| `CreateChannelMembership` | Nicht zulässig |  | 
| `DescribeChannelMembership` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannelMembership` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `DeleteChannelMembership` | Nicht zulässig |  | 
| `SendChannelMessage` | Nicht zulässig |  | 
| `GetChannelMessage` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `ListChannelMessage` | Mit Einschränkungen erlaubt | Du kannst nur Details für öffentliche Kanäle abrufen. | 
| `DeleteChannelMessage` | Nicht zulässig |  | 
| `RedactChannelMessage` | Nicht zulässig |  | 
| `UpdateChannelMessage` | Nicht zulässig |  | 
| `CreateChannelModerator` | Nicht zulässig |  | 
| `DeleteChannelModerator` | Nicht zulässig |  | 
| `DescribeChannelModerator` | Nicht zulässig |  | 
| `ListChannelModerator` | Nicht zulässig |  | 
| `CreateChannelBan` | Nicht zulässig |  | 
| `DeleteChannelBan` | Nicht zulässig |  | 
| `DescribeChannelBan` | Nicht zulässig |  | 
| `ListChannelBan` | Nicht zulässig |  | 
| `UpdateChannelReadMarker` | Nicht zulässig |  | 
| `GetChannelMessage` |  Mit Einschränkungen erlaubt | Nur für gesendete Nachrichten zulässig. Nicht zulässig für Nachrichten, die sich in Bearbeitung durch den Kanalfluss befinden, es sei denn, Sie sind der Nachrichtenabsender. | 
| `ListChannelMessages` |  Mit Einschränkung zulässig |  | 
| `DeleteChannelMessage` |  Nicht zulässig | Nicht zulässig | 
| `RedactChannelMessage` |  Nicht zulässig |  | 
| `UpdateChannelMessage` |  Nicht zulässig |  | 
| `AssociateChannelFlow` |  Nicht zulässig |  | 
| `DisassociateChannelFlow` |  Nicht zulässig |  | 
| `GetChannelMessageStatus` |  Mit Einschränkung erlaubt | Sie können den Nachrichtenstatus nur für Ihre eigenen Nachrichten abrufen. | 

# Streaming-Messaging-Daten in Amazon Chime SDK-Messaging
<a name="streaming-export"></a>

Sie können ein so konfigurieren, `AppInstance` dass es Daten wie Nachrichten und Kanalereignisse in Form eines Streams empfängt. Sie können dann in Echtzeit auf diese Daten reagieren. Derzeit akzeptiert Amazon Chime SDK-Messaging nur Kinesis-Streams als Stream-Ziele. Sie müssen die folgenden Voraussetzungen erfüllen, um Kinesis-Streams mit dieser Funktion verwenden zu können:
+ Kinesis-Streams müssen sich im selben AWS Konto befinden wie die`AppInstance`.
+ Ein Stream muss sich in derselben Region befinden wie der`AppInstance`.
+ Stream-Namen haben ein Präfix, das mit beginnt`chime-messaging-`.
+ Sie müssen mindestens zwei Shards konfigurieren. Jeder Shard kann Daten bis zu 1 MB pro Sekunde empfangen. Skalieren Sie Ihren Stream also entsprechend.
+ Sie müssen die serverseitige Verschlüsselung (SSE) aktivieren.

**So konfigurieren Sie einen Kinesis-Stream**

1. Erstellen Sie einen oder mehrere Kinesis-Streams unter Verwendung der Voraussetzungen im vorherigen Abschnitt und rufen Sie dann den ARN ab. Stellen Sie sicher, dass der Anrufer zusätzlich zu den Amazon Chime Chime-Berechtigungen auch über Kinesis-Berechtigungen verfügt.

   Die folgenden Beispiele zeigen, wie Sie mit der AWS CLI einen Kinesis-Stream mit zwei Shards erstellen und SSE aktivieren.

   `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. Konfigurieren Sie das Streaming, indem Sie die [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 aufrufen.

   Sie können einen oder beide von zwei Datentypen konfigurieren und für sie denselben Stream oder separate Streams auswählen.

   Die folgenden Beispiele zeigen, wie Sie die AWS CLI verwenden, um die `Channel` Datentypen `appinstance` zu konfigurieren `ChannelMessage` und zu streamen.

   ```
   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
   ```

   Die Datentypen haben die folgenden Bereiche:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/chime-sdk/latest/dg/streaming-export.html)

1. Beginnen Sie mit dem Lesen der Daten aus Ihrem konfigurierten Kinesis-Stream.
**Anmerkung**  
Ereignisse, die vor der Streaming-Konfiguration gesendet wurden, werden nicht an Ihren Kinesis-Stream gesendet.

**Data format (Datenformat)**  
Kinesis gibt Datensätze im JSON-Format mit den folgenden Feldern aus: `EventType` und`Payload`. Das Payload-Format hängt von der ab. `EventType` In der folgenden Tabelle sind die Ereignistypen und ihre entsprechenden Payload-Formate aufgeführt.

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

# Nutzung elastischer Kanäle für die Ausrichtung von Live-Veranstaltungen in Amazon Chime SDK-Meetings
<a name="elastic-channels"></a>

Elastische Kanäle unterstützen groß angelegte Chat-Erlebnisse mit bis zu 1 Million Mitgliedern. Zu den typischen Einsatzmöglichkeiten gehören Zuschauerpartys bei Sport- oder politischen Veranstaltungen. Sie können elastische Kanäle nur in der Region USA Ost (Nord-Virginia) verwenden.

Ein elastischer Kanal besteht aus einem einzelnen Kanal mit einer gemeinsamen Konfiguration sowie einer unterschiedlichen — oder *elastischen* — Anzahl von Unterkanälen. Die Konfiguration umfasst auch Mindest- und Höchstgrenzen für die Mitglieder in den Unterkanälen. 

Angenommen, Sie erstellen einen elastischen Channel mit 100 Unterkanälen und legen für die Unterkanäle einen niedrigen Schwellenwert von 500 Mitgliedern und einen hohen Schwellenwert von 10.000 Mitgliedern fest. Wenn Benutzer diesem Beispielkanal beitreten, weist das System sie automatisch einem einzelnen Unterkanal zu, bis die Mitgliederzahl 10.000 überschreitet. Zu diesem Zeitpunkt erstellt das System einen neuen Unterkanal und fügt dort alle neuen Mitglieder hinzu. Wenn Nutzer den Kanal verlassen, löscht das System die Unterkanäle und verteilt die Mitglieder auf die verbleibenden Unterkanäle.

Durch die Aufteilung des Publikums auf Unterkanäle können die Teilnehmer Konversationen leichter verfolgen. Moderatoren haben auch weniger Arbeitsaufwand, da sie sich nur einige der Unterkanäle ansehen müssen. Darüber hinaus können Moderatoren die integrierten Tools verwenden, die Elastic Channels zur Verfügung stellen. Moderatoren können beispielsweise [Benutzer aus einem Kanal verbannen](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html), [Moderatoren einrichten](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html) und [Kanalflüsse verwenden, um automatisch alle Nachrichten im Kanal](https://docs.aws.amazon.com/chime-sdk/latest/dg/using-channel-flows.html) zu moderieren.

Weitere Informationen zu Amazon Chime SDK-Messaging-Kontingenten finden Sie unter [Messaging-Kontingente](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html) in der *Amazon Chime SDK General Reference*.

**Topics**
+ [Voraussetzungen](#elastic-prereqs)
+ [Konzepte für elastische Kanäle](#elastic-concepts)
+ [Zusätzliche unterstützte Funktionen](#additional-features)
+ [Elastische Kanäle für Amazon Chime SDK-Meetings erstellen](create-elastic-channel.md)
+ [Elastic Channel-Mitglieder für Amazon Chime SDK-Meetings verwalten](manage-elastic-members.md)
+ [Senden von Elastic Channel-Nachrichten in Amazon Chime SDK-Meetings](send-messages-elastic.md)
+ [WebSocket Systemnachrichten in elastischen Kanälen für Amazon Chime SDK-Meetings verstehen](websocket-messages-elastic.md)
+ [Verwenden von Kinesis-Streams zum Empfangen von Systemnachrichten für Amazon Chime SDK-Meetings](elastic-onboard-streams.md)
+ [Testen elastischer Kanäle für Amazon Chime SDK-Meetings in unserer Demo-App](elastic-testing.md)

## Voraussetzungen
<a name="elastic-prereqs"></a>

Um elastische Kanäle verwenden zu können, müssen Sie über die folgenden Voraussetzungen verfügen.
+ Kenntnisse der Messaging-Funktionen des Amazon Chime SDK, z. B. Verwaltung von Kanälen und Senden und Empfangen von Nachrichten.
+ Die Möglichkeit, das Amazon Chime SDK Messaging aufzurufen. APIs

## Konzepte für elastische Kanäle
<a name="elastic-concepts"></a>

Um elastische Kanäle effektiv nutzen zu können, müssen Sie diese Konzepte verstehen.

**Unterkanäle**  
Elastische Kanäle unterteilen ihre Mitglieder in logische Container, die als Unterkanäle bezeichnet werden. Wenn Sie einem Elastic Channel einen `AppInstanceUser` hinzufügen, wird der Benutzer Mitglied eines Sub-Channels. Dieser Benutzer kann Nachrichten senden und empfangen, jedoch nur mit anderen Mitgliedern dieses Unterkanals. Das System lässt niemals zu, dass Nachrichten von einem Unterkanal in anderen Unterkanälen erscheinen.

**Skalierung**  
Um die Nutzerinteraktion zu unterstützen, muss jeder Unterkanal eine Mindestmitgliedschaft erfüllen. Sie geben diesen Wert an, wenn Sie einen elastischen Kanal erstellen. Wenn Benutzer einer Veranstaltung beitreten oder sie verlassen, leitet das System Mitglieder in verschiedene Unterkanäle weiter, wodurch der gesamte Kanal „elastisch“ wird. Unterkanäle führen die folgenden Skalierungsaktionen aus.  
+ **SCALE\$1OUT** — Wenn eine neue Elastic Channel-Mitgliedschaftsanfrage eingeht und alle Sub-Channels voll sind, skaliert das System, indem es einen neuen Sub-Channel erstellt und dann Mitgliedschaften von bestehenden Sub-Channels auf den neuen Subchannel überträgt.
+ **SCALE\$1IN** — Wenn die Anzahl der Mitglieder eines Unterkanals die Mindestanforderung unterschreitet und ein anderer Unterkanal die Kapazität hat, alle Mitglieder des ersten Unterkanals aufzunehmen, überträgt ein `SCALE_IN` Ereignis diese Mitgliedschaften und löscht dann den Unterkanal und alle Nachrichten.
Wenn du auf Nachrichten von Kanälen zugreifen musst, die gelöscht wurden, musst du zuerst das Nachrichtenstreaming aktivieren. Weitere Informationen finden Sie unter [Streaming-Messaging-Daten in Amazon Chime SDK-Messaging](streaming-export.md).

**Übertragung von Mitgliedern**  
Dies tritt auf, wenn die Mitgliederverteilung `AppInstanceUser` von einem Unterkanal auf einen anderen verschoben wird. Der gehört nach der Übertragung `AppInstanceUser` immer noch zum elastischen Kanal. Der neue Unterkanal enthält jedoch unterschiedliche Mitgliedschaften und Nachrichten, sodass die von ihm `AppInstanceUser` nach der Übertragung gesendeten Nachrichten an diese verschiedenen Mitglieder gehen. Die Verteilung der Mitgliedschaften hat keinen Einfluss auf die Mitgliedschaften von Moderatoren.

**Anmerkung**  
 Elastic Channels unterstützen keine versteckten Mitgliedschaften, Mitgliedschaftseinstellungen und Zeitstempel für gelesene Nachrichten.

## Zusätzliche unterstützte Funktionen
<a name="additional-features"></a>

Elastische Kanäle unterstützen diese Messaging-Funktionen ebenfalls.
+ [Vorab abrufen](websockets.md#prefetch)
+ [Kanalflüsse](using-channel-flows.md)

# Elastische Kanäle für Amazon Chime SDK-Meetings erstellen
<a name="create-elastic-channel"></a>

Sie verwenden das `ElasticChannelConfiguration` Feld in der [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, um einen elastischen Kanal zu erstellen. Sobald Sie einen elastischen Channel erstellt haben, erstellen Sie Channel-Mitgliedschaften.

**Anmerkung**  
Bei nicht elastischen Kanälen wird derjenige`AppInstanceUser`, der den Kanal erstellt, diesem Kanal automatisch als Mitglied und Moderator hinzugefügt. Bei elastischen Kanälen wird der Ersteller des Kanals nur als Moderator hinzugefügt.
Du kannst ein `ElasticChannelConfiguration` einmaliges Set nicht aktualisieren.
Sie können einen Kanal nicht von elastisch auf nicht elastisch und umgekehrt aktualisieren.
Sie können keine Mitgliederliste ARNs in eine [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-Anfrage aufnehmen. Sie können jedoch eine Liste von Moderatoren hinzufügen ARNs.
Sie können keinen elastischen Kanal `UNRESTRICTED` des Typs erstellen.

# Elastic Channel-Mitglieder für Amazon Chime SDK-Meetings verwalten
<a name="manage-elastic-members"></a>

Verwenden Sie, und, um die Mitglieder in einem elastischen Channel zu verwalten. [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) APIs In den folgenden Informationen wird erklärt, wie Sie sie verwenden.

**Kanalmitgliedschaften**  
Die `CreateChannelMembership` API erstellt Mitgliedschaften auf Unterkanal-Ebene. Unterkanäle können Moderatoren und reguläre Mitglieder umfassen.  
+ **Moderatoren — Du kannst Moderatoren** zu mehreren Unterkanälen hinzufügen. Auf diese Weise können die Moderatoren Nachrichten auf jedem der Unterkanäle senden, zu denen sie gehören. Wenn Sie einem Unterkanal einen Moderator hinzufügen, müssen Sie den angeben. `SubChannelId`

  Wenn du Moderatoren automatisch neuen Unterkanälen zuweisen möchtest, kannst du das [Nachrichten-Streaming aktivieren](streaming-export.md), auf Ereignisse zur Erstellung von Unterkanälen warten und dann als Reaktion auf diese Ereignisse eine Moderator-Mitgliedschaft einrichten.

  Schließlich kannst du Moderatoren aus bestimmten Unterkanälen oder aus allen Unterkanälen löschen. In beiden Fällen verwendest du die [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. Um einen Moderator aus einem bestimmten Unterkanal zu löschen, geben Sie die an. `SubChannelId` Wenn Sie keine ID für einen Unterkanal angeben, entfernt das System den Moderator aus allen Unterkanälen. Schließlich kannst du die [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 verwenden, um die Unterkanäle und die Anzahl der Mitglieder in jedem Kanal aufzulisten.
+ **Reguläre Mitglieder** — Diese machen den Großteil der Kanalmitgliedschaften aus. Du kannst nur ein reguläres Mitglied zu einem Unterkanal hinzufügen. Außerdem kannst du `SubChannelId` beim Erstellen oder Löschen von Kanalmitgliedschaften keine Eingabe vornehmen, da das System steuert, in welchem Unterkanal eine Mitgliedschaft erstellt wird.

**Kanalmoderatoren**  
Die `CreateChannelModerator` API erstellt Moderatoren auf elastischer Kanalebene. Moderatoren können alle Nachrichten in allen Unterkanälen einsehen. Wenn du ein reguläres Mitglied zum Kanalmoderator beförderst, entfernt das System alle bestehenden Kanalmitgliedschaften für dieses Mitglied. Das Gleiche passiert, wenn du einen Moderator herabstufst.

**Kanalverbote**  
Die `CreateChannelBan` API erstellt Verbote auf elastischer Kanalebene. Ein `AppInstanceUser` gebannter Eintrag kann zu keinem Unterkanal gehören. Wenn du ein Mitglied sperrst, entfernt das System alle Kanalmitgliedschaften für dieses Mitglied.

# Senden von Elastic Channel-Nachrichten in Amazon Chime SDK-Meetings
<a name="send-messages-elastic"></a>

Die [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 erstellt Nachrichten auf Unterkanal-Ebene. Um Nachrichten zu senden, benötigen Sie eine`subChannelId`. Sie können auch die [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), und verwenden, [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 um Nachrichten zu bearbeiten und zu löschen, aber in allen Fällen benötigen Sie eine`subChannelId`.

**Anmerkung**  
Nachrichtenabsender können Nachrichten nur bearbeiten oder redigieren, wenn sie zu dem Unterkanal gehören, an den sie Nachrichten senden. Wenn das Mitgliedschaftskonto ein Mitglied auf einen anderen Unterkanal überträgt, kann dieses Mitglied nur die Nachrichten bearbeiten oder redigieren, die es in diesem neuen Unterkanal sendet.

# WebSocket Systemnachrichten in elastischen Kanälen für Amazon Chime SDK-Meetings verstehen
<a name="websocket-messages-elastic"></a>

Das Amazon Chime SDK sendet Systemnachrichten an alle verbundenen Clients für Ereignisse, die in Kanälen stattfinden. In der folgenden Liste werden die Systemnachrichten für elastische Kanäle beschrieben.

**Nachrichtenereignisse**  
Event-Payloads für elastische Kanäle enthalten das `subChannelId` Feld. Die Nutzlasten für nicht elastische Kanäle bleiben gleich.

**Veranstaltungen zur Mitgliedschaft**  
Die `DELETE_CHANNEL_MEMBERSHIP` Ereignisse `CREATE_CHANNEL_MEMBERSHIP` und Ereignisse haben das `subChannelId` Feld jetzt in ihren Nutzlasten.   
Elastische Kanäle unterstützen das `BATCH_CREATE_CHANNEL_MEMBERHSIP` Ereignis nicht. Wenn Sie die [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 aufrufen, sendet das System einzelne `CREATE_CHANNEL_MEMBERSHIP` Ereignisse.  
Sie können jetzt den `UPDATE_CHANNEL_MEMBERSHIP` Ereignistyp verwenden, um Änderungen der Mitgliedschaftsinformationen zu signalisieren. Beispielsweise sendet das System bei der Übertragung eines Mitglieds von einem Unterkanal auf einen anderen ein `UPDATE_CHANNEL_MEMBERSHIP` Ereignis mit dem neuen Eintrag `SubChannelId` in der Payload, um anzuzeigen, dass das Mitglied übertragen wurde.   
Das System sendet das `UPDATE_CHANNEL_MEMBERSHIP` Ereignis nur an das Mitglied, das übertragen wurde, und nicht an andere Mitglieder des Unterkanals. Aus diesem Grund empfehlen wir dir, die [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 zu verwenden, anstatt die Mitgliederlisten deines Kanals WebSockets zu füllen. Weitere Informationen finden Sie unter [Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](websockets.md). 

# Verwenden von Kinesis-Streams zum Empfangen von Systemnachrichten für Amazon Chime SDK-Meetings
<a name="elastic-onboard-streams"></a>

Sie können ein so konfigurieren`AppInstance`, dass es Daten in Form eines Streams empfängt. Ein Stream kann beispielsweise Nachrichten, Unterkanal-Ereignisse und Channel-Ereignisse enthalten.

Als Teil davon unterstützen wir die `DELETE_SUB_CHANNEL` Veranstaltungen `CREATE_SUB_CHANNEL` und Veranstaltungen. Sie geben an, wann ein Unterkanal im Rahmen des Mitgliederabgleichs erstellt oder gelöscht wurde. Weitere Informationen zum Empfangen von Datenströmen finden Sie unter. [Streaming-Messaging-Daten in Amazon Chime SDK-Messaging](streaming-export.md)

# Testen elastischer Kanäle für Amazon Chime SDK-Meetings in unserer Demo-App
<a name="elastic-testing"></a>

Sie können alle Amazon Chime SDK Messaging-Funktionen GitHub unter [https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat)testen. 

# Verwenden von mobilen Push-Benachrichtigungen für Amazon Chime SDK-Nachrichten zum Empfangen von Nachrichten
<a name="using-push-notifications"></a>

Sie können Amazon Chime SDK Messaging so konfigurieren, dass Kanalnachrichten an mobile Push-Benachrichtigungskanäle gesendet werden. Das Amazon Chime SDK erfordert eine Amazon Pinpoint Pinpoint-Anwendung, die für Push-Benachrichtigungen konfiguriert ist. Ihre Amazon Pinpoint Pinpoint-Anwendung muss die folgenden Voraussetzungen erfüllen: 
+ Für Ihre Amazon Pinpoint Pinpoint-Anwendung muss mindestens ein FCM- oder APNS-Kanal konfiguriert und aktiviert sein.
+ Ihre Amazon Pinpoint Pinpoint-Anwendung muss sich in demselben AWS Konto und derselben Region wie Ihre Amazon Chime SDK-App-Instanz befinden.

**Anmerkung**  
Standardmäßig erhalten alle Mitglieder eines Push-Benachrichtigungskanals die Push-Benachrichtigungen, einschließlich der Nachrichtenabsender. Sie können jedoch eine Filterregel festlegen, die verhindert, dass Nachrichten an Absender gesendet werden. Weitere Informationen finden Sie unter [Verwenden von Filterregeln zum Filtern von Nachrichten für Amazon Chime SDK-Nachrichten](filter-msgs.md), weiter unten in diesem Abschnitt.

**Topics**
+ [Erstellen Sie eine Amazon Pinpoint Pinpoint-Anwendung für Amazon Chime SDK-Messaging](create-pinpoint.md)
+ [Eine Servicerolle für Amazon Chime SDK-Messaging erstellen](create-service-role.md)
+ [Registrieren Sie einen Endpunkt auf Mobilgeräten als App Instance-Benutzer für Amazon Chime SDK-Messaging](register-endpoint.md)
+ [Senden Sie eine Kanalnachricht mit aktivierten Benachrichtigungen im Amazon Chime SDK-Messaging](send-channel-msg-with-notifications.md)
+ [Empfangen von Push-Benachrichtigungen in Amazon Chime SDK-Nachrichten](receive-notifications.md)
+ [Debuggen von Push-Benachrichtigungsfehlern für Amazon Chime SDK-Messaging](debug-notifications.md)
+ [Verwenden von Filterregeln zum Filtern von Nachrichten für Amazon Chime SDK-Nachrichten](filter-msgs.md)

# Erstellen Sie eine Amazon Pinpoint Pinpoint-Anwendung für Amazon Chime SDK-Messaging
<a name="create-pinpoint"></a>

Zum Senden von Push-Benachrichtigungen benötigt das Amazon Chime SDK eine Amazon Pinpoint Pinpoint-Anwendung, die so konfiguriert ist, dass sie Pushs an Ihre mobile App sendet. In den folgenden Schritten wird erklärt, wie Sie mit der AWS Konsole eine Pinpoint-Anwendung erstellen.

**So erstellen Sie eine Amazon Pinpoint Pinpoint-Anwendung**

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Pinpoint Pinpoint-Konsole unter [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/).

   Wenn Sie Amazon Pinpoint zum ersten Mal verwenden, wird eine Seite mit einer Einführung in die Features des Service angezeigt.

1. Geben Sie im Abschnitt **Get started (Erste Schritte)** einen Namen für Ihr Projekt ein und wählen Sie dann **Create a project (Projekt erstellen)** aus.

1. Wählen Sie auf der Seite **Funktionen konfigurieren** neben **Push-Benachrichtigungen** die Option **Konfigurieren** aus.

1. Schalten Sie auf der Seite **Push-Benachrichtigungen einrichten** zwischen **Apple Push Notification Service (APNs)**, **Firebase Cloud Messaging (FCM)** oder beidem um und füllen Sie die erforderlichen Felder aus.
**Wichtig**  
Das Amazon Chime SDK unterstützt derzeit nur das Senden von Push-Benachrichtigungen an APNs und FCM.

1. Wenn Sie fertig sind, wählen Sie **Speichern** aus.

1. Kehren Sie zur Amazon Pinpoint Pinpoint-Konsole unter zurück [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)und notieren Sie sich den **Projekt-ID-Wert**. Sie verwenden das als ARN für Ihre Amazon Pinpoint Pinpoint-Anwendung.

# Eine Servicerolle für Amazon Chime SDK-Messaging erstellen
<a name="create-service-role"></a>

AWS verwendet Servicerollen, um einem AWS Service Berechtigungen zu erteilen, sodass dieser auf AWS Ressourcen zugreifen kann. Die Richtlinien, die Sie einer Servicerolle zuordnen, legen fest, auf welche Ressourcen der Dienst zugreifen kann und was er mit diesen Ressourcen machen kann. Die Servicerolle, die Sie für das Amazon Chime SDK erstellen, erteilt dem Service die Erlaubnis, `SendMessages` Aufrufe an Ihre Amazon Pinpoint Pinpoint-Anwendung zu tätigen.

**So erstellen Sie eine Servicerolle**

1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie die Registerkarte **JSON** und kopieren Sie die unten stehende Richtlinie in das Textfeld. Achten Sie darauf, die ID der Amazon Pinpoint Pinpoint-Anwendung, die Sie im vorherigen Schritt erstellt haben, und die `aws_account_id` durch Ihre AWS Konto-ID zu ersetzen`project_id`.

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

****  

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

------

1. Wählen Sie **Weiter: Tags** aus.

1. Wählen Sie **Weiter: Überprüfen**, geben Sie den Text **AmazonChimePushNotificationPolicy** in das Feld **Name** ein und wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

1. Wählen Sie auf der Seite **Rolle erstellen** die Option **AWS Service** aus, öffnen **Sie die Liste Benutzerfall auswählen** und wählen Sie **EC2** aus.

1. Wählen Sie **Weiter: Berechtigungen** aus, geben Sie **AmazonChimePushNotificationPolicy** im Suchfeld die Richtlinie ein und aktivieren Sie das Kontrollkästchen neben der Richtlinie.

1. Wählen Sie **Weiter: Tags** aus.

1. Wählen Sie **Weiter: Überprüfen** und geben Sie den Text **ServiceRoleForAmazonChimePushNotification** in das Feld **Name** ein. 
**Wichtig**  
Sie müssen den oben aufgeführten Namen verwenden. Das Amazon Chime SDK akzeptiert nur diesen speziellen Namen.

1. Wählen Sie „**Rolle erstellen**“ und geben Sie auf der Seite „**Rollen**“ den Text **ServiceRoleForAmazonChimePushNotification** in das Suchfeld ein und wählen Sie die passende Rolle aus.

1. Wählen Sie die Registerkarte **Vertrauensbeziehungen**, wählen Sie **Vertrauensstellung bearbeiten** und ersetzen Sie die bestehende Richtlinie durch die unten stehende Richtlinie.

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

****  

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

------

1. Wählen Sie **Update Trust Policy** (Trust Policy aktualisieren).

**Wichtig**  
Wenn Sie die Rolle ändern, indem Sie den Namen, die Berechtigungsrichtlinie oder die Vertrauensrichtlinie ändern, kann die Push-Benachrichtigungsfunktion beeinträchtigt werden. 

# Registrieren Sie einen Endpunkt auf Mobilgeräten als App Instance-Benutzer für Amazon Chime SDK-Messaging
<a name="register-endpoint"></a>

Um Push-Benachrichtigungen zu erhalten, müssen App-Instance-Benutzer zunächst die [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 verwenden, um ein Mobilgerät zu registrieren. Sie müssen sich über eine mobile App registrieren, die Zugriff auf das Geräte-Token für das Betriebssystem des Geräts hat.

Um sicherzustellen, dass der App-Instance-Benutzer Zugriff auf die im ARN aufgeführte Amazon Pinpoint Pinpoint-Anwendung hat, muss der Benutzer berechtigt sein, den `mobiletargeting:GetApp` Amazon Pinpoint Pinpoint-ARN aufzurufen. Andernfalls gibt das Amazon Chime SDK beim Aufrufen den Fehler 403 Forbidden aus. [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)

Dieses Beispiel zeigt die Richtlinie, die für die Registrierung eines Endpunkts erforderlich ist.

------
#### [ 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"
        }
    ]
}
```

------

**Um einen Endpunkt zu registrieren**
+ Verwenden Sie den Amazon Pinpoint ARN und Ihr Geräte-Token, um die [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 aufzurufen.

# Senden Sie eine Kanalnachricht mit aktivierten Benachrichtigungen im Amazon Chime SDK-Messaging
<a name="send-channel-msg-with-notifications"></a>

Die [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 hat ein optionales `PushNotification` Attribut, das das Amazon Chime SDK verwendet, um die Push-Benachrichtigung zu erstellen, die an Amazon Pinpoint gesendet werden soll. Derzeit unterstützt das Amazon Chime SDK nur die Felder Titel und Hauptteil der Benachrichtigung. 

Das Amazon Chime SDK unterstützt auch APNs VoIP-Pushes. Um eine Push-Benachrichtigung als APNs VoIP-Push zu senden, setzen Sie den Typ im `PushNotification` Attribut auf VOIP.

# Empfangen von Push-Benachrichtigungen in Amazon Chime SDK-Nachrichten
<a name="receive-notifications"></a>

Neben dem Titel und dem Text der Push-Benachrichtigung der Kanalnachricht enthält das Amazon Chime SDK auch die Kanalnachricht-ID und den Kanal-ARN in der Daten-Payload. Sie verwenden diese Informationen, um die vollständige Kanalnachricht zu laden.

Die folgenden Beispiele zeigen eine typische Payload für Push-Benachrichtigungen.

```
{
    "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"
    }
}
```

## Empfangene Push-Benachrichtigungen deaktivieren oder filtern
<a name="disable-filter-receipt"></a>

Das Amazon Chime SDK bietet mehrere Optionen, mit denen App-Instance-Benutzer steuern können, ob sie Push-Benachrichtigungen erhalten möchten.

**Deaktivierung aller Push-Benachrichtigungen**  
 Benutzer von App-Instanzen können Push-Benachrichtigungen vollständig deaktivieren, indem sie das `AllowMessages` Attribut aufrufen [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)und auf `NONE` setzen. 

**Push-Benachrichtigungen für einen Kanal deaktivieren**  
Benutzer von App-Instanzen können Push-Benachrichtigungen für einen bestimmten Kanal deaktivieren, indem sie `NONE` im Feld **PushNotification Einstellungen** unter anrufen [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). 

**Push-Benachrichtigungen für einen Kanal filtern**  
App Instance-Benutzer können eine Filterregel festlegen, sodass sie über die [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 nur bestimmte Push-Benachrichtigungen erhalten. Weitere Informationen finden Sie unter [Verwenden von Filterregeln zum Filtern von Nachrichten für Amazon Chime SDK-Nachrichten](filter-msgs.md). 

# Debuggen von Push-Benachrichtigungsfehlern für Amazon Chime SDK-Messaging
<a name="debug-notifications"></a>

Das Amazon Chime SDK ist EventBridge in Amazon integriert, um Sie über Fehler bei der Zustellung von Push-Nachrichten zu informieren. Um Fehler weiter zu debuggen, können Sie sich auch die [CloudWatchMetriken](https://docs.aws.amazon.com/pinpoint/latest/userguide/monitoring-metrics.html) ansehen, die Amazon Pinpoint für Fehler sendet.

In der folgenden Tabelle sind die Fehlermeldungen bei der Zustellung aufgeführt und beschrieben.


| Fehlermeldung | Description | 
| --- | --- | 
| Die Anforderungsverarbeitung ist fehlgeschlagen, da ein unbekannter Fehler, eine Ausnahme oder ein Fehler aufgetreten ist. | Es ist ein interner Fehler aufgetreten. Bitte versuchen Sie es noch einmal. | 
| Die angegebene Ressource wurde nicht gefunden. AppInstanceUserEndpointwird deaktiviert. | Die Amazon Pinpoint Pinpoint-Anwendung ist nicht vorhanden. | 
| Zu viele Anfragen wurden an Amazon Pinpoint gesendet. | Amazon Pinpoint hat Ihre ausgehenden Nachrichten gedrosselt. | 
| Nachrichten konnten nicht gesendet werden. Bitte überprüfen Sie, ob die IAM-Berechtigungsrichtlinie aktiviert ServiceRoleForAmazonChimePushNotification ist. | Die für das Amazon Chime SDK erstellte Rolle hat keine `mobiletargeting:SendMessages` Anrufberechtigung. Bitte überprüfen Sie die IAM-Richtlinie für die Rolle. | 
| Nachrichten konnten nicht gesendet werden. Bitte überprüfen Sie, ob IAM Trust Relationships aktiviert ServiceRoleForAmazonChimePushNotification ist. | Das Amazon Chime SDK ist nicht berechtigt, auf die Rolle für Push-Benachrichtigungen zuzugreifen.  Bitte überprüfen Sie, ob die Vertrauensrichtlinie der IAM-Rolle den Dienstprinzipal, enthält. `messaging.chime.amazonaws.com` | 

# Verwenden von Filterregeln zum Filtern von Nachrichten für Amazon Chime SDK-Nachrichten
<a name="filter-msgs"></a>

Das Amazon Chime SDK unterstützt das Festlegen von Filterregeln für die Kanalmitgliedschaft eines App-Instance-Benutzers, um einzuschränken, welche Nachricht er erhält. Filterregeln werden für die Kanalmitgliedschaft festgelegt und anhand der Zuordnung der Nachrichtenattribute ausgeführt. Bei der Zuordnung der Nachrichtenattribute muss es sich um eine Zuordnung von Zeichenkettenschlüsseln zu Zeichenkettenwerten handeln. Filterregeln unterstützen Inklusion und Exclusion mit exakter Übereinstimmung von Zeichenketten.

**Wichtig**  
Das Amazon Chime SDK unterstützt nur maskierte JSON-Zeichenketten als Filterregel.
Alle Mitglieder eines Benachrichtigungskanals erhalten die Push-Benachrichtigungen, einschließlich der Nachrichtenabsender. Um dies zu verhindern, sehen Sie sich die erste Beispielregel unten an.

Verwenden Sie die [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, um Filterregeln für eine Kanalmitgliedschaft festzulegen. Sie können Nachrichtenattribute als Teil des [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-Aufrufs in eine Kanalnachricht aufnehmen.

**Topics**
+ [Regeltypen filtern](#filter-rule-types)
+ [Grenzwerte für Filterregeln](#filter-rule-limits)
+ [Beispiel für Filterregeln](#example-preference-rule)

## Regeltypen filtern
<a name="filter-rule-types"></a>

Das Amazon Chime SDK unterstützt die folgenden Arten von Filterregeln: 
+ Inklusive exaktem Zeichenkettenabgleich
+ Exklusiver genauer Zeichenkettenabgleich
+ Mehrere Filterregeln mit AND oder OR

## Grenzwerte für Filterregeln
<a name="filter-rule-limits"></a>

Das Amazon Chime SDK legt die folgenden Einschränkungen für Filterregeln fest:
+ Wir unterstützen nur den exakten Zeichenkettenabgleich.
+ Eine Gesamtgröße der Filterregeln von 2 KB.
+ Eine Gesamtgröße des Nachrichtenattributs von 1 KB.
+ Maximal fünf (5) separate Einschränkungen innerhalb einer OR-Filterregel.
+ Eine maximale Komplexität von 20 für die gesamte Filterregel. Die *Komplexität* wird als Summe der Anzahl der Schlüssel und Werte in der Filterregel berechnet:

  Diese Filterregel hat beispielsweise eine Komplexität von 4.

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

  Wir berechnen diesen Wert wie folgt:

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

## Beispiel für Filterregeln
<a name="example-preference-rule"></a>

Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Kanalmitgliedschaftseinstellungen und Filterregeln zu verwenden.

**Verhindern, dass Nachrichten an Absender gehen**  
Diese Filterregel sendet Nachrichten an alle Kanalmitglieder mit Ausnahme des Nachrichtenabsenders.

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

App-Instanzbenutzer mit den oben angegebenen Einstellungen erhalten eine Kanalnachricht mit den folgenden Attributen:

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

**Inklusive Zeichenkettenabgleich**  
 Diese Filterregel erlaubt jede Nachricht mit dem Nachrichtenattributschlüssel „Mention“ und dem Wert „Bob“. 

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

Ein App-Instance-Benutzer mit den oben angegebenen Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:

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

Der Benutzer der App-Instanz erhält jedoch keine Kanalnachricht mit den folgenden Attributen:

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

**Exklusiver Zeichenkettenabgleich**  
 Diese Filterregel erlaubt alle Nachrichten außer Nachrichten, die den Attributschlüssel „type“ und den Wert „Room“ enthalten. 

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

Ein App-Instance-Benutzer mit diesen Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:

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

Dem App-Instanzbenutzer wird jedoch keine Kanalnachricht mit den folgenden Attributen angezeigt:

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

**Eine Regel für mehrere Filter mit UND-Logik**  
Wenn Sie Filterregeln mit UND-Logik kombinieren, muss eine Nachricht alle Filterkriterien erfüllen, damit der Filter angewendet wird.

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

Ein App-Instanzbenutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:

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

**Eine Regel für mehrere Filter mit OR-Logik**  
Sie verwenden`$or`, um Filterregeln mit OR-Logik zu kombinieren. Wenn Sie die OR-Logik verwenden, muss eine Nachricht eines der Kriterien erfüllen, damit der Filter angewendet werden kann. 

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

Ein App-Instance-Benutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:

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

Ein App-Instanz-Benutzer mit den oben genannten Einstellungen erhält eine Kanalnachricht mit den folgenden Nachrichtenattributen:

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

# Verwenden von serviceverknüpften Rollen für Amazon Chime SDK-Messaging
<a name="using-roles"></a>

Das Amazon Chime SDK verwendet AWS Identity and Access Management (IAM) [service-verknüpfte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) Rollen. Eine serviceverknüpfte Rolle ist eine einzigartige Art von IAM-Rolle, die direkt mit dem Amazon Chime SDK verknüpft ist. Das Amazon Chime SDK definiert die serviceverknüpften Rollen vordefiniert und sie beinhalten alle Berechtigungen, die der Service benötigt, um andere AWS Services in Ihrem Namen aufzurufen. 

Eine serviceverknüpfte Rolle macht die Einrichtung des Amazon Chime SDK effizienter, da Sie die erforderlichen Berechtigungen nicht manuell hinzufügen müssen. Das Amazon Chime SDK definiert die Berechtigungen seiner serviceverknüpften Rollen. Sofern nicht anders definiert, kann nur Amazon Chime SDK seine Rollen übernehmen. Die definierten Berechtigungen umfassen die Vertrauens- und Berechtigungsrichtlinien. Die Berechtigungsrichtlinie kann an keine andere IAM-Entität angefügt werden.

Sie können eine serviceverknüpfte Rolle erst löschen, nachdem die zugehörigen Ressourcen gelöscht wurden. Dadurch werden Ihre Amazon Chime SDK-Ressourcen geschützt, da Sie die Zugriffsberechtigung für die Ressourcen nicht versehentlich entziehen können.

Weitere Informationen zu anderen Services, die serviceverknüpfte Rollen unterstützen, finden Sie unter [AWS -Services, die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Suchen Sie nach den Services, für die **Yes (Ja) **in der Spalte **Serviceverknüpfte Rolle** angegeben ist. Wählen Sie **Ja** mit einem Link, um die Dokumentation für diesen Service aufzurufen.

**Topics**
+ [Verwenden von serviceverknüpften Rollen für Datenstreaming im Amazon Chime SDK-Messaging](stream-service-linked.md)

# Verwenden von serviceverknüpften Rollen für Datenstreaming im Amazon Chime SDK-Messaging
<a name="stream-service-linked"></a>

In den folgenden Abschnitten wird erklärt, wie Sie die dienstverknüpfte Rolle für Datenstreaming verwalten.

**Topics**
+ [Berechtigungen von serviceverknüpften Rollen](#role-permissions)
+ [Erstellen einer serviceverknüpften Rolle](#create-service-linked-role)
+ [Bearbeiten einer serviceverknüpften Rolle](#editing-roles)
+ [Löschen der Ressourcen, die von einer serviceverknüpften Rolle verwendet werden](#cleaning-up)
+ [Löschen einer serviceverknüpften Rolle](#deleting-roles)

## Berechtigungen von serviceverknüpften Rollen
<a name="role-permissions"></a>

Das Amazon Chime SDK verwendet die mit dem Service verknüpfte Rolle namens. **AWSServiceRoleForChimeSDKMessaging** Die Rolle gewährt Zugriff auf die AWS Dienste und Ressourcen, die vom Amazon Chime SDK verwendet oder verwaltet werden, z. B. die Kinesis-Streams, die für das Datenstreaming verwendet werden. 

Die **AWSServiceRoleForChimeSDKMessaging**serviceverknüpfte Rolle vertraut den folgenden Diensten, sodass diese Dienste die Rolle übernehmen können:
+ messaging.chime.amazonaws.com

Die Rollenberechtigungsrichtlinie ermöglicht es dem Amazon Chime SDK, die folgenden Aktionen für die angegebene Ressource durchzuführen:
+ `kms:GenerateDataKey`nur wenn die Anfrage mit `kinesis.*.amazonaws.com` gestellt wird.
+ `kinesis:PutRecord`,`kinesis:PutRecords`, oder `kinesis:DescribeStream` nur in Streams des folgenden Formats:`arn:aws:kinesis:*:*:stream/chime-messaging-*`.

Das folgende Beispiel zeigt die Richtlinie.

------
#### [ 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-*"
    			]
    		}
    	]
    }
```

------

Sie müssen Berechtigungen konfigurieren, damit eine IAM-Entität, z. B. ein Benutzer, eine Gruppe oder eine Rolle, eine serviceverknüpfte Rolle erstellen, bearbeiten oder löschen kann. Weitere Informationen finden Sie unter [Berechtigungen für dienstverknüpfte Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) im *IAM-Benutzerhandbuch*.

## Erstellen einer serviceverknüpften Rolle
<a name="create-service-linked-role"></a>

Sie müssen eine serviceverknüpfte Rolle nicht manuell erstellen. Wenn Sie die [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 verwenden, um eine Datenstreaming-Konfiguration zu erstellen, erstellt das Amazon Chime SDK die serviceverknüpfte Rolle für Sie. 

Sie können die IAM-Konsole auch verwenden, um eine serviceverknüpfte Rolle mit dem Amazon Chime SDK-Anwendungsfall zu erstellen. Erstellen Sie in der AWS CLI oder der AWS API eine dienstverknüpfte Rolle mit dem `messaging.chime.amazonaws.com` Dienstnamen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erstellen einer serviceverknüpften Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role). Wenn Sie diese Rolle löschen, können Sie diesen Vorgang wiederholen, um sie erneut zu erstellen.

## Bearbeiten einer serviceverknüpften Rolle
<a name="editing-roles"></a>

Nachdem Sie eine serviceverknüpfte Rolle erstellt haben, können Sie nur ihre Beschreibung bearbeiten, und zwar mithilfe von IAM. Weitere Informationen finden Sie im [*IAM-Benutzerhandbuch* unter Bearbeiten einer serviceverknüpften Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role).

## Löschen der Ressourcen, die von einer serviceverknüpften Rolle verwendet werden
<a name="cleaning-up"></a>

Bevor mit IAM eine serviceverknüpfte Rolle löschen können, müssen Sie zunächst alle von der Rolle verwendeten Ressourcen löschen.

**Anmerkung**  
Löschungen können fehlschlagen, wenn Sie versuchen, Ressourcen zu löschen, während das Amazon Chime SDK sie verwendet. Wenn ein Löschvorgang fehlschlägt, warten Sie einige Minuten und versuchen Sie den Vorgang erneut.

**Um Ressourcen zu löschen, die von der AmazonChimeServiceChatStreamingAccess Rolle verwendet werden**  
Führen Sie den folgenden CLI-Befehl aus, um das Datenstreaming für die App-Instanz zu deaktivieren:
+ `aws chime-sdk-messaging delete-messaging-streaming-configurations --app-instance-arn app_instance_arn`

Diese Aktion löscht alle Streaming-Konfigurationen für Ihre App-Instanz.

## Löschen einer serviceverknüpften Rolle
<a name="deleting-roles"></a>

Wenn Sie eine Funktion oder einen Service nicht mehr benötigen, für den eine serviceverknüpfte Rolle erforderlich ist, empfiehlt es sich, diese Rolle zu löschen. Andernfalls haben Sie eine ungenutzte Entität, die nicht aktiv überwacht oder verwaltet wird. Sie müssen jedoch die Ressourcen löschen, die von Ihrer serviceverknüpften Rolle verwendet werden, bevor Sie die Rolle manuell löschen können.

Sie können die IAM-Konsole oder die AWS API verwenden AWS CLI, um die **AmazonChimeServiceRoleForChimeSDKMessaging**serviceverknüpfte Rolle zu löschen. Weitere Informationen finden Sie im [IAM-Benutzerhandbuch unter Löschen einer serviceverknüpften Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role).

# Verwenden von Kanalflüssen zur Verarbeitung von Nachrichten für Amazon Chime SDK-Messaging
<a name="using-channel-flows"></a>

Sie verwenden Kanalflüsse, um Geschäftslogik für Nachrichten während der Übertragung anzuwenden, bevor sie an Empfänger in einem Messaging-Kanal zugestellt werden. Kanalflüsse können Aktionen wie das Entfernen von behördlichen Ausweisnummern, Telefonnummern oder Schimpfwörtern aus Nachrichten ausführen. Sie können Kanalflüsse auch verwenden, um Funktionen wie die Zusammenfassung der Antworten auf eine Umfrage auszuführen, bevor die Ergebnisse an die Teilnehmer zurückgesendet werden.

**Voraussetzungen**
+ Kenntnisse der grundlegenden Funktionen des Amazon Chime SDK, wie z. B. die Verwaltung von Kanälen und das Senden und Empfangen von Nachrichten.
+ Die Möglichkeit, das Amazon Chime SDK-Messaging aufzurufen. APIs

**Konzepte für den Kanalfluss**

Um Kanalflüsse effektiv nutzen zu können, müssen Sie die folgenden Konzepte verstehen:

**Kanalprozessor**  
Eine AWS Lambda Funktion, die die Vorverarbeitungslogik für Kanalnachrichten ausführt. Wenn Sie einem Kanalfluss einen Kanal zuordnen, wird der Prozessor im Fluss für jede Nachricht im Kanal aufgerufen. Um die Latenz zu reduzieren, eignet sich ein einzelner Prozessor für die meisten Anwendungsfälle am besten. Schließlich muss jeder Prozessor nach Abschluss der Verarbeitung einen Rückruf an den Amazon Chime SDK-Service tätigen.   
Derzeit unterstützen wir nur einen Prozessor pro Kanalfluss. Wenn Sie mehr als einen Prozessor benötigen, reichen Sie ein Support-Ticket für eine Erhöhung ein.

**Kanalfluss**  
Kanalflüsse sind Container für bis zu drei Kanalprozessoren plus eine Ablaufsequenz. Sie ordnen einem Kanal einen Flow zu, und der Prozessor reagiert auf alle Nachrichten, die an diesen Kanal gesendet werden.

**Kanalflüsse aufrufen**  
Die folgenden Elemente rufen Kanalflüsse auf:
+ Neue persistente Standardnachrichten
+ Neue nicht persistente Standardnachrichten
+ Persistente Standardnachrichten wurden aktualisiert

**Anmerkung**  
Kanalflüsse verarbeiten keine Steuerungs- oder Systemnachrichten. Weitere Informationen zu den von Amazon Chime SDK Messaging bereitgestellten Nachrichtentypen finden Sie [Grundlegendes zu den Nachrichtentypen des Amazon Chime SDK](msg-types.md) unter.

**Topics**
+ [Einen Channel-Prozessor für Amazon Chime SDK-Messaging einrichten](processor-setup.md)
+ [Einen Kanalfluss für Amazon Chime SDK-Messaging erstellen](create-channel-flow.md)
+ [Kanalflüsse für Amazon Chime SDK-Messaging zuordnen und trennen](associate-channel-flow.md)
+ [Senden von Nachrichten im Amazon Chime SDK-Messaging](sending-msgs.md)
+ [Erstellen von Fehlerwarnungen durch Automatisierung mit EventBridge Amazon Chime SDK-Messaging](event-bridge-events.md)

# Einen Channel-Prozessor für Amazon Chime SDK-Messaging einrichten
<a name="processor-setup"></a>

Um mit der Verwendung von Kanalflüssen zu beginnen, erstellen Sie zunächst eine Prozessor-Lambda-Funktion, die die Vorverarbeitung für Ihren Anwendungsfall übernimmt. Sie können beispielsweise Nachrichteninhalte oder Metadaten aktualisieren, Nachrichten ablehnen und deren Versand verhindern oder die ursprüngliche Nachricht durchlassen.

**Voraussetzungen**
+ Die Lambda-Funktion muss sich im selben AWS Konto und in denselben AWS Regionen wie die AppInstance befinden.

**Erteilen von Aufrufrechten**  
Sie müssen dem Amazon Chime SDK-Messaging-Service die Erlaubnis erteilen, Ihre Lambda-Ressource aufzurufen. Weitere Informationen zu Berechtigungen finden Sie unter [Verwenden ressourcenbasierter](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html) Richtlinien für. AWS Lambda Beispiel:

  
**Schulleiter: „messaging.chime.amazonaws.com**“  
**Aktion**: Lambda: InvokeFunction  
**Effekt**: Erlauben  
**AWSSourceAccount:***Your AWS AccountId*.  
**AWS: SourceArn**: `"arn:aws:chime:region:AWS AccountId: appInstance/"`

**Anmerkung**  
Sie können eine bestimmte App-Instance-ID angeben, um Ihren Prozessor aufzurufen, oder einen Platzhalter verwenden, damit alle Amazon Chime SDK-App-Instances in einem Konto Ihren Prozessor aufrufen können.

**Erteilen von Rückrufberechtigungen**  
Sie müssen auch den Lambda-Funktionen Ihres Prozessors erlauben, die `ChannelFlowCallback` API aufzurufen. Informationen dazu finden Sie im *AWS Lambda Entwicklerhandbuch* unter [Rolle AWS Lambda ausführen](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). 

Sie können der Ausführungsrolle Ihrer Lambda-Funktion eine Inline-Richtlinie hinzufügen. In diesem Beispiel kann der Prozessor die aufrufen. `ChannelFlowCallback API`

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

****  

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

------

**Anmerkung**  
Folgen Sie den Best Practices für Lambda-Funktionen. Weitere Informationen finden Sie in den folgenden Themen:   
[Bewährte Methoden für Leistung und Effizienz](https://docs.aws.amazon.com/whitepapers/latest/serverless-architectures-lambda/performance-efficiency-best-practices.html) 
[Bewährte Methoden für die Arbeit mit AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html)
[Konfigurieren reservierter Gleichzeitigkeit](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html#configuration-concurrency-reserved)
[Asynchroner Aufruf](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)

**Aufrufen von Prozessor-Lambda-Funktionen**  
Wenn ein Benutzer eine Nachricht sendet, ruft die folgende Eingabeanforderung die Lambda-Funktion des Prozessors auf.

```
{
    "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  
Das Ereignis wird an den Prozessor gesendet. Der Wert ist eine `CHANNEL_MESSAGE_EVENT` Konstante.

CallbackId  
Das Token, das beim Aufrufen der `ChannelFlowCallback` API vom Prozessor verwendet wurde.

ChannelMessage  
*ChannelArn*Der ARN des Kanals  
*Inhalt Inhalt* der Nachricht, die verarbeitet werden soll  
*CreatedTimestamp*Der Zeitpunkt, zu dem die Nachricht erstellt wurde  
*LastEditedTimestamp*Der Zeitpunkt, zu dem eine Nachricht bearbeitet wurde  
*MessageId*Die Nachrichten-ID  
*Metadaten* Zu verarbeitende Nachrichtenmetadaten  
*Persistence* Boolescher Wert, der steuert, ob die Nachricht im Backend persistent gespeichert wird. Zulässige Werte: `PERSISTENT | NON_PERSISTENT`  
*Absender Der Absender* der Nachricht. Typ: ein [identityObjekt](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_Identity.html).  
*Geben Sie* den Nachrichtentyp ein. ChannelFlowunterstützt nur die `STANDARD` Nachrichtentypen. Gültiger Wert: `STANDARD`

Die Prozessorfunktion bestimmt für jede Nachricht Folgendes.
+ Ob der Nachrichteninhalt, die Metadaten oder beides aktualisiert werden sollen
+ Ob eine Nachricht abgelehnt werden soll 
+ Ob eine Nachricht unverändert bleiben soll

Wenn die Verarbeitung abgeschlossen ist, sendet die Lambda-Funktion des Prozessors das Ergebnis zurück an den Amazon Chime SDK Messaging-Service, sodass die Nachricht an alle Empfänger gesendet werden kann. Der Nachrichtenstatus wird markiert, `PENDING` bis die Lambda-Funktion des Prozessors die Ergebnisse zurücksendet. Die Lambda-Funktion des Prozessors hat 48 Stunden Zeit, um die Ergebnisse zurückzusenden. Danach können wir die Nachrichtenzustellung nicht garantieren, und die [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 gibt eine Forbidden Exception-Fehlermeldung aus. Rufen Sie die API auf, um die Ergebnisse zurückzusenden. `ChannelFlowCallback`

# Einen Kanalfluss für Amazon Chime SDK-Messaging erstellen
<a name="create-channel-flow"></a>

Sobald Sie die Prozessoren eingerichtet haben, verwenden Sie das Amazon Chime SDK Messaging, um einen Channel-Flow APIs zu erstellen. Sie können eine `Fallback` Aktion verwenden, um zu definieren, ob die Verarbeitung gestoppt oder fortgesetzt werden soll, wenn der Kanalfluss keine Verbindung zur Prozessor-Lambda-Funktion herstellen kann. Wenn ein Prozessor über eine Fallback-Aktion von verfügt`ABORT`, setzt der Prozessor den Nachrichtenstatus auf `FAILED` und sendet die Nachricht nicht. Beachten Sie, dass, wenn der letzte Prozessor in der Kanalflusssequenz eine Fallback-Aktion von hat`CONTINUE`, die Nachricht als verarbeitet und an Empfänger im Kanal gesendet gilt. Sobald Sie einen Kanalfluss erstellt haben, können Sie ihn einzelnen Kanälen zuordnen. Weitere Informationen finden Sie in der [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)API-Dokumentation. 

# Kanalflüsse für Amazon Chime SDK-Messaging zuordnen und trennen
<a name="associate-channel-flow"></a>

Wenn Sie einen Kanal einem Kanalfluss zuordnen, verarbeiten die Prozessoren im Kanalfluss alle an den Kanal gesendeten Nachrichten vor. Sie müssen ein Kanalmoderator oder Administrator sein, um die Zuordnung und Trennung des Kanalflusses zu aktivieren. APIs Denken Sie immer an diese Fakten.
+ Sie können einem Kanal zu einem beliebigen Zeitpunkt maximal einen Kanalfluss zuordnen. Rufen Sie die [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 auf, um einen Kanalfluss zuzuordnen. 
+ Rufen Sie die API auf, um die Zuordnung eines Kanalflusses aufzuheben und die Vorverarbeitung von Kanalnachrichten zu beenden. [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) 

# Senden von Nachrichten im Amazon Chime SDK-Messaging
<a name="sending-msgs"></a>

Sie verwenden die `SendChannelMessage` API, um Nachrichten an einen Kanal zu senden. Für einen Kanal, der einem Kanalfluss zugeordnet ist, weist der Prozessor einen der folgenden Statuswerte zu.




| Status der Nachricht | Description | 
| --- | --- | 
| `SENT` | Nachricht wurde erfolgreich verarbeitet. | 
| `PENDING` | Laufende Bearbeitung. | 
| `FAILED` | Die Verarbeitung ist fehlgeschlagen, weil die Lambda-Funktion des Prozessors nicht erreichbar ist. | 
| `DENIED` | Die Nachricht wird nicht gesendet. | 

**Empfangen von Ereignissen mit Zwischenstatus**  
**Websocket-Ereignisse**

Websocket-Ereignisse werden an einen Kanal gesendet, nachdem sie erfolgreich eine Verbindung hergestellt haben. Weitere Informationen finden Sie unter [Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](websockets.md). 


| Ereignistyp | Status | Empfänger | Hinweise | 
| --- | --- | --- | --- | 
| `CREATE_CHANNEL_MESSAGE` | `SENT` | Alle Kanalmitglieder | `SendChannelMessage`API mit erfolgreicher Vorverarbeitung | 
| `UPDATE_CHANNEL_MESSAGE` | `SENT` | Alle Kanalmitglieder | `UpdateChannelMessage`API mit erfolgreicher Vorverarbeitung | 
| `PENDING_CREATE_CHANNEL_MESSAGE` | `PENDING` | Nur Absender der Nachricht | `SendChannelMessage`API mit laufender Vorverarbeitung | 
| `PENDING_UPDATE_CHANNEL_MESSAGE` | `PENDING` | Nur Absender der Nachricht | `UpdateChannelMessage`API mit laufender Vorverarbeitung | 
| `FAILED_CREATE_CHANNEL_MESSAGE` | `FAILED` | Nur Absender der Nachricht | `SendChannelMessage`API mit fehlgeschlagener Vorverarbeitung | 
| `FAILED_UPDATE_CHANNEL_MESSAGE` | `FAILED` | Nur Absender der Nachricht | `UpdateChannelMessage`API mit fehlgeschlagener Vorverarbeitung | 
| `DENIED_CREATE_CHANNEL_MESSAGE` | `DENIED` | Nur Absender der Nachricht | `SendChannelMessage`API mit Prozessor, der die Nachricht ablehnt | 
| `DENIED_UPDATE_CHANNEL_MESSAGE` | `DENIED` | Nur Absender der Nachricht | `UpdateChannelMessage`API mit Prozessor, der die Nachricht ablehnt | 

**GetChannelMessageStatus-API**  
Diese API bietet eine alternative Möglichkeit, den Nachrichtenstatus abzurufen, wenn das Ereignis aufgrund einer schlechten Websocket-Verbindung nicht empfangen wurde. Weitere Informationen finden Sie in der [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)API-Dokumentation.

**Anmerkung**  
Diese API gibt keine Statusmeldungen für abgelehnte Nachrichten zurück, da wir sie nicht speichern.

# Erstellen von Fehlerwarnungen durch Automatisierung mit EventBridge Amazon Chime SDK-Messaging
<a name="event-bridge-events"></a>

Das Amazon Chime SDK sendet Ereignisse, wenn beim Aufrufen der Lambda-Funktion Ihres Prozessors ein Fehler auftritt. Ereignisse werden unabhängig von der `Fallback` Aktion gesendet, die für den Prozessor bei der Erstellung eines Kanalflusses angegeben wurde. Sie können einfache Regeln schreiben, um diese Ereignisse zu spezifizieren, sowie die automatisierten Aktionen, die ausgeführt werden, wenn eines dieser Ereignisse mit einer Regel übereinstimmt, festzulegen. Weitere Informationen finden Sie im [ EventBridge Amazon-Benutzerhandbuch](https://docs.aws.amazon.com/eventbridge/latest/userguide/). Wenn solche Fehler auftreten, können Mitglieder des Kanals je nach der von Ihnen konfigurierten `Fallback` Aktion keine Nachrichten senden, oder Nachrichten werden ohne Verarbeitung durch den Kanal geleitet. Weitere Informationen zu der `Fallback` Aktion finden Sie [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)in der Amazon Chime SDK API-Referenz. 

Dieses Beispiel zeigt ein typisches Fehlerereignis.

```
{
    "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"
      }
}
```

# Verwendung AppInstanceBots als intelligente Kanalagenten für Amazon Chime SDK-Messaging
<a name="appinstance-bots"></a>

Sie können es `AppInstanceBots` als intelligente Channel-Agenten verwenden. Die Agenten erkennen wichtige Phrasen, über die Kanalmitglieder gesendet `ChannelMessages` wurden. Das Modell des Bots für natürliches Sprachverständnis löst die Nachrichten auf. Dies wiederum ermöglicht es einem oder mehreren Kanalmitgliedern, an einem Dialog in natürlicher Sprache teilzunehmen, der durch das Modell des Bots definiert wird. Sie stellen die Bots zur Verfügung, sodass Sie die Tiefe des Dialogs und die Integration mit Ihren Unternehmenssystemen kontrollieren können.

**Voraussetzungen**
+ Kenntnisse der grundlegenden Funktionen des Amazon Chime SDK, z. B. das Erstellen `AppInstanceUsers` und Verwalten von Kanälen sowie das Senden und Empfangen von Nachrichten.
+ Die Möglichkeit, das Amazon Chime SDK Messaging aufzurufen. APIs
+ Kenntnisse der grundlegenden Funktionen von Amazon Lex V2, z. B. das Erstellen eines Amazon Lex V2-Bots, das Modellieren von Absichten und Slots, das Erstellen von Bot-Versionen, Aliasen, die Verwendung des Sitzungsstatus und die Lambda-Hook-Integration.

**Wichtig**  
Die Nutzung von Amazon Lex V2 unterliegt den [AWS-Servicebedingungen](https://aws.amazon.com/service-terms/), einschließlich der spezifischen Bedingungen für die AWS-Services für Machine Learning und künstliche Intelligenz.

**Topics**
+ [Einen Amazon Lex V2-Bot für Amazon Chime SDK-Messaging erstellen](create-lex-bot.md)
+ [AppInstance Bots für Amazon Chime SDK-Messaging einrichten](appinstance-bot-setup.md)
+ [Kanalmitgliedschaft AppInstanceBot für Amazon Chime SDK-Nachrichten erstellen](channel-membership.md)
+ [Senden von Nachrichten an und AppInstanceBot für Amazon Chime SDK-Nachrichten](message-appinstancebot.md)
+ [Verarbeiten von Nachrichten von Amazon Lex für Amazon Chime SDK-Nachrichten](process-from-lexv2.md)
+ [Verarbeitung von Antworten von Nachrichten AppInstanceBot für Amazon Chime SDK](process-response.md)
+ [Verwenden von Regeln zum Senden von Ereignissen an Amazon EventBridge für Amazon Chime SDK-Nachrichten](event-bridge-alerts.md)
+ [Fehlerbehebung bei AppInstanceBots Konfiguration mit Amazon Lex V2-Bots für Amazon Chime SDK-Messaging](troubleshoot-lex-bots.md)

# Einen Amazon Lex V2-Bot für Amazon Chime SDK-Messaging erstellen
<a name="create-lex-bot"></a>

Um AppInstance Bots als Agenten zu verwenden, müssen Sie zunächst einen Amazon Lex V2-Bot erstellen, um die Dialoginteraktion für ein intelligentes Agent-Szenario zu verwalten. Informationen zu den ersten Schritten beim Erstellen eines Amazon Lex V2-Bots finden Sie unter [Erste Schritte mit Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/getting-started.html) im *Amazon Lex V2-Entwicklerhandbuch*. Informationen zur Migration eines Amazon Lex V1-Bots zu Amazon Lex V2 finden Sie im [Leitfaden zur Migration von Amazon Lex V1 zu V2](https://docs.aws.amazon.com/lexv2/latest/dg/migration.html).

**Topics**
+ [Voraussetzungen](#lex-prereqs)
+ [Erteilen von Aufrufrechten](#invocation-perms)
+ [Willkommensabsicht für Amazon Chime SDK-Nachrichten erstellen](welcome-intent.md)
+ [Erstellen von Amazon Lex V2-Bot-Versionen für Amazon Chime SDK-Messaging](lex-versions.md)
+ [Amazon Lex V2-Bot-Aliase für Amazon Chime SDK-Nachrichten erstellen](lex-aliases.md)

## Voraussetzungen
<a name="lex-prereqs"></a>

Ihr Amazon Lex V2-Bot muss die folgenden Voraussetzungen erfüllen.
+ Sie müssen den Bot in einer AWS Region erstellen, die Amazon Lex V2-Runtime-Endpunkte unterstützt.
+ Sie müssen den Bot in demselben AWS Konto und derselben Region wie der `AppInstance` und `AppInstanceBot` erstellen.
+ Der Bot muss dem Dienstprinzipal über eine ressourcenbasierte Richtlinie Aufrufberechtigungen gewähren. `messaging.chime.amazonaws.com`
+ Der Bot kann einen Welcome Intent modellieren. Dies ermöglicht es`AppInstanceBot`, sich selbst und seine Fähigkeiten bei der Mitgliedschaft in einem Channel bekannt zu geben.
+ Der Bot sollte über eine Produktionsversion und Aliase verfügen, um das `AppInstanceBot` konfigurieren zu können.
+ Der Bot muss eine unterstützte Sprache und ein unterstütztes Gebietsschema verwenden. Weitere Informationen zu Sprachen und Gebietsschemas finden Sie unter In Amazon Lex [V2 unterstützte Sprachen und Gebietsschemas im Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html) *V2 Developer Guide*.

## Erteilen von Aufrufrechten
<a name="invocation-perms"></a>

Damit ein `AppInstanceBot` Amazon Lex V2-Bot aufgerufen werden kann, muss der Amazon Chime SDK-Messaging-Service-Principal über die Berechtigung verfügen, die Amazon Lex Bot-Ressource aufzurufen. Weitere Informationen zu ressourcenbasierten Richtlinienberechtigungen für Amazon Lex V2 finden Sie unter [Beispiele für ressourcenbasierte Richtlinien für Amazon Lex V2 im Amazon Lex *V2-Entwicklerhandbuch*](https://docs.aws.amazon.com/lexv2/latest/dg/security_iam_resource-based-policy-examples.html).

Das folgende Beispiel zeigt eine ressourcenbasierte Richtlinie.

------
#### [ 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"
        }
      }
    }
  ]
}
```

------

**Anmerkung**  
Verwenden Sie die ID von, `AppInstanceBot` damit ein Amazon Lex V2-Bot aufgerufen werden kann. AppInstanceBot Verwenden Sie einen Platzhalter`AppInstance`, damit alle `AppInstanceBots` innerhalb eines einen Amazon Lex V2-Bot aufrufen können. Beispiel:  
`arn:aws:chime:region:aws-account-id:app-instance/app-instance-id/bot/*`

# Willkommensabsicht für Amazon Chime SDK-Nachrichten erstellen
<a name="welcome-intent"></a>

Wenn Sie Ihrem Amazon Lex V2-Bot-Modell eine optionale Willkommensabsicht hinzufügen, `AppInstanceBot` können Sie sich selbst und seine Funktionen bekannt geben, wenn es einem Channel beitritt. Die Willkommensabsicht kann eine Nachricht anzeigen oder einen Dialog mit Kanalmitgliedern einleiten. Der Name der Willkommensabsicht kann variieren und du definierst ihn in der Konfiguration AppInstanceBot von.

Weitere Informationen zu Absichten finden Sie unter [Hinzufügen von Absichten](https://docs.aws.amazon.com/lexv2/latest/dg/build-intents.html) im *Amazon Lex V2* Developer Guide.

# Erstellen von Amazon Lex V2-Bot-Versionen für Amazon Chime SDK-Messaging
<a name="lex-versions"></a>

Wenn Sie einen Amazon Lex V2-Bot erstellen, erstellen Sie nur eine *Entwurfsversion*. Der Entwurf ist eine Arbeitskopie des Bots, die Sie aktualisieren können. Standardmäßig ist die Entwurfsversion mit einem Alias namens verknüpft`TestBotAlias`, und Sie sollten den Entwurfs-Bot nur für manuelle Tests verwenden.

Nachdem Sie die Dialogmodellierung abgeschlossen und den Entwurfs-Bot erstellt haben, erstellen Sie eine oder mehrere *Versionen*, nummerierte Schnappschüsse des Entwurfs des Lex-Bot. Mithilfe von Versionen können Sie steuern, welche Implementierung Ihre Client-Anwendungen verwenden. Sie können beispielsweise Versionen für die Verwendung in verschiedenen Teilen Ihres Workflows veröffentlichen, z. B. in der Entwicklung, Betabereitstellung und Produktion.

Weitere Informationen zur Versionierung von Lex-Bots finden Sie unter [Versionen erstellen](https://docs.aws.amazon.com/lexv2/latest/dg/versions.html) im *Amazon Lex V2 Developer Guide*.

# Amazon Lex V2-Bot-Aliase für Amazon Chime SDK-Nachrichten erstellen
<a name="lex-aliases"></a>

Sobald Sie eine oder mehrere Versionen eines Amazon Lex V2-Bots erstellt haben, erstellen Sie *Aliase*. Aliase dienen als benannte Verweise auf die Versionen eines Amazon Lex V2-Bots. Beispielsweise können Sie einen Alias jeweils nur einer Version zuordnen.

Weitere Informationen zu Lex-Bot-Aliasen finden Sie unter [Creating Aliases](https://docs.aws.amazon.com/lexv2/latest/dg/aliases.html) im *Lex V2 Developer Guide*.

# AppInstance Bots für Amazon Chime SDK-Messaging einrichten
<a name="appinstance-bot-setup"></a>

Nachdem Sie einen Amazon Lex V2-Bot mit einem Modell, einer Version und einem Alias haben, verwenden Sie das Amazon Chime SDK-Messaging APIs oder die CLI, um einen AppInstanceBot zu erstellen. Weitere Informationen zur Verwendung von finden Sie in der [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-Dokumentation. APIs

**Anmerkung**  
Sie verwenden das `InvokedBy` Attribut, um das Verhalten der Dialoginteraktion von zu konfigurieren`AppInstanceBot`. Sie können die Nachrichtentypen konfigurieren, die einen Bot auslösen, z. B. Standardnachrichten oder gezielte Nachrichten.

Das folgende Beispiel zeigt, wie Sie mit `MENTIONS` der AWS CLI eine erstellen AppInstanceBot , die von allen Standardnachrichten und zielgerichteten Nachrichten aufgerufen werden kann.

```
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"
   }
}
```

# Kanalmitgliedschaft AppInstanceBot für Amazon Chime SDK-Nachrichten erstellen
<a name="channel-membership"></a>

Sobald du den erstellt hast AppInstanceBot, fügst du ihn als Mitglied zu einem neuen oder bestehenden Channel hinzu. Weitere Informationen finden Sie [ CreateChannelMembership](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelMembership.html)in [CreateChannel](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannel.html)und in der *Amazon Chime SDK-Messaging-API-Dokumentation*.

Das folgende Beispiel zeigt, wie Sie mit der AWS CLI einen Channel erstellen und einen `AppInstanceBot` als Mitglied hinzufügen.

```
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"
]'
```

Das folgende Beispiel zeigt, wie Sie mit der AWS CLI einem `AppInstanceBot` vorhandenen Kanal eine hinzufügen.

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

# Senden von Nachrichten an und AppInstanceBot für Amazon Chime SDK-Nachrichten
<a name="message-appinstancebot"></a>

Sie verwenden die [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, um Nachrichten an eine zu senden AppInstanceBot. Sie senden die Nachrichten an den Kanal, in dem der Mitglied AppInstanceBot ist. Wenn das [Modell für natürliches Sprachverständnis](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) den Nachrichteninhalt erkennt und eine Amazon Lex-Absicht auslöst, AppInstanceBot reagiert es mit einer Kanalnachricht und leitet einen Dialog ein.

Sie können auch Zielnachrichten an ein Mitglied des Kanals senden, wobei es sich um eine oder eine AppInstanceUser handeln kann. AppInstanceBot Nur das Ziel und der Absender können gezielte Nachrichten sehen. Nur Benutzer, die gezielte Nachrichten sehen können, können mit ihnen Maßnahmen ergreifen. Administratoren können jedoch gezielte Nachrichten löschen, die sie nicht sehen können. 

Das folgende Beispiel zeigt, wie die AWS CLI zum Senden einer Kanalnachricht verwendet wird.

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

# Verarbeiten von Nachrichten von Amazon Lex für Amazon Chime SDK-Nachrichten
<a name="process-from-lexv2"></a>

Beim Senden von Nachrichten an Amazon Lex füllt Amazon Chime SDK Messaging das `CHIME.channel.arn` und `CHIME.sender.arn` mit den ARN-Informationen des Kanals und des Absenders als Anforderungsattributen. Sie können die Attribute verwenden, um festzustellen, wer eine Nachricht gesendet hat und zu welchem Kanal der Absender gehört. Weitere Informationen finden Sie unter [Enabling custom logic with AWS Lambda functions](https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html) im *Amazon Lex Developer Guide*.

# Verarbeitung von Antworten von Nachrichten AppInstanceBot für Amazon Chime SDK
<a name="process-response"></a>

Wenn ein Benutzer eine Nachricht sendet, AppInstanceBot antwortet er mit einer Kanalnachricht. Sie können Kanalnachrichten auflisten, um die Antwort des Bots zu erhalten. 

Das folgende Beispiel zeigt, wie Sie die CLI verwenden, um Kanalnachrichten aufzulisten.

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

Erfolgreiche Antworten von und AppInstanceBot haben das folgende Format. 

```
{
    "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**  
Das `Content` Feld enthält eine Liste von Nachrichten, die vom Amazon Lex V2-Bot stammen. Weitere Informationen zu diesen Nachrichten finden Sie unter [Nachrichten](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html#lexv2-runtime_RecognizeText-response-messages) in der Amazon Lex `RecognizeText` V2-API.  
Das folgende Beispiel zeigt, wie das `Content` Feld in einer Willkommensnachricht verwendet wird.  

```
{
    "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"
                    }
                ]
            }
        }
    ]
}
```
Bei einer Fehlerantwort enthält das Feld Inhalt eine Fehlermeldung und einen Code im folgenden Format:  

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

**ContentType**  
Das `ContentType` bezieht sich auf den Typ der Nutzlast, die das `Content` Feld enthält, und muss aktiviert werden, um das `Content` Feld zu analysieren.   
Der Lex V2-Bot verwendet einen anderen`ContentType`.
`ContentType`ist `application/amz-chime-lex-msgs` für eine erfolgreiche Antwort oder `application/amz-chime-lex-error` für eine fehlgeschlagene Antwort auf eingestellt.

**MessageAttributes**  
A *MessageAttribute*ist eine Zuordnung von Zeichenkettenschlüsseln zu Zeichenkettenwerten. Eine Antwort von einem `AppInstanceBot` enthält die folgenden Nachrichtenattribute, die einer Antwort von einem Amazon Lex Lex-Bot zugeordnet sind.   
+ **chime.lex.sessionState.intent.name — Der Name** der Lex-Bot-Absicht, die die Anfrage zu erfüllen versuchte.
+ **chime.lex.sessionState.intent.state** — Der aktuelle Status der Absicht. Mögliche Werte sind:, und`Fulfilled`. `InProgress` `Failed` 
+ **chime.lex.SessionState. originatingRequestId** — Eine eindeutige Kennung für eine bestimmte Anfrage an den Amazon Lex Lex-Bot. Dies ist auf die ursprüngliche `MessageId` Benutzernachricht gesetzt, die den ausgelöst hat AppInstanceBot.
+ **chime.lex.sessionState.sessionId** — Eine eindeutige Kennung für eine Konversation zwischen dem Benutzer und dem Bot. Wenn ein Benutzer einen Chat mit Ihrem Bot startet, erstellt Amazon Lex eine Sitzung.
Weitere Informationen zu Amazon Lex-Sitzungen und Sitzungsstatus finden Sie [https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_SessionState.html)in der *Amazon Lex API-Referenz* und unter [Verwalten von Sitzungen](https://docs.aws.amazon.com/lexv2/latest/dg/using-sessions.html) *im Amazon Lex V2 Developer Guide*  
Weitere Informationen zu den Attributen, die Amazon Lex V2 zurückgibt, finden Sie in [Amazon Lex Runtime V2](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_Operations_Amazon_Lex_Runtime_V2.html) APIs.

# Verwenden von Regeln zum Senden von Ereignissen an Amazon EventBridge für Amazon Chime SDK-Nachrichten
<a name="event-bridge-alerts"></a>

Das Amazon Chime SDK sendet EventBridge Ereignisse, wenn ein Fehler verhindert, dass der Amazon Lex V2-Bot aufgerufen werden kann. Sie können EventBridge Regeln erstellen, die diese Ereignisse erkennen und automatisch Maßnahmen ergreifen, wenn die Regel erfüllt ist. Weitere Informationen finden Sie unter [ EventBridge Amazon-Regeln](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) im * EventBridge Amazon-Benutzerhandbuch*.

Das folgende Beispiel zeigt ein typisches Fehlerereignis.

```
{
  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)"
  }
}
```

# Fehlerbehebung bei AppInstanceBots Konfiguration mit Amazon Lex V2-Bots für Amazon Chime SDK-Messaging
<a name="troubleshoot-lex-bots"></a>

In den folgenden Themen wird erklärt, wie Sie häufig auftretende Probleme mit beheben können AppInstanceBots.

## Suchen nach Amazon Lex V2-Fehlern
<a name="find-lex-failures"></a>

Das Amazon Chime SDK übermittelt [ EventBridge Amazon-Ereignisse](https://docs.aws.amazon.com/chime-sdk/latest/dg/event-bridge-alerts.html), wenn ein Fehler verhindert, dass der Amazon Lex V2-Bot aufgerufen werden kann. Weitere Informationen zur Einrichtung von Regeln und zur Konfiguration von Benachrichtigungszielen finden Sie unter [Erste Schritte mit Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) im * EventBridge Amazon-Benutzerhandbuch*.

Wenn Sie EventBridge Ereignisse in AWS CloudWatch Logs erhalten, können Sie AWS CloudWatch Logs Insights verwenden, um EventBridge Ereignisse anhand des Nachrichtendetailtyps des Amazon Chime SDK abzufragen. Das `failureReason` listet die Ursache des Fehlers auf. 

Das folgende Beispiel zeigt eine typische Abfrage.

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

Wenn Amazon Chime SDK Messaging Ihren Amazon Lex V2-Bot aufrufen kann, sendet das SDK `CONTROL` Nachrichten mit einer Fehlermeldung.

## Behebung von Amazon Lex V2-Bot-Berechtigungsfehlern
<a name="lex-permission-errors"></a>

Damit ein AppInstanceBot Amazon Lex V2-Bot aufgerufen werden kann, muss der Amazon Chime SDK-Messaging-Service-Principal über die Berechtigung verfügen, die Amazon Lex V2-Bot-Ressource aufzurufen. Stellen Sie außerdem sicher, dass die Bedingung `AWS:SourceArn` der Ressourcenrichtlinie mit dem ARN von übereinstimmt AppInstanceBot.

Weitere Informationen zur Konfiguration und AppInstanceBot zum Aufrufen eines Amazon Lex V2-Bots finden Sie weiter [Einen Amazon Lex V2-Bot für Amazon Chime SDK-Messaging erstellen](create-lex-bot.md) oben in diesem Abschnitt.

## Fehlerbehebung bei Amazon Lex V2-Bot-Drosselung
<a name="lex-throttling"></a>

Amazon Lex hat ein Servicekontingent für die maximale Anzahl gleichzeitiger Konversationen im Textmodus pro Bot-Alias. Für Kontingenterhöhungen können Sie sich an das Amazon Lex Lex-Serviceteam wenden. Weitere Informationen finden Sie in den [Richtlinien und Kontingenten von Amazon Lex](https://docs.aws.amazon.com/lexv2/latest/dg/quotas.html) im *Amazon Lex Developer Guide*.

# Verwaltung der Nachrichtenspeicherung für Amazon Chime SDK-Messaging
<a name="manage-retention"></a>

Kontoinhaber können das Amazon Chime SDK verwenden APIs , um die Aufbewahrung von Nachrichten zu aktivieren. Nachrichten werden automatisch gelöscht, basierend auf dem vom Administrator festgelegten Zeitraum. Aufbewahrungsfristen können zwischen einem Tag und 15 Jahren liegen. Sie können den auch verwenden APIs , um die Aufbewahrungsfristen für Nachrichten zu aktualisieren oder die Nachrichtenspeicherung jederzeit zu deaktivieren.

**Topics**
+ [Beispiele für CLI-Aufbewahrungsbefehle](#retention-examples)
+ [Nachrichtenspeicherung aktivieren](#enable-retention)
+ [Nachrichten wiederherstellen und löschen](#restore-and-delete)

## Beispiele für CLI-Aufbewahrungsbefehle
<a name="retention-examples"></a>

Die folgenden Beispiele zeigen typische CLI-Befehle für die Aufbewahrung:

**Aktivieren**

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

**Wird aktualisiert**

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

**Deaktivierung**

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

## Nachrichtenspeicherung aktivieren
<a name="enable-retention"></a>

Sie verwenden das Amazon Chime SDK APIs , um die Aufbewahrung von Nachrichten zu aktivieren. Sie können das auch verwenden APIs , um die Aufbewahrungsfristen für Nachrichten zu aktualisieren oder die Nachrichtenspeicherung jederzeit zu deaktivieren. Weitere Informationen zur Konfiguration der Nachrichtenspeicherung finden Sie in der [Amazon Chime SDK API-Referenz.](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/Welcome.html)

## Nachrichten wiederherstellen und löschen
<a name="restore-and-delete"></a>

Sie können Nachrichten für Benutzer innerhalb von 30 Tagen wiederherstellen, nachdem Sie einen Aufbewahrungszeitraum für Nachrichten festgelegt oder aktualisiert haben. Nach Ablauf dieser Frist von 30 Tagen werden jedoch alle Nachrichten, die unter die Aufbewahrungsfrist fallen, dauerhaft gelöscht, und neue Nachrichten werden dauerhaft gelöscht, sobald sie die Aufbewahrungsfrist überschritten haben.

**Anmerkung**  
Wenn Sie während der 30-tägigen Nachfrist die Aufbewahrungsrichtlinie verlängern oder deaktivieren, werden Nachrichten, die den neuen Aufbewahrungszeitraum nicht überschritten haben, wieder für die Benutzer im Konto sichtbar.

Nachrichten werden auch dauerhaft gelöscht, wenn ein Channel oder eine Nachricht `AppInstanceUser` gelöscht wird.

# Benutzeroberflächenkomponenten für Amazon Chime SDK-Messaging
<a name="ui-components"></a>

Sie können eine Komponentenbibliothek verwenden, um den Aufwand für die Erstellung der Benutzeroberfläche für Chat-Messaging zu reduzieren. Weitere Informationen finden Sie in der [Amazon Chime React-Komponentenbibliothek](https://github.com/aws/amazon-chime-sdk-component-library-react) unter GitHub .

# Integrieren von Amazon Chime SDK-Messaging mit Client-Bibliotheken
<a name="integrate-client-library"></a>

Um die Messaging-Funktionen des Amazon Chime SDK nutzen zu können, müssen Sie Ihre Client-Anwendung in die folgenden Client-Bibliotheken integrieren:
+ **AWS SDK** — Enthält APIs das Senden von Nachrichten und das Verwalten von Ressourcen.
+ **Amazon Chime SDK-Clientbibliothek für JavaScript (NPM)** — Eine JavaScript Bibliothek mit TypeScript Typdefinitionen, mit der Sie Ihren Client in den Amazon Chime SDK-Messaging-Web-Socket integrieren können, um Nachrichten zu empfangen.

Um Ihre Client-Anwendung in das Amazon Chime SDK zu integrieren, lesen Sie die Anweisungen in der Client-Bibliothek README.md und lernen Sie anhand der Demos, wie Sie Messaging-Funktionen erstellen können.

# Verwenden von Amazon Chime SDK-Messaging mit JavaScript
<a name="use-javascript"></a>

Sie können JavaScript damit Amazon Chime SDK-Ressourcen verwalten und Nachrichten senden. Weitere Informationen finden Sie im [AWS JavaScript SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Chime.html).

Sie können in Ihrer Client-Anwendung auch eine Messaging-Sitzung einrichten, um Nachrichten aus dem Amazon Chime SDK Messaging zu empfangen. Weitere Informationen finden Sie unter [Verwenden der Amazon Chime SDK-Clientbibliothek für JavaScript ](https://github.com/aws/amazon-chime-sdk-js/blob/master/README.md) on GitHub.