我该如何在 Amazon Web 服务中创建 SQS 队列以从 Canvas 接收实时事件数据?

要从 Canvas 接收数据,您需要在 Amazon Web 服务中设置和维护队列。此外,您还需要授予队列接收数据的适当权限。

在设置具有适当权限的队列后,您可以在 Data Services 中订阅事件并开始接收数据。

注意

  • 目前不支持 FIFO 队列。
  • 设置 SQS 队列时,您可以在标准队列中启用长轮询。长轮询有助于消除空响应和假空响应的数量。有关长轮询的更多信息,请参阅 Amazon SQS 长轮询文档

打开 Amazon SQS 控制台

在 Amazon Web 服务控制台中,在服务 (Services) 字段中键入名称打开简单队列服务 (SQS) 控制台 [1]。当“简单队列服务”显示在列表中时,点击名称 [2]。

创建新队列

创建新队列

在 Amazon SQS 控制台中,点击创建队列 (Create queue) 按钮。

选择标准队列

选择标准队列

在“类型”区域中,选择标准 (Standard) 选项。

注意:目前不支持 FIFO 队列。

输入队列名称

输入队列名称

输入队列名称。队列名称必须以 canvas 实时事件开头。

输入配置详细信息

输入配置详细信息

输入配置详细信息。您可以输入可见性超时 [1]、传送延迟 [2]、接收消息等待时间 [3]、消息保留期 [4] 和最大消息大小 [5] 的首选项。

输入访问策略详细信息

输入权限详细信息

输入访问策略的详细信息。

在“选择方法”区域中,选择基础 (Basic) 选项 [1]。

在“定义谁可以向队列发送消息” 部分,选择仅指定的 AWS 帐户、IAM 用户和角色 (Only the specified AWS accounts, IAM users and roles) 选项 [2]。

在帐户 ID 字段中,输入帐号 636161780776 [3]。此帐号是队列接收实时事件数据所必需的。

您也可以在定义谁可以从队列接收消息 (Define who can receive messages from the queue) 部分选择谁将接收消息 [4]。

保存队列

保存队列

您可以在加密 (Encryption) 设置 [1]、死信队列 (Dead-letter queue) 设置 [2] 和标记 (Tags) 设置中添加其他详细信息 [3]。所有这些设置都是可选的。

要创建队列,请点击创建队列 (Create queue) 按钮 [4]。

查看队列权限

查看队列权限

在队列详细信息区域中,权限将显示在“权限”选项卡中。

要编辑权限,请点击编辑 (Edit) 图标 [1]。要删除权限,请点击删除 (Delete) 图标 [2]。

将 SSE 设置与您的 SQS 一起使用(可选)

Canvas 实时事件服务支持在 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 用户并附加上述策略。保存访问密钥和密钥,并将其作为订阅的一部分提供给我们。