Q64 — AWS SAA-C03 第13章
第 64/100 题 | ← 返回第13章
Q964. 一家公司正在将托管在 Amazon EC2 上的 Web 应用程序的单体架构迁移到无服务器微服务架构。该公司希望使用支持事件驱动、松散耦合架构的 AWS 服务。该公司希望使用发布/订阅 (pub/sub) 模式。哪种解决方案能够最经济高效地满足这些要求?
- A. 配置 Amazon API Gateway REST API 以调用将事件发布到 Amazon Simple Queue Service (Amazon SQS) 队列的 AWS Lambda 函数。配置一个或多个订阅者以从 SQS 队列读取事件。
- B. 配置 Amazon API Gateway REST API 以调用将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题的 AWS Lambda 函数。配置一个或多个订阅者以从 SNS 主题接收事件。 ✓
- C. 配置 Amazon API Gateway WebSocket API 以写入具有增强扇出功能的 Amazon Kinesis Data Streams 中的数据流。配置一个或多个订阅者以从数据流接收事件。
- D. 配置 Amazon API Gateway HTTP API 以调用 AWS Lambda 函数,该函数将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题。配置一个或多个订阅者以从该主题接收事件。
正确答案: B. 配置 Amazon API Gateway REST API 以调用将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题的 AWS Lambda 函数。配置一个或多个订阅者以从 SNS 主题接收事件。
解析
最符合要求且最具成本效益的解决方案是 B。配置 Amazon API Gateway REST API 以调用 AWS Lambda 函数,该函数将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题。配置一个或多个订阅者以从 SNS 主题接收事件。原因如下:事件驱动架构:SNS 是一种完全托管的发布/订阅服务,允许应用程序的不同组件之间进行松散耦合的通信。 经济高效:SNS 是一种经济高效的解决方案,尤其适用于大容量事件发布和订阅。它只对发布和接收的消息收费。 可扩展性:SNS 可以处理大量事件并自动扩展以满足需求。 松散耦合:SNS 支持不同微服务的独立扩展和开发,因为它们不需要直接连接。API 网关集成:API 网关提供了一种安全且可扩展的方式来公开应用程序的 API 端点,从而允许客户端触发事件。为什么其他选项不太合适:A. 配置 Amazon API 网关 REST API 以调用 AWS Lambda 函数,该函数将事件发布到 Amazon Simple Queue Service (Amazon SQS) 队列。配置一个或多个订阅者以从 SQS 队列读取事件:虽然 SQS 是排队消息的好选择,但它在发布/订阅场景中不如 SNS 高效。SQS 专为点对点通信而设计,而 SNS 针对一对多通信进行了优化。C. 配置 Amazon API 网关 WebSocket API 以写入具有增强扇出功能的 Amazon Kinesis Data Streams 中的数据流。配置一个或多个订阅者以从数据流接收事件:Kinesis Data Streams 专为实时数据处理和流式传输而设计,不适用于通用事件发布和订阅。对于这种情况,它可能有点过头了,而且可能比 SNS 更昂贵。D. 配置 Amazon API Gateway HTTP API 以调用 AWS Lambda 函数,该函数将事件发布到 Amazon Simple Notification Service (Amazon SNS) 主题。配置一个或多个订阅者以接收来自主题的事件:这本质上与选项 B 的解决方案相同,唯一的区别在于使用的 API Gateway API 的类型。HTTP 和 REST API 都可用于调用 Lambda 函数。总结:选项 B 提供了使用发布/订阅模式实现事件驱动、松散耦合架构的最经济高效的方法。SNS 是此场景的理想服务,提供可扩展性、成本效益以及与 API Gateway 和 Lambda 函数的无缝集成。