要从 Canvas 接收数据,您需要在 Amazon Web Services 中设置并维护一个队列。此外,您还需要授予该队列接收数据所需的相应权限。
设置好具有适当权限的队列后,您就可以在数据服务中订阅事件并开始接收数据。
笔记:
- 目前不支持先进先出(FIFO)队列。
- 设置 SQS 队列时,您可以为标准队列启用长轮询。长轮询有助于减少空响应和误报空响应的数量。有关长轮询的更多信息,请参阅Amazon SQS 长轮询文档。
- 数据服务和实时活动仅在生产环境和测试环境中可用。
打开 Amazon SQS 控制台
在 Amazon Web Services 控制台中,通过在“服务”字段中键入名称来打开 Simple Queue Service (SQS) 控制台 [1]。当 Simple Queue Service 显示在列表中时,单击该名称 [2]。
创建新队列
在 Amazon SQS 控制台中,单击“创建队列”按钮。
选择标准队列
在“类型”部分,选择“标准”选项。
注意:目前不支持先进先出队列。
输入队列名称
请输入队列名称。队列名称必须以canvas-live-events开头。
输入配置详情
输入配置详情。您可以输入可见性超时[1]、传递延迟[2]、接收消息等待时间[3]、消息保留期[4]和最大消息大小[5]的偏好设置。
输入访问策略详细信息
请输入您的访问控制策略的详细信息。
在“选择方法”部分,选择“基本”选项[1]。
在“定义谁可以向队列发送消息”部分,选择“仅限指定的 AWS 账户、IAM 用户和角色”选项 [2]。
在账户 ID 字段中,输入账号636161780776 [3]。队列接收实时事件数据需要此账号。
您还可以在“定义谁可以接收消息”部分 [4] 中选择谁将接收消息。
保存队列
您可以在加密设置[1]、死信队列设置[2]和标签设置[3]中添加更多详细信息。所有这些设置都是可选的。
要创建队列,请点击创建队列按钮[4]。
查看队列权限
在队列详情区域,“权限”选项卡中将显示该权限。
要编辑权限,请点击编辑图标[1]。要删除权限,请点击删除图标[2]。
使用 SSE 设置 SQS(可选)
Canvas Live Events 服务支持在 SQS 上启用 SSE,要使用 SSE,需要在客户的 SQS 上启用以下设置:
1. 使用此策略创建 CMK 或自定义密钥,可以通过按照创建 CMK 的步骤生成,并在步骤 4(定义密钥使用权限)期间,单击“添加另一个 AWS 账户”并输入 Instructure 账户号636161780776 。
{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn of the customer account root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn of admin user"
},
"Action": [
"kms:Create*",
"kms:Describe*",
"kms:Enable*",
"kms:List*",
"kms:Put*",
"kms:Update*",
"kms:Revoke*",
"kms:Disable*",
"kms:Get*",
"kms:Delete*",
"kms:TagResource",
"kms:UntagResource",
"kms:ScheduleKeyDeletion",
"kms:CancelKeyDeletion"
],
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn of admin user",
"arn:aws:iam::636161780776:root" // instructure account
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Sid": "Allow attachment of persistent resources",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn of admin user",
"arn:aws:iam::636161780776:root" // instructure account
]
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}??????????????????????????????????????????????????????????????????????????????2. 创建一个 SQS 队列,并启用 SSE。提供新创建的 CMK 的 ARN。
3. 创建一个新的 IAM 策略,授予对队列和密钥的访问权限,该策略需要与以下内容完全一致:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "CMK arn"
}, {
"Effect": "Allow",
"Action": [
"sqs:SendMessage",
"sqs:SendMessageBatch"
],
"Resource": "queue arn"
}]???????????????????????????????????????????????????4. 创建一个新的 IAM 用户并附加上述策略。保存访问密钥和私钥,并在订阅过程中将其提供给我们。