本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置队列以触发Amazon Lambda函数(控制台)
您可以使用Amazon Lambda函数处理 Amazon SQS 队列中的消息。Lambda 轮询队列并同步调用您的 Lambda 函数,其中有包含队列消息的事件。您可以指定另一个队列充当死信队列用于 Lambda 函数无法处理的消息。
一个 Lambda 函数可以处理来自多个队列的项(每个队列使用一个 Lambda 事件源)。您可以将同一队列用于多个 Lambda 函数。
如果您将加密队列与 Lambda 函数关联但 Lambda 没有轮询消息,请添加kms:Decrypt授予 Lambda 执行角色的权限。
注意以下限制:
您的队列和 Lambda 函数必须位于同一位置Amazon区域。
有关实施 Lambda 函数的信息,请参阅使用Amazon Lambda使用 Amazon SQS中的Amazon Lambda开发人员指南.
先决条件
要配置 Lambda 函数触发器,您必须满足以下要求:
-
如果您使用 IAM 用户,Amazon SQS 角色必须包括以下权限:
-
lambda:CreateEventSourceMapping -
lambda:ListEventSourceMappings -
lambda:ListFunctions
-
-
Lambda 执行角色必须包括以下权限:
-
sqs:DeleteMessage -
sqs:GetQueueAttributes -
sqs:ReceiveMessage
-
-
如果您将加密队列与 Lambda 函数关联,请添加
kms:Decrypt对 Lambda 执行角色的权限。
有关更多信息,请参阅 管理 Amazon SQS 中的权限概述。
要配置队列以触发 Lambda 函数(控制台)
在打开 Amazon SQS 控制台https://console.aws.amazon.com/sqs/
. -
在导航窗格中,选择 Queues (队列)。
-
在存储库的队列页面中,选择要配置的队列。
-
在队列页面上,选择Lambda 触发器选项卡。
-
在存储库的Lambda 触发器页面中,选择 Lambda 触发器。
如果列表中不包含您需要的 Lambda 触发器,请选择配置 Lambda 函数触发器. 输入 Lambda 函数的 Amazon 资源名称 (ARN) 或选择现有资源。然后选择 Save (保存)。
-
选择保存。控制台保存配置并显示详细信息该队列的页面。
在存储库的详细信息页面,Lambda 触发器选项卡显示 Lambda 函数及其状态。Lambda 函数大约需要 1 分钟时间与队列关联。
-
要验证配置的结果,向队列发送消息然后在 Lambda 控制台查看触发的 Lambda 函数。