我有一个从 SQS 队列触发的简单 lambda 函数,我正在使用新的Lambda 目标功能。
它设置为从 触发QUEUE_A,对有效负载主体进行一些修改,然后QUEUE_B在成功或失败QUEUE_ERRORS时将其发送到。
QUEUE_B并在 lambda 函数上QUEUE_ERRORS设置为Destinations 。
当我从 CLI 触发 lambda 时,我得到一个记录QUEUE_B良好的记录,以及QUEUE_ERRORS一个糟糕的记录。所以,它似乎正在工作。
但是,当从 SQS 触发 lambda 时,我从未QUEUE_B在or上获得记录QUEUE_ERRORS。一个好的记录运行 lambda,而在一个不好的记录上它会转到QUEUE_A_DEADLETTER,这是我不想要的。
我已经尝试配置QUEUE_A为没有重试/死信 - 如果我这样做,如果记录不好,它将永远重试(无论我将可见性/重试设置多低)。
接下来我可以尝试什么?
编辑:
CloudWatch 准确地向我展示了我希望看到的内容 - 我在“好”记录上看到了良好的日志,在“坏”记录上看到了堆栈跟踪/异常,所以这在函数本身 AFAIK 中不是问题。
编辑:用 SNS 触发器和目标替换 SQS 触发器和目标正在工作。那么,我认为这与 SQS 同步和 SNS 异步有关吗?有人知道吗?
