本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建代表后端服务的用户后,您就可以创建一个频道,向该频道发送消息,并从该频道读取消息。
运行以下 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
.
后端服务的 IAM 授权是如何运作的
在上一节的 CLI 命令中,记下该 chime-bearer
参数。它识别创建频道和消息等资源或与之交互的用户。几乎所有 Amazon Chime SDK 消息 APIs 都以参数chime-bearer
为参数 APIs ,但只能由开发者调用,例如。CreateAppInstance
Amazon Chime 软件开发工具包消息的 IAM 权限 APIs 需要与app-instance-user-arn
参数匹配的。chime-bearer
根据 API, ARNs可能需要额外的 ARNs(通常是渠道)。对于像上面示例这样的后端服务,这会导致 IAM 策略,如下例所示:
{
"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:region
:aws_account_id
:app-instance/app_instance_id
/user/back-end-worker",
"arn:aws:chime:region
:aws_account_id
:app-instance/app_instance_id
/channel/*"
]
}
记下 Resource
章节中的 AppInstanceUser
ARN 和频道 ARN。此 IAM 策略示例向后端服务授予以 ID 为 “” 的用户身份进行 API 调用的权限back-end-worker。 如果您希望后端服务能够为使用您的应用程序的用户拨打电话,请将更改app_instance_user_arn
为arn:aws:chime:
。region
:aws_account_id
:app-instance/app_instance_id
/user/*
了解隐式 API 授权
除了 IAM 策略外,Amazon Chime 软件开发工具包消息还 APIs 具有隐式权限。例如,AppInstanceUser
只能发送消息或列出用户所属频道的频道成员资格。其中一个例外情况是提升为 AppInstanceAdmin
的 AppInstanceUser
。默认情况下,管理员有权访问应用程序中的所有频道。对于大多数用例,只有包含重要业务逻辑的后端服务才需要此功能。
以下 CLI 命令将后端用户提升为管理员。
aws chime-sdk-identity create-app-instance-admin \ --app-instance-admin-arn "
app_instance_user_arn
" \ --app-instance-arn "app_instance_arn
"
发送和列出频道消息
以下 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
"