

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

# 為 Amazon Chime SDK 建置伺服器應用程式
<a name="build-server-app"></a>

下一節中的資訊說明如何建置 Amazon Chime SDK 伺服器應用程式。每個區段都會視需要提供範例程式碼，而且您可以調整該程式碼以符合您的需求。

**Topics**
+ [為 Amazon Chime SDK 建立 IAM 使用者或角色](create-iam-users-roles.md)
+ [設定 AWS SDK 以叫用 Amazon Chime SDK APIs](invoke-apis.md)
+ [為 Amazon Chime SDK 建立會議](create-meeting.md)
+ [為 Amazon Chime SDK 建立出席者](create-attendee.md)
+ [傳送回應給 Amazon Chime SDK 的用戶端](send-response-to-client.md)

# 為 Amazon Chime SDK 建立 IAM 使用者或角色
<a name="create-iam-users-roles"></a>

您可以將使用者建立為 IAM 使用者，或在適合您使用案例的角色中建立使用者。然後，您將下列政策指派給他們。這可確保您對內嵌在伺服器應用程式中的 AWS SDK 擁有必要的許可。反之，這可讓您對會議和出席者資源執行生命週期操作。

```
   // Policy ARN:     arn:aws:iam::aws:policy/AmazonChimeSDK 
    // Description:    Provides access to Amazon Chime SDK operations
    {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "chime:CreateMeeting",
                "chime:DeleteMeeting",
                "chime:GetMeeting",
                "chime:ListMeetings",
                "chime:CreateAttendee",
                "chime:BatchCreateAttendee",
                "chime:DeleteAttendee",
                "chime:GetAttendee",
                "chime:ListAttendees"
            ],
            "Effect": "Allow",
            "Resource": "*"
     }
 ]}
```

# 設定 AWS SDK 以叫用 Amazon Chime SDK APIs
<a name="invoke-apis"></a>

此程式碼範例說明如何將登入資料傳遞至 AWS SDK，並設定區域和端點。

```
    AWS.config.credentials = new AWS.Credentials(accessKeyId, secretAccessKey, null);
    const chime = new AWS.Chime({ region: 'us-east-1' });
    chime.endpoint = new AWS.Endpoint('https://service.chime.aws.amazon.com/console');
```

# 為 Amazon Chime SDK 建立會議
<a name="create-meeting"></a>

[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) API 呼叫接受必要的參數 `ClientRequestToken`，允許開發人員傳遞唯一性內容。它也接受選用參數，例如 `MediaRegion`，代表要為會議選擇的媒體服務資料平面區域、`MeetingHostId`用來傳入不透明識別符以代表會議主持人的 ，如果適用的話，以及`NotificationsConfiguration`用於接收會議生命週期事件的 。根據預設，Amazon EventBridge 會交付事件。或者，您也可以在 中傳遞 SQS 佇列 ARN 或 SNS 主題 ARN 來接收事件`NotificationsConfiguration`。API 傳回包含唯一 的會議物件`MeetingId`，以及具有一組媒體 URLs的 `MediaRegion`和 `MediaPlacement` 物件。

```
   meeting = await chime.createMeeting({
                ClientRequestToken: clientRequestToken,
                MediaRegion: mediaRegion,
                MeetingHostId: meetingHostId,
                NotificationsConfiguration: {
                   SqsQueueArn: sqsQueueArn,
                   SnsTopicArn: snsTopicArn
                }
            }).promise();
```

# 為 Amazon Chime SDK 建立出席者
<a name="create-attendee"></a>

建立會議後，您可以建立出席者資源，代表每個嘗試加入媒體工作階段的使用者。[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateAttendee.html) API 會採取下列動作：
+ 您要新增使用者之`MeetingId`會議的 。
+ `ExternalUserId`，可以是來自您身分系統的任何不透明使用者識別符。

例如，如果您使用 Active Directory (AD)，這可以是 AD 中使用者的物件 ID。`ExternalUserId` 很有價值，因為它會在從用戶端 SDKs 接收出席者事件時傳回給用戶端應用程式。這可讓用戶端應用程式知道誰加入或離開會議，並從伺服器應用程式擷取有關該使用者的其他資訊，例如顯示名稱、電子郵件或圖片。

呼叫 `CreateAttendee` API 會導致 `Attendee` 物件。物件包含由服務`AttendeeId`產生的唯一 、傳入`ExternalUserId`的 ，以及`JoinToken`允許出席者在其持續時間內存取會議的已簽署 ，或直到 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_DeleteAttendee.html) API 刪除出席者為止。

```
       attendee = await chime.createAttendee({
                MeetingId: meeting.MeetingId,
                ExternalUserId: externalUserId,
              }).promise();
```

# 傳送回應給 Amazon Chime SDK 的用戶端
<a name="send-response-to-client"></a>

建立會議和出席者資源後，伺服器應用程式應編碼並將會議和出席者物件傳回用戶端應用程式。用戶端需要這些資訊才能引導適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫，並讓出席者能夠從 Web 或 Electron 型應用程式成功加入會議。