Amazon web services AWS SNS>SQS>Lambda触发器。这是异步调用还是同步调用?

Amazon web services AWS SNS>SQS>Lambda触发器。这是异步调用还是同步调用?,amazon-web-services,aws-lambda,amazon-sqs,amazon-sns,Amazon Web Services,Aws Lambda,Amazon Sqs,Amazon Sns,我正在使用 客户端>SNS>SQS>Lambda触发器 根据我的理解,SNS>Lamda将是一个异步调用 然而,SNS>SQS>Lambda应该是同步的 我的理解正确吗? 我已在SQS源上配置了DLQ,但未将失败消息存储到DLQ中。在Lambda cloudwatch上也看到了2次重试尝试 如果SNS>SQS>Lambda是同步的,我认为这不应该发生,对吗? @jellycsc已经在评论部分回答了您的问题,但我想进一步说明。很快,它是基于轮询的,使用同步调用 AWS Lambda有三种类型的调用

我正在使用 客户端>SNS>SQS>Lambda触发器

根据我的理解,SNS>Lamda将是一个异步调用

然而,SNS>SQS>Lambda应该是同步的

我的理解正确吗? 我已在SQS源上配置了DLQ,但未将失败消息存储到DLQ中。在Lambda cloudwatch上也看到了2次重试尝试

如果SNS>SQS>Lambda是同步的,我认为这不应该发生,对吗?
@jellycsc已经在评论部分回答了您的问题,但我想进一步说明。很快,它是基于轮询的,使用同步调用

AWS Lambda有三种类型的调用模型

同步的 弹性负载平衡 亚历克斯 白兰地 API网关也有一个异步版本 异步的 S3 社交网站 Cloudwatch/Eventbridge事件 基于投票的 运动 SQS DynamoDB流 据报道,

AWS将代表您管理轮询器,并通过这种类型的集成对您的函数执行同步调用。此模型的重试行为基于数据源中的数据过期。例如,Kinesis数据流存储记录的时间默认为24小时,最多为168小时


@jellycsc已经在评论部分回答了您的问题,但我想进一步说明。很快,它是基于轮询的,使用同步调用

AWS Lambda有三种类型的调用模型

同步的 弹性负载平衡 亚历克斯 白兰地 API网关也有一个异步版本 异步的 S3 社交网站 Cloudwatch/Eventbridge事件 基于投票的 运动 SQS DynamoDB流 据报道,

AWS将代表您管理轮询器,并通过这种类型的集成对您的函数执行同步调用。此模型的重试行为基于数据源中的数据过期。例如,Kinesis数据流存储记录的时间默认为24小时,最多为168小时


是的,sqs到lambda是同步的。谢谢,很清楚!因此,在lambda触发器失败时,消息应该保留在sqs队列中。我认为参考上面的第二个问题,它没有保留,因为可能lambda将200返回到SQS,但lambda本身调用API异步http调用失败。因此,lamda将执行2次重试并丢弃该事件。一旦有机会,我会测试我的低血压并分享结果。是的,sqs到lambda是同步的。谢谢,很清楚!因此,在lambda触发器失败时,消息应该保留在sqs队列中。我认为参考上面的第二个问题,它没有保留,因为可能lambda将200返回到SQS,但lambda本身调用API异步http调用失败。因此,lamda将执行2次重试并丢弃该事件。一旦有机会,我会测试我的低血压并分享结果。谢谢,一切都很清楚!因此,在lambda触发器失败时,消息应该保留在sqs队列中。我认为参考上面的第二个问题,它没有保留,因为可能lambda将200返回到SQS,但lambda本身调用API异步http调用失败。因此,lamda将执行2次重试并丢弃该事件。一旦有机会,我将测试我的Hyposis并共享结果。使用SQS+DLQ集成,当超过尝试时,即使存在应用层错误异常,也应在DLQ上进行。当函数返回错误时,Lambda将其留在队列中。可见性超时发生后,Lambda再次接收消息。要在多次接收后将消息发送到第二个队列,请在源队列上配置死信队列。期待您的测试结果@AdrianusHendry。最好的,谢谢,很清楚!因此,在lambda触发器失败时,消息应该保留在sqs队列中。我认为参考上面的第二个问题,它没有保留,因为可能lambda将200返回到SQS,但lambda本身调用API异步http调用失败。因此,lamda将执行2次重试并丢弃该事件。一旦有机会,我将测试我的Hyposis并共享结果。使用SQS+DLQ集成,当超过尝试时,即使存在应用层错误异常,也应在DLQ上进行。当函数返回错误时,Lambda将其留在队列中。可见性超时发生后,Lambda再次接收消息。要在多次接收后将消息发送到第二个队列,请在源队列上配置死信队列。期待您的测试结果@AdrianusHendry。最好的