教程:向 Amazon SQS 队列授予 SP-API 权限
了解如何向 Amazon SQS 队列授予权限,以便销售合作伙伴 API 可以向您的队列发布通知。
要通过亚马逊简单队列服务 (亚马逊 SQS) 接收来自卖家合作伙伴 API (SP-API) 的通知,您必须授予 SP-API 写入您的亚马逊 SQS 队列的权限。
本教程介绍如何通过两种方式完成此任务:使用 AWS CloudFormation 模板或使用亚马逊 SQS 控制台手动完成此任务。
教程:使用 AWS CloudFormation 模板向 Amazon SQS 队列授予 SP-API 权限
以下教程介绍如何使用 AWS CloudFormation 模板向您的亚马逊 SQS 队列授予权限。AWS CloudFormation 模板自动创建和配置亚马逊 SQS 队列。
第 1 步。复制 AWS CloudFormation 模板
将以下 YAML 代码复制到文件中。
AWSTemplateFormatVersion 2010-09-09
Description -
AWS CloudFormation Template to create a new SQS queue used to receive notifications from Notifications API.
Parameters
DestinationQueueName
Type String
Description The name of the SQS queue to be created.
Resources
DestinationQueue
Type'AWS::SQS::Queue'
Properties
QueueName !Ref DestinationQueueName
DestinationQueuePolicy
Type'AWS::SQS::QueuePolicy'
Properties
Queues
!Ref DestinationQueue
PolicyDocument
Version 2012-10-17
Statement
Sid AllowSPAPIAccess
Effect Allow
Principal
AWS'437568002678'
Action
'sqs:GetQueueAttributes'
'sqs:SendMessage'
Resource !GetAtt
DestinationQueue
Arn
第 2 步。登录 AWS CloudFormation 控制台
第 3 步。指定 AWS CloudFormation 模板
要指定 AWS CloudFormation 模板,请执行以下步骤:
-
在 AWS 云端控制台,选择 Create stack,然后选择 With new resources (standard)。
-
在 Create stack 页面,下方 Specify template,选择 Upload a template file,然后选择您在本过程开始时复制的模板。
-
选择 Next。
第 4 步。输入堆栈的名称
对于 Provide a stack name,根据您上传的 AWS CloudFormation 模板输入要创建的堆栈的名称。
第 5 步。输入目标 Amazon SQS 队列的名称
对于 DestinationQueueName,输入 Amazon SQS 队列的名称,然后选择 Next。
第 6 步。配置堆栈选项
要配置堆栈选项,请执行以下步骤:
-
在 Configure stack options 页面,保留默认设置,然后选择 Next。
-
查看配置,然后选择 Submit。
-
等待堆栈成功创建。
在以下情况下成功创建堆栈 Stacks 详情页面,堆栈的状态为 CREATE_COMPLETE。
第 7 步。获取 Amazon SQS 队列的 ARN
采取以下步骤获取您创建的亚马逊 SQS 队列的亚马逊资源名称 (ARN)。
-
前往 亚马逊 SQS 控制台。
你应该在列表中看到你的新队列。
-
选择队列。
-
在下面 ARN,复制队列的亚马逊资源名称 (ARN)。
在 第 2 步 的 教程:设置通知(亚马逊简单队列服务工作流程),你将 ARN 传递给
createDestination
通过使用arn
参数。
教程:使用 Amazon SQS 控制台向 Amazon SQS 队列授予 SP-API 权限
以下教程介绍如何通过在 Amazon SQS 控制台中手动配置权限来向您的 Amazon SQS 队列授予权限。
第 1 步。登录亚马逊 SQS 控制台
登录 亚马逊 SQS 控制台。
Step 2. Select the Amazon SQS queue
选择要在其中接收通知的标准队列。
第 3 步。打开策略编辑页面
要设置权限,请执行以下步骤:
-
选择 Queue Policies 选项卡。
-
来自 Access policy (Permissions) 部分,选择 Edit。
这个 Edit Queue 页面打开。
第 4 步。编辑队列策略
要编辑策略,请执行以下步骤:
-
向下滚动至 Access policy 部分,然后选择 Policy generator 链接。
AWS 策略生成器将在新选项卡中打开。
-
在策略生成器的步骤 1 中,选择 SQS Queue Policy。
-
在策略生成器的步骤 2 中,选择以下值,然后选择 Add Statement:
- 将 Effect 设置为 Allow。
- 将 Principal 设置为
437568002678
。 - 将 Actions 设置为
SendMessage
和GetQueueAttributes
。 - 在中输入 SQS ARN 值 Amazon Resource Name (ARN)。
- 选择 Add Statement 并验证详细信息。
-
在策略生成器的第 3 步中,选择 Generate Policy。
将打开一个包含新策略的对话框。
第 5 步。复制并粘贴政策
采取以下步骤:
-
来自 Policy JSON Document 对话框中,复制策略,然后选择 Close。
-
在浏览器中,导航回亚马逊 SQS 队列,打开 Access policy 选项卡,然后将策略粘贴到 Access Policy (Permissions) 部分。
-
选择 Save。
第 6 步。注意 ARN
引用队列的 Details 部分并记下此队列的 ARN。当您在步骤 2. 创建一个目标位置中调用 createDestination
操作时,您将使用 arn
参数传递此值。
第 7 步。获取 Amazon SQS 队列的 ARN
在队列详细信息页面中,在 ARN,复制队列的亚马逊资源名称 (ARN)。
在 第 2 步 的 教程:设置通知(亚马逊简单队列服务工作流程),你将 ARN 传递给 createDestination
通过使用 arn
参数。
结论
在这些教程中,您学习了如何通过两种方式向您的亚马逊 SQS 队列授予 SP-API 权限:使用 AWS CloudFormation 模板或使用亚马逊 SQS 控制台。授予权限后,请参阅 教程:设置通知(亚马逊简单队列服务工作流程) 了解如何调用销售合作伙伴 API 向您的队列发送通知。
Updated 4 months ago