首页 > 解决方案 > AWS SNS > SQS > Lambda 触发器。这是异步调用还是同步调用?

问题描述

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

据我了解,SNS > Lamda将是一个异步调用

但是,SNS > SQS > Lambda应该是同步的。

  1. 我的理解正确吗?

我已经在 SQS 源上配置了 DLQ,但没有将失败的消息存储到 DLQ 中。在 Lambda cloudwatch 上也看到了 2 次重试。

  1. 如果SNS > SQS > Lambda是同步的,我认为这不应该发生,对吗?

标签: amazon-web-servicesaws-lambdaamazon-sqsamazon-sns

解决方案


@jellycsc 已经在评论部分回答了你的问题,但我想扩展它。不久,它是基于轮询的,它使用synchronous调用。

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

  1. 同步
    • 弹性负载平衡
    • 亚历克斯
    • 认知
    • API Gateway(也有异步版本)
  2. 异步
    • S3
    • 社交网络
    • Cloudwatch/Eventbridge 事件
  3. 基于投票的
    • 运动
    • SQS
    • DynamoDB 流

根据这篇博文

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


推荐阅读