AWS Lambda 调用错误未触发 SQS 死信队列

2024-05-11

我有一个 AWS Lambda 函数,它订阅 DynamoDB 流并配置了SQS 死信队列 (DLQ) https://docs.aws.amazon.com/lambda/latest/dg/dlq.html。我可以看到管理控制台中配置了正确的队列。我还小心翼翼地授予我的功能权限sqs:SendMessage在我的 DLQ 上。

订阅可以工作,但仍然会因调用错误而“挂起”,就像未配置 DLQ 一样。即,如果有一条消息导致未处理的异常,则该函数将继续重试该消息,直到将其从流中删除。我可以看到调用错误的数量有所增加,并且该函数的 Cloudwatch 仪表板中没有显示 DLQ 错误。 SQS 队列仍为空。

我想要的是失败的消息被转发到我的 DLQ,并且订阅继续到下一条消息。有任何想法吗?

Edit

正如 Jonathan Seed 在下面所说,DLQ 目前不适用于基于流的订阅。 AWS Support 确认他们正在努力实现这一点。


我相信这是因为 DynamoDB 流是基于流事件源。拉姆达文档 https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html指出在处理基于流的事件源时“如果 Lambda 函数失败,AWS Lambda 会尝试处理出错的一批记录,直到数据过期”

根据我的理解,lambda 函数将重试,直到事件成功处理或过期并从流中消失,该事件永远不会被 lambda 函数“丢弃”,因为它们位于非基于流的事件源中。

如果您希望丢弃某些事件,将事件手动发布到队列/主题并成功返回,您可能必须实现自己的故障处理作为主 lambda 函数的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Lambda 调用错误未触发 SQS 死信队列 的相关文章

  • Spring JMS监听器即使在异常时也会确认

    我正在使用 JMS 向 SQS 队列发送 接收消息 但是即使在使用 client acknowledge 时出现异常 我也无法重新传递消息 如何实现这一目标 我尝试了一个简单的测试 JmsListener destination test
  • AWS S3 上传的图像已损坏

    我正在 AWS ec2 ubuntu 机器上工作 我的代码在 cakephp 中 当我尝试将任何图像上传到 AWS S3 时 它都会损坏 虽然它在核心 php 代码中运行良好 这是我的控制器代码 if this gt User gt sav
  • 无法创建复合索引,停留在 INSTALLED

    我无法创建索引 我的 Gremlin 代码如下 usernameProperty mgmt getPropertyKey username usernameIndex mgmt buildIndex byUsernameUnique Ver
  • AWS DynamoDB 写后读一致性 - 理论上它是如何工作的?

    大多数nosql解决方案仅使用最终一致性 并且考虑到DynamoDB将数据复制到三个数据中心 如何保持写后读一致性 解决此类问题的通用方法是什么 我认为这很有趣 因为即使在 MySQL 复制中 数据也是异步复制的 我将详细告诉您 Dynam
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1
  • 如何使用 jq 从多个嵌套数组中提取键

    SETUP 我试图弄清楚 jq 过滤器是如何工作的 但在找出嵌套数组时遇到了困难 使用下面的数据我无法做出平的 5 键输出 我可以得到 1 个键和 4 个空值 或者 4 个键和 1 个空值 但不能得到所有 5 个键 1 个键 4 个空值 R
  • 如何中止/停止正在进行的 Amazon AWS s3 上传

    我正在使用 aws sdk 的 javascript 版本将文件上传到亚马逊 s3 存储桶 code AWS config update accessKeyId access key secretAccessKey secret key A
  • 在 Python 2.7 中出现“ImportError:无法导入名称 HTTPSConnection”错误

    我正在尝试在 AWS ElasticBeanstalk 中部署 django 当我按照所示步骤操作时here http docs aws amazon com elasticbeanstalk latest dg create deploy
  • 使用 Amazon SQS 的 .net 应用程序示例

    我正在寻找一个示例 Net 应用程序 该应用程序会持续检查 Amazon SQS 是否有新消息 并在发现新消息时执行一项操作并将其从队列中删除 我的目标是让一个在 EC2 上运行的应用程序监视我的 SQS 队列中的新消息 当找到一条消息时
  • 如何在AWS中从快照创建Windows实例

    我的公司想要在 Amazon Web Service 中拍摄窗口的每日快照 我们可以毫无问题地拍摄快照 但是当我尝试从快照创建实例时 它总是创建一个 Linux ami 所以当服务器启动时 它总是无法通过健康检查 是否可以从快照创建 Win
  • Nginx url 限制 502 网关

    我有一个问题 但我接受绕过此功能的其他建议 基本上 我在 get 请求中向我的服务器发送大约 3000 个字符的大行文本 然后服务器将其作为 url 中的参数发送到谷歌翻译 问题 当 url gt 1900 个字符时 Nginx 会抛出 5
  • IOPS 与吞吐量。选择 AWS EBS 时使用哪一种

    在选择合适的 EBS 卷类型时 我需要决定IOPS 或吞吐量是否是更好的性能衡量标准 https docs aws amazon com en us AWSEC2 latest UserGuide EBSVolumeTypes html问题
  • AWS Route 53 如何实现基于延迟的路由?

    AWS Route 53 可以提供基于延迟的路由策略 请参阅AWS Route 53 的延迟路由策略 http docs aws amazon com Route53 latest DeveloperGuide routing policy
  • Rails 4.1 AWS Beanstalk 找不到秘密密钥库

    我正在尝试在 AWS Beanstalk 上上传我的 Rails 项目 我已经运行 eb init eb start 并将数据库设置配置为指向 RDS 在我使用 git aws push 推送并等待 AWS 服务器启动后 提供的链接显示 5
  • 用于移动到冰川的对象的 AWS Lambda

    我正在开发一个 POC 其中我在 S3 上设置了生命周期规则 以便在一定天数后将对象移动到冰川 如果对象具有指定的标签 规则对我来说效果很好 对象通过生命周期规则移动到冰川 存储类型从标准更改为冰川 到目前为止 一切都很好 由于我需要限制用
  • 通过 Amazon SQS 将压缩文本从 PHP 发送到 NodeJS

    我似乎一直坚持通过 Amazon SQS 将压缩消息从 PHP 发送到 NodeJS 在 PHP 方面我有 SQS gt sendMessage Array QueueUrl gt queueUrl MessageBody gt artic
  • 如何在亚马逊AWS上加载ena驱动程序?

    我正在尝试在 Ubuntu VM 上加载 ena 驱动程序 根据文档 我的虚拟机有vif低性能驱动程序 ubuntu ip 172 31 14 190 ethtool i eth0 driver vif version firmware v
  • 将 EC2 实例注册到 ECS 集群,无需公网 IP

    我很难将在我的 VPC 和私有子网上 没有附加互联网网关 创建的实例添加到 ECS 集群 目前 我设法做到这一点的唯一方法是添加公共 IP 并配置 NAT 实例 网关 如何使用具有私有子网的 ECS 集群 我想我已经在 AWS 文档中找到了
  • 如何使用无服务器框架中的多个路径参数

    我正在尝试部署我的无服务器应用程序 但遇到如下问题 An error occurred ApiGatewayResourceServicesServiceidVar A sibling id of this resource already
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c

随机推荐