对于我的其中一篇文章, 这篇文章是关于一个AI助理在Lambda上错过了SQS触发器.
Mads Hansen以一句句子回答,我一直无法不思考,因为:触发形状是第一个合同,交付和再试语义是第二个。
向右转会告诉你如何读取消息.
它没有告诉你当一个批发的10个信息之一会发生什么。
我把它作为第87期存档.
该列表中的第一个项目是一个无法通过读取代码来捕捉代码的bug,因为代码是好的.
处理器正确而无所事事 这里是一个批量的消费者。
如果读取AWS文件并跟随它们,这就是你的形状。 9个记录成功,1个投出,处理者报告的正是失败的.
这是部分批量反应的全部要点:工作过的9个被从队列上删除,失败的9个自动返回.
除了这个处理器不这样做,因为是否有人听取返回值在此文件中没有决定.
由事件源映射决定.
如果在映射中没有包含 , Lambda 将丢弃阵列 。
整批被标记失败 。
所有10个记录都已重新交付,包括9个已经完成的记录。
失败模式是重复处理. 9个命令被处理两次,或20次,因为一个毒消息在排队重试限制之前,不停地重放其批次.
如果你的处理者不是一流的,那就是双重充电的客户,而不是日志行.
为什么没人在评论中看到这个 重新用批判的眼光读取那个操作者 亦无所出.
它正确地构建了数组,它使用识别符,每个记录捕获,而不是环绕循环.
单位测试输入了10个记录 并填报了一张通行证 这就是它与普通虫不同的原因。
密码没有错 这是惰性。
一半的合同能使它工作,生活在一个不同的寄存器的Terraform模块中,或者在CDK堆积一个不同的团队拥有,或者在18个月前有人点击控制台的复选箱中.
你的编辑器、插件或测试套房里 没有任何能见度 而一位AI助手,要求"向这个消费者添加部分分批故障处理",写得正好是上面的处理者,并报告完成的工作.
这不是幻觉。
它写了它唯一能看到的一半。
同一合同的两端,两个不同的结论 当我把支票建到下面时, 很明显,不匹配有两个方向, 它们并不同样糟糕。
第一是测绘侧缺口。
寻找批量尺寸大于1且没有的触发器。
一个批次没有部分故障,所以被跳过.
这个是分级的介质:这是一个缺失的能力,但处理者可能真的不需要它.
第二是错配.
当代码建立数组时起火 而触发器的映射有触发作用 这是高分, 描述说为什么: 代码读作正确,其单位测试通过;只有绘图才说出真相.
缺少的设定是缺失。
一个不匹配是积极的虚假信念——有人故意写了处理者,相信有记录的报导。
他们作出的每一个下游关于“一能”的决定都基于这种信念。
侦测密码是便宜的 两台扫描仪都与名称吻合: ts-morph 寻找一个名为 的属性或短手属性,而 Python 扫描仪匹配相同的dict 密钥.
对返回语句没有控制流追踪,因为用这个名字建立数组在Lambda处理器中没有任何其他目的.
基础设施方面也没有任何代价。
运行在触发提取的响应上 已经通过页,所以整个检查是外接的字段加两个分析器。
保持诚实的规则 一个细节比分析者本身更重要。
两次检查火力