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

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

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

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

注意

您的队列和 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. Queue Actions (队列操作) 中,选择Configure Trigger for Lambda Function (为 Lambda 函数配置触发器)

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

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

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

  5. 选择 Save (保存)

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

    注意

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

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

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

    • 要删除 Lambda 函数与您队列之间的关联,请选择 (位于 Lambda 函数 ARN 旁边)。