Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在特定条件下,有没有办法从AWS lambda函数内部显式地将事件消息发送到死信队列?_Amazon Web Services_Amazon S3_Aws Lambda_Dead Letter - Fatal编程技术网

Amazon web services 在特定条件下,有没有办法从AWS lambda函数内部显式地将事件消息发送到死信队列?

Amazon web services 在特定条件下,有没有办法从AWS lambda函数内部显式地将事件消息发送到死信队列?,amazon-web-services,amazon-s3,aws-lambda,dead-letter,Amazon Web Services,Amazon S3,Aws Lambda,Dead Letter,我试图通过调用AWS lambda函数将s3event消息发送到rabbitmq。我已将SQS配置为死信队列(DLQ)。 我知道,当lambda调用失败或出现超时或资源限制等情况时,会将消息发送到DLQ。 我的问题是,我想在某些条件下,比如rabbitmq关闭或我感兴趣的其他条件下,从lambda函数内部向DLQ发送事件消息。 这有可能吗?我应该抛出异常还是有其他更好的方法将事件消息发送到DLQ 我正在使用java进行开发,并从lambda函数连接到rabbitmq。在lambda的DLQ设置中

我试图通过调用AWS lambda函数将s3event消息发送到rabbitmq。我已将SQS配置为死信队列(DLQ)。 我知道,当lambda调用失败或出现超时或资源限制等情况时,会将消息发送到DLQ。 我的问题是,我想在某些条件下,比如rabbitmq关闭或我感兴趣的其他条件下,从lambda函数内部向DLQ发送事件消息。 这有可能吗?我应该抛出异常还是有其他更好的方法将事件消息发送到DLQ


我正在使用java进行开发,并从lambda函数连接到rabbitmq。

在lambda的
DLQ
设置中,指定SNS主题或SQS队列。在设置中,您已将DLQ配置为SQS队列。这是一个常规的SQS队列。使用SQS Java SDK,您可以向该SQS队列发布消息

以下是一些参考资料:

要获取队列URL,可以使用以下各项:

或通过Java:
DLQ只是一个SQS队列,因此您可以像处理任何其他队列一样处理它。您希望它的格式化方式与Lambda在本地将消息放入DLQ中的方式相同,以便在DLQ上进行的任何处理都可以对所有消息执行相同的方式。不过,您希望确保在此实例中成功执行lambda,以便正常的DLQ进程不会拾取同一消息两次。

您是否尝试过简单地从lambda函数内部引发异常?这应该被视为失败,与您提到的其他失败相同。My handler类实现aws RequestHandler接口,该接口声明了一个方法handleRequest(),在声明中没有任何异常。所以在我的overidden方法中,我必须使用try-catch-block。代码。我不能简单地抛出异常。