

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

# 從後端服務對 Amazon Chime SDK 訊息進行 SDK 呼叫
<a name="call-from-backend"></a>

建立使用者以代表您的後端服務後，您可以建立頻道、傳送訊息至該頻道，以及從該頻道讀取訊息。

執行下列 CLI 命令來建立公有頻道。

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

命令會產生此格式的 ARN： `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [IAM 授權如何用於後端服務](#how-iam-works)
+ [了解隱含 API 授權](#api-implicit-auth)
+ [傳送和列出頻道訊息](#send-list-msgs)

## IAM 授權如何用於後端服務
<a name="how-iam-works"></a>

在上一節的 CLI 命令中，記下 `chime-bearer` 參數。它可識別建立或與管道和訊息等資源互動的使用者。幾乎所有 Amazon Chime SDK 訊息 APIs都採用 `chime-bearer` 參數，但 APIs API 只能由開發人員呼叫，例如 `CreateAppInstance`。

Amazon Chime SDK 訊息 APIs 的 IAM 許可需要`app-instance-user-arn `符合 `chime-bearer` 參數的 。根據 API，可能需要其他 ARNs，通常是頻道 ARNs。對於如上述範例的後端服務，這會導致類似下列範例的 IAM 政策：

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

------

請注意 `Resource`區段中的 `AppInstanceUser` ARN 和頻道 ARN。此 IAM 政策範例授予後端服務許可，以 ID 為「back-end-worker」的使用者身分進行 API 呼叫。如果您希望後端服務能夠呼叫使用您應用程式的人員，請將 變更為 `app_instance_user_arn` `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`。

## 了解隱含 API 授權
<a name="api-implicit-auth"></a>

除了 IAM 政策之外，Amazon Chime SDK 訊息 APIs 還具有隱含許可。例如， `AppInstanceUser`只能在使用者所屬的頻道中傳送訊息或列出頻道成員資格。其中一個例外是提升為 `AppInstanceUser`的 `AppInstanceAdmin`。根據預設，管理員具有應用程式中所有頻道的許可。對於大多數使用案例，對於包含重要商業邏輯的後端服務，您只需要此項目。

下列 CLI 命令會將後端使用者提升為 管理員。

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

## 傳送和列出頻道訊息
<a name="send-list-msgs"></a>

下列 CLI 命令會傳送頻道訊息。

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

下列 CLI 命令會依反向時間順序列出頻道訊息。
+ `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"
```