

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用彈性管道在 Amazon Chime SDK 會議中託管即時事件
<a name="elastic-channels"></a>

彈性管道支援最多 100 萬名成員的大規模聊天體驗。典型用途包括觀看體育賽事或政治賽事。您只能在美國東部 （維吉尼亞北部） 區域使用彈性頻道。

彈性頻道包含具有常見組態的單一頻道，以及不同或*彈性*的子頻道數量。組態也包含子頻道中成員的最小和最大閾值。

例如，假設您建立具有 100 個子頻道的彈性頻道，而對於子頻道，您設定了 500 個成員的低閾值和 10，000 個成員的高閾值。當使用者加入此範例頻道時，系統會自動將其指派給單一子頻道，直到成員計數超過 10，000。此時，系統會建立新的子通道，並在該處新增任何新成員。當使用者離開時，系統會刪除子通道，並將成員分配到剩餘的子通道。

跨子頻道分割受眾可讓參與者更輕鬆地進行對話。主持人也減少了工作負載，因為他們只需要監看一些子頻道。此外，主持人可以使用彈性頻道提供的內建工具。例如，主持人可以從頻道[中禁止使用者](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html)、[建立主持人](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html)，並使用[頻道流程](https://docs.aws.amazon.com/chime-sdk/latest/dg/using-channel-flows.html)自動調節頻道中的所有訊息。

如需 Amazon Chime SDK 訊息配額的詳細資訊，請參閱《*Amazon Chime SDK 一般參考*》中的 [Messaging Quotas](https://docs.aws.amazon.com/general/latest/gr/chime-sdk.html)。

**Topics**
+ [先決條件](#elastic-prereqs)
+ [彈性管道概念](#elastic-concepts)
+ [其他支援的功能](#additional-features)
+ [為 Amazon Chime SDK 會議建立彈性管道](create-elastic-channel.md)
+ [管理 Amazon Chime SDK 會議的彈性管道成員](manage-elastic-members.md)
+ [在 Amazon Chime SDK 會議中傳送彈性管道訊息](send-messages-elastic.md)
+ [了解 Amazon Chime SDK 會議彈性管道中的 WebSocket 系統訊息](websocket-messages-elastic.md)
+ [使用 Kinesis 串流接收 Amazon Chime SDK 會議的系統訊息](elastic-onboard-streams.md)
+ [在我們的示範應用程式中測試 Amazon Chime SDK 會議的彈性管道](elastic-testing.md)

## 先決條件
<a name="elastic-prereqs"></a>

您必須具有下列項目才能使用彈性頻道。
+ 了解 Amazon Chime SDK 傳訊功能，例如管理頻道，以及傳送和接收訊息。
+ 調用 Amazon Chime SDK 訊息 APIs的功能。

## 彈性管道概念
<a name="elastic-concepts"></a>

若要有效使用彈性管道，您必須了解這些概念。

**子頻道**  
彈性頻道會將成員分成稱為子頻道的邏輯容器。當您將 `AppInstanceUser`新增至彈性頻道時，使用者會成為子頻道的成員。該使用者可以傳送和接收訊息，但只能與該子頻道的其他成員一起傳送和接收訊息。系統絕不允許來自一個子頻道的訊息出現在其他子頻道中。

**擴展**  
若要支援使用者參與，每個子頻道都必須符合最低成員資格要求。您在建立彈性頻道時提供該值。當使用者加入或離開事件時，系統會將成員轉移到不同的子頻道，讓整體頻道變成「彈性」。子通道會執行下列擴展動作。  
+ **SCALE\$1OUT** – 當新的彈性通道成員資格請求進入且所有子通道都已滿時，系統會透過建立新的子通道，然後將成員資格從現有子通道轉移到新的子通道來向外擴展。
+ **SCALE\$1IN** – 當子通道成員資格計數低於最低需求，且另一個子通道具有容納第一個子通道所有成員的容量時，`SCALE_IN`事件會轉移這些成員資格，然後刪除子通道和所有訊息。
如果您需要從已刪除的頻道存取訊息，您必須先開啟訊息串流。如需詳細資訊，請參閱 [在 Amazon Chime SDK 訊息中串流訊息資料](streaming-export.md)。

**成員轉移**  
當成員資格平衡`AppInstanceUser`將 從一個子通道移動 到另一個子通道時，就會發生這種情況。轉移後， `AppInstanceUser`仍屬於彈性頻道。不過，新的子頻道包含不同的成員資格和訊息，因此 傳輸`AppInstanceUser`後傳送的訊息會傳送至這些不同的成員。成員資格平衡不會影響主持人成員資格。

**注意**  
 彈性管道不支援隱藏的成員資格、成員資格偏好設定和讀取訊息時間戳記。

## 其他支援的功能
<a name="additional-features"></a>

彈性管道也支援這些傳訊功能。
+ [預先擷取](websockets.md#prefetch)
+ [頻道流程](using-channel-flows.md)

# 為 Amazon Chime SDK 會議建立彈性管道
<a name="create-elastic-channel"></a>

您可以使用 [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 中的 `ElasticChannelConfiguration` 欄位來建立彈性頻道。建立彈性頻道後，即可建立頻道成員資格。

**注意**  
對於非彈性頻道，建立頻道`AppInstanceUser`的 會自動以成員和主持人身分新增至該頻道。對於彈性頻道，頻道建立者只會新增為主持人。
您無法更新`ElasticChannelConfiguration`一次設定。
您無法將頻道從彈性更新為非彈性，反之亦然。
您無法在 [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 請求中包含成員 ARNs的清單。不過，您可以包含主持人 ARNs的清單。
您無法建立`UNRESTRICTED`類型彈性頻道。

# 管理 Amazon Chime SDK 會議的彈性管道成員
<a name="manage-elastic-members"></a>

若要管理彈性頻道中的成員，請使用 [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)、 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelModerator.html)和 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_messaging-chime_CreateChannelBan.html) APIs。以下資訊說明如何使用它們。

**頻道成員資格**  
`CreateChannelMembership` API 會在子頻道層級建立成員資格。子頻道可以包含主持人和一般成員。  
+ **主持人** – 您可以將主持人新增至多個子頻道。這可讓主持人在其所屬的每個子頻道上傳送訊息。當您將主持人新增至子頻道時，您必須提供 `SubChannelId`。

  如果您想要自動將主持人指派給新的子頻道，您可以[啟用訊息串流](streaming-export.md)、接聽子頻道建立事件，然後建立主持人成員資格以回應這些事件。

  最後，您可以從特定子頻道或所有子頻道刪除主持人。在這兩種情況下，您都使用 [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。若要從特定子頻道刪除主持人，請提供 `SubChannelId`。如果您未提供子頻道的 ID，系統會從所有子頻道中移除主持人。最後，您可以使用 [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 列出每個子頻道中的成員數量。
+ **一般成員** – 這些構成大部分的頻道成員資格。您只能將一般成員新增至一個子頻道。此外，您無法在建立或刪除頻道成員資格`SubChannelId`時傳遞 ，因為系統控制在哪個子頻道中建立成員資格。

**頻道主持人**  
`CreateChannelModerator` API 會在彈性頻道層級建立主持人。主持人可以檢視所有子頻道中的所有訊息。當您將一般成員提升為頻道主持人時，系統會移除該成員的所有現有頻道成員資格。當您降級主持人時，也會發生相同情況。

**頻道禁止**  
`CreateChannelBan` API 會在彈性頻道層級建立禁止。禁止的 `AppInstanceUser` 不能屬於任何子頻道。當您禁止成員時，系統會移除該成員的所有頻道成員資格。

# 在 Amazon Chime SDK 會議中傳送彈性管道訊息
<a name="send-messages-elastic"></a>

[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 會在子通道層級建立訊息。若要傳送訊息，您必須擁有 `subChannelId`。您也可以使用 [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)、 和 [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) API 來編輯和刪除訊息，但在所有情況下，您必須擁有 `subChannelId`。 APIs 

**注意**  
訊息寄件者只有在屬於傳送訊息的子通道時，才能編輯或修訂訊息。如果成員平衡將成員轉移到另一個子通道，則該成員只能編輯或修改他們在新子通道中傳送的訊息。

# 了解 Amazon Chime SDK 會議彈性管道中的 WebSocket 系統訊息
<a name="websocket-messages-elastic"></a>

Amazon Chime SDK 會針對在頻道中發生的事件，將系統訊息傳送至所有連線的用戶端。下列清單說明彈性頻道的系統訊息。

**訊息事件**  
彈性頻道的事件承載包含 `subChannelId` 欄位。非彈性頻道的承載保持不變。

**成員事件**  
`CREATE_CHANNEL_MEMBERSHIP` 和 `DELETE_CHANNEL_MEMBERSHIP`事件現在在其承載中具有 `subChannelId` 欄位。  
彈性頻道不支援 `BATCH_CREATE_CHANNEL_MEMBERHSIP`事件。當您呼叫 [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 時，系統會傳送個別`CREATE_CHANNEL_MEMBERSHIP`事件。  
您現在可以使用 `UPDATE_CHANNEL_MEMBERSHIP` 事件類型來表示成員資格資訊中的變更。例如，在成員從一個子通道轉移到另一個子通道期間，系統會傳送承載`SubChannelId`中具有新 `UPDATE_CHANNEL_MEMBERSHIP`的事件，以指出成員已轉移。  
系統只會將`UPDATE_CHANNEL_MEMBERSHIP`事件傳送給已傳輸的成員，而不是子通道的其他成員。因此，我們建議您使用 [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 而非 WebSockets 來填入您的頻道成員資格名單。如需詳細資訊，請參閱 [使用 WebSockets Amazon Chime SDK 訊息中接收訊息](websockets.md)。

# 使用 Kinesis 串流接收 Amazon Chime SDK 會議的系統訊息
<a name="elastic-onboard-streams"></a>

您可以設定 `AppInstance` 來接收串流形式的資料。例如，串流可以包含訊息、子頻道事件和頻道事件。

為此，我們支援 `CREATE_SUB_CHANNEL`和 `DELETE_SUB_CHANNEL`事件。它們表示在成員資格平衡過程中建立或刪除子頻道的時間。如需接收資料串流的詳細資訊，請參閱 [在 Amazon Chime SDK 訊息中串流訊息資料](streaming-export.md)。

# 在我們的示範應用程式中測試 Amazon Chime SDK 會議的彈性管道
<a name="elastic-testing"></a>

您可以在 GitHub 上測試所有 Amazon Chime SDK 傳訊功能，網址為 https：//[https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat)。