Amazon Simple Queue Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:配置通过到达 Amazon SQS 队列中的消息触发 AWS Lambda 函数

在本教程中,您将学习如何配置现有 Amazon SQS 队列在有新消息达到队列中时触发 AWS Lambda 函数。

利用 Lambda 函数,您可以运行代码而无需预配置或管理服务器。例如,您可以配置 Lambda 函数处理一个队列中的消息,而另一个队列用作 Lambda 函数无法处理的消息的死信队列。在解决问题时,可以通过 Lambda 函数从死信队列重新驱动 消息。有关更多信息,请参阅 Amazon SQS 死信队列AWS Lambda Developer Guide 中的什么是 AWS Lambda?配合使用 AWS Lambda 和 Amazon SQS

注意

您的队列和 Lambda 函数必须位于同一 AWS 区域。

FIFO队列不支持 Lambda 函数触发器。

您只能将一个队列与一个或多个 Lambda 函数关联。

您不能将对 Amazon SQS 使用 AWS 托管客户主密钥的加密队列与不同 AWS 账户中的 Lambda 函数相关联。

先决条件

要使用控制台配置 Lambda 函数触发器,必须确保以下内容:

  • Amazon SQS 角色必须包括以下权限:

    • lambda:CreateEventSourceMapping

    • lambda:ListEventSourceMappings

    • lambda:ListFunction

  • Lambda 角色必须包括以下权限:

    • sqs:ChangeMessageVisibility

    • sqs:DeleteMessage

    • sqs:GetQueueAttributes

    • sqs:ReceiveMessage

有关更多信息,请参阅管理 Amazon Simple Queue Service 资源的访问权限概述

AWS 管理控制台

  1. 登录 Amazon SQS 控制台

  2. 从队列的列表中,选择要用于触发 Lambda 函数的队列。

  3. 队列操作中,选择Configure Trigger for Lambda Function (为 函数配置触发器)

  4. Configure Incoming Messages to Trigger a Lambda Function (配置传入消息以触发 函数) 对话框中,执行以下操作之一:

    • 要使用现有 Lambda 函数,请从列表中选择 Select a Lambda Function (选择 函数)

    • 要在 AWS Lambda 控制台中创建新的 Lambda 函数,请选择新建。有关更多信息,请参阅 AWS Lambda Developer Guide 中的创建简单的 Lambda 函数

  5. 选择 Save

  6. Lambda Function Trigger Configuration Result (Lambda 函数触发器配置结果) 对话框中,检查 Amazon SQS 队列将触发的 Lambda 函数,然后选择确定

    注意

    Lambda 函数大约需要 1 分钟时间与队列关联。

    Lambda 函数及其状态显示在 Lambda Triggers (Lambda 触发器) 选项卡上。

    • 要验证配置的结果,可以向队列发送消息,然后在 Lambda 控制台中查看触发的 Lambda 函数。

    • 要删除 Lambda 函数与队列之间的关联,请选择 Lambda 函数 ARN 旁边的