Q89 — AWS SAA-C03 第17章

第 89/89 题 | ← 返回第17章

Q1389. 解决方案架构师需要使用 AWS Lambda 函数访问公司内部的数据科学库和参考数据。这些库和数据由不同的团队管理。这些团队必须能够独立地更新和上传新数据。Lambda 函数连接到公司的中央 VPC。哪种解决方案能够为 Lambda 函数提供对库和数据的访问权限?

正确答案: C. 在中央 VPC 中设置 Amazon EFS 文件系统及其挂载目标。配置 Lambda 函数以挂载 EFS 文件系统。更新 Lambda 函数的执行角色,授予函数对 EFS 文件系统的访问权限。

解析

让我们分析每种方案,以确定为 AWS Lambda 函数提供访问公司内部数据科学库和参考数据的最佳解决方案:方案 A:使用中央 VPC 中的 EBS 多实例附加功能,将 Amazon EBS 卷附加到 Lambda 函数。更新 Lambda 函数的执行角色,授予函数访问 EBS 卷的权限。更新 Lambda 函数代码,使其引用 EBS 卷中的文件。EBS 与 Lambda 的兼容性限制:Amazon EBS 卷专为 Amazon EC2 实例设计,并非 AWS Lambda 的原生存储选项。虽然 EBS 多实例附加功能允许将 EBS 卷同时附加到多个 EC2 实例,但 Lambda 函数的执行模型不同。Lambda 函数是无状态的,按需调用。没有直接的方法可以将 EBS 卷附加到 Lambda 函数,而且这种方法不具备可扩展性和高效性。此外,管理 Lambda 函数调用的 EBS 卷的附加和分离操作既复杂又容易出错。因此,此方案不适用。方案 B:将库文件和引用数据压缩到 Lambda/tmp 文件夹中。更新 Lambda 函数代码,使其引用 /tmp 文件夹中的文件。存储空间有限且缺乏独立更新:Lambda 函数中的 /tmp 目录存储容量有限(某些运行时版本最大为 512 MB,具体容量可能有所不同)。对于大型数据科学库和参考数据而言,这可能不够用。此外,如果库和数据需要由不同的团队独立更新,使用 /tmp 文件夹并不实际。每次更新数据或库时,都需要重新创建和部署 Lambda 函数部署包,这不是管理独立更新的有效方法。因此,此选项并非理想之选。选项 C:在中央 VPC 中设置带有挂载目标的 Amazon EFS 文件系统。配置 Lambda 函数以挂载 EFS 文件系统。更新 Lambda 函数的执行角色,以授予函数对 EFS 文件系统的访问权限。可扩展性和独立更新:Amazon Elastic File System (EFS) 是一项完全托管、可扩展且共享的文件存储服务,可与 AWS Lambda 配合使用。它提供了一个可供多个 Lambda 函数同时访问的公共文件系统。不同的团队可以独立地更新 EFS 文件系统并上传新数据,而不会影响 Lambda 函数的运行。Lambda 函数可以挂载 EFS 文件系统,并像访问本地文件一样访问其中的库和数据。此外,更新执行角色以授予对 EFS 文件系统的访问权限也非常简单。此选项满足此场景的要求。方案 D:在中央 VPC 中设置 Amazon FSx for Windows 文件服务器文件系统,并配置挂载目标。配置 Lambda 函数以挂载 Amazon FSx 文件系统。更新 Lambda 函数的执行角色,授予函数对 Amazon FSx 文件系统的访问权限。过度配置且成本高昂:Amazon FSx for Windows 文件服务器是一个完全托管的 Windows 文件服务器,专为需要 Windows 原生文件系统功能(例如 Active Directory 集成、用户配额和分布式文件系统 (DFS) 命名空间)的应用程序而设计。如果公司的数据科学库和参考数据不需要这些 Windows 特有的功能,那么使用 Amazon FSx for Windows 文件服务器就显得过于复杂。而且,它通常比 Amazon EFS 更昂贵。因此,此方案并非最佳选择。根据以上分析,要使 Lambda 函数能够访问库和数据,解决方案是在中央 VPC 中设置一个带有挂载目标的 Amazon EFS 文件系统,配置 Lambda 函数挂载 EFS 文件系统,并更新 Lambda 函数执行角色,使函数能够访问 EFS 文件系统。所以答案是C。