amazon-web-services - Trigger AWS Lambda once SQS fifo queue is not empty
问题描述
I got an SQS FIFO queue, I want to know if there is a way to trigger an AWS lambda once the queue is not empty. For example, if my queue is empty and a new message enters trigger lambda, but if the queue is already containing at least one message and a new message enters no lambda will be triggered. Is it possible?
解决方案
有一个名为的 Amazon CloudWatch 指标ApproximateNumberOfMessagesVisible
显示队列中的消息数。文档说“对于 FIFO 队列,结果是准确的。”
您可以创建一个 CloudWatch 警报,当消息数量在一段时间内降至零时触发。警报可以向Amazon SNS 主题发送消息。如果您将 AWS Lambda 函数订阅到此主题,它将在队列为空指定持续时间(例如超过 5 分钟)时触发。只有当报警器进入'Alarm'状态时才会触发,直到报警器退出状态重新进入状态后才会再次触发。
重要提示:配置警报时,请转到附加配置并将丢失数据处理设置为“将丢失的数据视为错误(超出阈值)”。这是必需的,因为如果队列为空,SQS 队列将不会发送指标。(许多队列是空的,所以这节省了大量的度量存储!)
推荐阅读
- python - 如何从python中的嵌套字典中提取特定键的值并返回值列表
- python - 如何编写正则表达式从银行存折中提取帐号?
- ios - 来自 iOS 13 应用程序的 Xcode 内存图上约 500 个 NSZombie 警告
- jquery - 无法对齐 UI 工具提示中的部分文本?
- tsql - SQL Server LEN 函数报告错误结果
- javascript - 过滤器数组递归
- python - 函数生成总和为输入数字的数字数组
- jenkins-pipeline - 如何传递 jenkins 的凭据以将 docker 映像推送到我自己的注册表?
- php - php 二维数组排列...;单拼音有多个英文字母
- c# - NET CORE 3.1 OpenIdConnect 重定向