Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
我将我的 AWS Lambda 函数配置为处理 Amazon Simple Queue Service (Amazon SQS) 队列中的消息,但是 SQS 触发器未激活。
您可以使用 Lambda 函数处理 Amazon SQS 队列中的消息。事件源映射从某个事件源读取数据,然后调用 Lambda 函数。事件源映射的状态为:创建中、启用中、已启用、禁用中、已禁用、更新中或删除中。
Lambda 轮询者持续不断地向 Amazon SQS 队列发出 ReceiveMessage API 操作调用。如果 ReceiveMessage API 调用未完成,则 EventSourceMapping 资源将被禁用。
确保您的 Lambda 函数执行角色拥有以下权限:
如果 Amazon SQS 队列配置了 SSE-KMS 加密,请确保:
**请注意:**采用 SSE-KMS 加密的 Amazon SQS 队列无法调用其他 AWS 账户中的 Lambda 函数 (cross-account)。
您可以使用 AWS CloudTrail 来查找事件。默认情况下,您的 AWS 账户的 CloudTrail 处于启用状态。
要持续记录您的 AWS 账户中的事件,请创建一个追踪记录。CloudTrail 使用追踪记录创建日志,记录您账户发出的 API 调用。这些日志将传输到您指定的 Amazon Simple Storage Service (Amazon S3) 桶。如果您未配置追踪记录,您仍然可以在 CloudTrail 控制台的事件历史记录中查看最新的事件。
1.打开 CloudTrail 控制台。
2.在导航窗格中,选择事件历史记录。
3.针对您的应用案例,按照说明查看、显示和筛选 CloudTrail 事件。
您也可以将记录的事件历史记录下载为 CSV 或 JSON 格式的文件。
查看 CloudTrail 事件名称 LambdaESMDisabled事件日志包含参数 ESMDisableReason,其中包含有关 Amazon SQS 触发器未激活原因的更多信息。
有关更多信息,请参阅使用 CloudTrail 记录 Lambda API 调用。
您可以为 Amazon SQS 指标创建 CloudWatch 警报,以获取已接收、已发送、已删除等消息的数量的通知。例如,您可以使用 Amazon SQS 指标 NumberOfMessagesReceived 来获取最近返回的消息数量。如果数量为 0,则调用一个新的 Lambda 函数来检查 Amazon SQS 触发器的状态。如果 Amazon SQS 触发器仍处于禁用状态,则使用新的 Lambda 函数将其激活。
有关更多信息,请参阅可用于 Amazon SQS 的 CloudWatch 指标。
我需要什么权限才能访问 Amazon SQS 队列?
如何解决 Lambda 函数失败的问题?