Q87 — AWS SAA-C03 第16章
第 87/100 题 | ← 返回第16章
Q1287. 一家公司在 Amazon Elastic Container Service (Amazon ECS) 集群上运行内容管理系统。该系统允许访客通过将产品文档和照片上传到 Amazon S3 存储桶来提供有关公司产品的反馈。该公司在 AWS 上有一个工作流,用于处理上传的文档,以对照片和文本进行情感分析。该处理工作流调用多个 AWS 服务。该公司需要一个解决方案来自动化处理工作流。该解决方案必须能够处理任何失败的上传。哪种解决方案能够以最少的努力满足这些要求?
- A. 使用 S3 事件通知将事件发布到 Amazon 简单通知服务 (Amazon SNS) 主题。在 Amazon ECS 集群上部署一个 Web 应用程序,以订阅 SNS 主题并监听事件以协调处理工作流程。
- B. 使用 S3 事件通知将事件发布到 Amazon 简单队列服务 (Amazon SQS) 队列。配置长轮询。部署一个运行脚本的 Amazon EC2 实例来协调处理工作流程。
- C. 使用 S3 事件通知将事件发布到 Amazon 简单队列服务 (Amazon SQS) 队列。创建一个可根据队列中消息数量扩展的 ECS 集群。配置该集群以协调处理工作流程。
- D. 使用 S3 事件通知调用 Amazon EventBridge 规则。配置该规则以启动协调处理工作流的 AWS Step Functions 工作流。 ✓
正确答案: D. 使用 S3 事件通知调用 Amazon EventBridge 规则。配置该规则以启动协调处理工作流的 AWS Step Functions 工作流。
解析
正确的解决方案必须能够自动化由 S3 上传触发的处理流程,处理上传失败的情况,并且尽量减少操作工作量。让我们评估一下每个选项:正确答案:D。使用 S3 事件通知调用 Amazon EventBridge 规则。配置该规则以启动用于协调处理工作流的 AWS Step Functions 工作流。为什么选项D是最佳选择:完全无服务器和自动化的工作流程:S3 事件通知触发 EventBridge 规则,从而启动 AWS Step Functions 工作流。Step Functions 原生处理复杂的业务流程(调用多个 AWS 服务进行情绪分析、错误处理、重试以及成功/失败通知)。无需手动扩展或管理基础设施(与 EC2 或基于 ECS 的解决方案不同)。内置错误处理和重试:Step Functions 提供:自动重试失败的步骤。用于不可恢复故障的死信队列 (DLQ)。工作流失败的可视化调试。S3 事件通知 + EventBridge + Step Functions 确保不会丢失任何消息(与没有适当错误处理的基于 SQS 的解决方案不同)。最低运营开销:无需管理 EC2 实例、ECS 集群或自定义脚本(与选项 A/B/C 不同)。Step Functions 完全托管,减少维护工作量。其他选择为何失败:A. 使用 S3 事件通知将事件发布到 Amazon SNS 主题。在 Amazon ECS 集群上部署 Web 应用程序以订阅 SNS 主题并监听事件以协调处理工作流程。更复杂且容易出错:仅靠 SNS 无法保证消息处理(需要手动确认)。基于 ECS 的 Web 应用必须实现重试、错误处理和扩展(这比 Step Functions 需要更大的工作量)。没有内置工作流可视化或调试功能(与 Step Functions 不同)。B. 使用 S3 事件通知将事件发布到 Amazon SQS 队列。配置长轮询。部署一个运行脚本的 Amazon EC2 实例来协调处理工作流。高昂的运营开销:EC2 实例需要手动修补、扩展和监控。脚本必须处理重试、DLQ 和故障(容易出错且耗时)。没有可视化工作流管理(与 Step Functions 不同)。C. 使用 S3 事件通知将事件发布到 Amazon SQS 队列。创建一个可根据队列中消息数量扩展的 ECS 集群。配置集群以协调处理工作流程。不必要的复杂:ECS 扩展增加了复杂性(集群管理、任务定义、自动扩展策略)。仍然需要自定义重试和错误处理逻辑(与 Step Functions 不同)。对于零散工作负载,其成本比无服务器 Step Functions 更高。主要比较:要求选项 D其他选项使用最少的代码自动化工作流程(Step Functions 处理业务流程)(A/B/C 需要自定义逻辑)处理上传失败(重试、DLQ)(Step Functions 内置)(A/B/C 需要手动实施)无服务器(无需基础设施管理)(EventBridge + Step Functions)(A:ECS;B:EC2;C:ECS)最少的运营工作量(完全托管)(A/B/C 需要扩展、修补、监控)结论:选项 D 是唯一的解决方案:完全自动化工作流程(S3 EventBridge Step Functions)。妥善处理故障(重试、DLQ、调试)。不需要基础设施管理(无服务器)。最终答案:D