Lambda不会在dlq中放入消息

时间:2018-10-04 07:49:24

标签: amazon-web-services amazon-s3 aws-lambda dead-letter

我只是想测试Lambda的DLQ,我并没有说明为什么消息没有出现在其中。我的代码仅做1件事throw new Exception("Test");

第一个错误是可以理解的,我试图使用按钮Test同步执行此操作。之后,我设置了Kinesis并开始在其上发送消息,但是没有任何变化。在CloudWatch metrics的监视页面上,我发现Errors, Availability中存在一些错误,但是{{1中没有任何错误}}。

对于创建的DLQ,这只是简单的标准队列,而无需更改配置。

预先感谢您的帮助

2 个答案:

答案 0 :(得分:0)

如下所示,使用AWS开发工具包异步调用lambda。

$ aws lambda invoke --function-name my-function --invocation-type Event --payload '{ "key": "value" }' response.json { "StatusCode": 202 }

文档-https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html

答案 1 :(得分:0)

使用此功能,您可以在发生故障时配置目标。此目标可以是SNS主题,SQS队列,另一个lambda函数或EventBridge事件总线。

要通过控制台用户界面添加它,

  1. 转到lambda函数
  2. 点击Add Destination按钮
  3. 选择流调用
  4. 根据故障条件选择
  5. 选择SQS队列作为目标,并将其指向要使用的SQS,例如DLQ。

要通过cloudformation添加它,请遵循以下documentation
我将为您需要附加到lambda函数的触发器提供一个基本示例:

LambdaTrigger:
  Type: AWS::Lambda::EventSourceMapping
  Properties:
    FunctionName: !GetAtt Lambda.Arn
    EventSourceArn: !GetAtt Kinesis.Arn
    DestinationConfig:
      OnFailure:
        Destination: !GetAtt DLQ.Arn