使用会议区域 - Amazon Chime SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用会议区域

Amazon Chime SDK 会议具有控制区域和媒体区域。控制区域提供用于创建、更新和删除会议的 API 终端节点。媒体区域主持实际会议。

通常,您的应用程序服务使用 AWS SDK 对控制区域中的 API 进行签名和调用。您的应用程序客户端使用适用于 JavaScriptiO SAndro id 的 Amazon Chime 软件开发工具包客户端库连接到媒体区域的会议。

控制区域可以在同一 AWS 分区内的任何媒体区域中创建会议。但是,您只能在用于创建会议的控制区域中更新会议。要查找离客户最近的媒体区域,请致电 https://nearest-media-region.l.chime.aw s。

会议控制区域中的会议活动,例如AttendeeJoined通话EventBridge、亚马逊简单队列服务 (SQS) 或亚马逊简单通知服务 (SNS) Simple Notification Service。

有关可用的 Amazon Chime SDK 会议控制和媒体区域的列表,请参阅本指南中的 Amazon Ch SDK ime 服务的可用AWS区域

此图表显示了通过控制区域和媒体区域的典型数据流。

显示通过 Amazon Chime SDK 控制区域和媒体区域的数据流的图表。

选择控制区域

在为 Amazon Chime SDK 会议选择控制区域时,请记住以下因素:

  • 监管要求。您的应用程序是否需要在地缘政治边界内,或者使用带有 FIPS 140-2 验证的加密模块的终端节点?

  • API 延迟。使用离应用程序服务区域最近的控制 AWS 区域可以帮助缩短 API 的网络延迟。反过来,这有助于减少创建会议所需的时间,让用户更快地加入会议。

  • 高可用性。您可以使用多个控制区域来实现高可用性架构。但是,每个控制区域都是独立运行的。而且,您只能在用于创建会议的控制区域中更新会议。此外,您必须使用同一区域使用亚马逊简单队列服务 (SQS) 或亚马逊简单通知服务 (SNS) Simple Notification S ervice 来处理会议活动。 EventBridge

选择媒体区域

注意

我们建议您始终在 CreateMeetingAPI 操作的MediaRegion参数中指定一个值。有关“区域”的更多信息,请参阅 Amazon Ch SDK ime 服务的可用AWS区域

在为您的 Amazon Chime SDK 会议选择媒体区域时,考虑以下常见因素:

监管要求

如果您的 Amazon Chime SDK 会议需要根据法规要求在地缘政治边界内托管,则考虑根据固定的应用程序逻辑对会议区域进行硬编码。

例如,远程医疗应用程序可能需要将所有会议托管在执业医生的管辖范围内。如果应用程序支持位于欧洲和美国的诊所,则您可以通过每家诊所的地址选择其管辖范围内的区域。

会议质量

在媒体区域托管 Amazon Chime SDK 会议时,每个与会者的音频和视频都从该地区发送和接收。随着与会者与区域之间距离的增加,会议质量可能会受到网络延迟的影响。为您的 Amazon Chime SDK 会议指定区域有助于提高与会者的会议质量,无论他们彼此靠近还是分布在不同的地理位置。

您可以使用以下任一方法为 Amazon Chime SDK 会议选择媒体区域:

对媒体区域进行硬编码

如果您的 Amazon Chime 软件开发工具包会议全部在特定 AWS 区域内举办,则建议这样做。

选择最近的媒体区域

如果您的 Amazon Chime SDK 会议与会者位于同一 AWS 区域,但您的会议在不同的区域举办,则建议这样做。

查找最近的媒体区域

要查找能够举办 Amazon Chime SDK 会议的最近媒体区域,请致电 https://nearest-media-region.l.chime.aws。此终端节点返回单个区域,例如 {"region": "us-west-2"}。从您的客户端应用程序中调用 URL 来标识离用户最近的区域,然后使用 CreateMeetingAPI MediaRegion 参数中的结果在该区域创建会议。

通常在客户端应用程序启动或其网络连接更改时调用 URL。通过预先确定最近的区域,可以避免在创建会议时增加调用的延迟。

寻找最近的 AWS GovCloud (美国)媒体区域

要查找可以举办 Amazon Chime SDK 会议的最近 AWS GovCloud (美国)地区,请致电 https://nearest-us-gov-media-region.l.chime.aws。此终端节点返回最近区域,例如 {"region": "us-gov-west-1"}。从您的客户端应用程序中调用 URL 以确定最接近用户的 AWS GovCloud (美国),然后使用 CreateMeetingAPI MediaRegion 参数中的结果在该区域创建会议。

通常在客户端应用程序启动或其网络连接更改时调用 URL。通过预先确定最近的区域,可以避免在创建会议时增加调用的延迟。

JavaScript 示例

以下示例使用 HTML 和 JavaScript 返回最近的媒体区域和 AWS GovCloud (美国)媒体区域。

<html> <head> <title>Amazon Chime SDK - Nearest Media Region</title> <script> async function getNearestMediaRegion(partition) { console.log('Nearest media region partition: ' + partition); const url = ('aws-us-gov' == partition) ? 'https://nearest-us-gov-media-region.l.chime.aws' : 'https://nearest-media-region.l.chime.aws'; let result = ('aws-us-gov' == partition) ? 'us-gov-west-1' : 'us-west-2'; try { //Find the nearest media region console.log('Nearest media region URL: ' + url); const response = await fetch(url, {method: 'GET'} ); const body = await response.json(); result = body.region; } catch (error) { console.log(error.message); } finally { console.log('Nearest media region found: ' + result); return result; } } async function findRegions(partition) { aws.innerText = await getNearestMediaRegion(); awsusgov.innerText = await getNearestMediaRegion('aws-us-gov'); } </script> </head> <body> <h3>Nearest media region, by AWS partition</h3> <table> <tr><th>Partition</th><th>Media Region</th></tr> <tr><td>aws</td><td id="aws">Finding...</td></tr> <tr><td>aws-us-gov</td><td id="awsusgov">Finding...</td></tr> </table> <script> findRegions(); </script> </body> </html>

检查区域状态

登录 https://region.status.chime.aws/ 检索每个区域中 Amazon Chime SDK 服务的运行状况。结果显示推荐区域。如果媒体区域的状态不是推荐,则最近的媒体区域终端节点将不会返回该区域。

以下示例显示典型结果。

{ "MeetingsControlRegions": { "us-east-1": "recommended", "us-west-2": "recommended", "ap-southeast-1": "recommended", "eu-central-1": "recommended" }, "MeetingsMediaRegions": { "af-south-1": "recommended", "ap-northeast-1": "recommended", "ap-northeast-2": "recommended", "ap-south-1": "recommended", "ap-southeast-1": "recommended", "ap-southeast-2": "recommended", "ca-central-1": "recommended", "eu-central-1": "recommended", "eu-north-1": "recommended", "eu-south-1": "recommended", "eu-west-1": "recommended", "eu-west-2": "recommended", "eu-west-3": "recommended", "sa-east-1": "recommended", "us-east-1": "recommended", "us-east-2": "recommended", "us-west-1": "recommended", "us-west-2": "recommended" }, "MediaPipelineControlRegions": { "ap-southeast-1": "recommended", "eu-central-1": "recommended", "us-east-1": "recommended", "us-west-2": "recommended" }, "MediaPipelineDataRegions": { "af-south-1": "recommended", "ap-northeast-1": "recommended", "ap-northeast-2": "recommended", "ap-south-1": "recommended", "ap-southeast-1": "recommended", "ap-southeast-2": "recommended", "ca-central-1": "recommended", "eu-central-1": "recommended", "eu-north-1": "recommended", "eu-south-1": "recommended", "eu-west-1": "recommended", "eu-west-2": "recommended", "eu-west-3": "recommended", "sa-east-1": "recommended", "us-east-1": "recommended", "us-east-2": "recommended", "us-west-1": "recommended", "us-west-2": "recommended" } }