无服务器部署和管理 - 带有 Amazon API Gateway 和 AWS Lambda 的 AWS 无服务器多层架构

本白皮书仅供历史参考。有些内容可能已过时,有些链接可能不可用。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

无服务器部署和管理

为了帮助您部署和管理 Lambda 函数,请使用 AW S 无服务器应用程序模型 (AWS SAM),这是一个开源框架,包括:

  • AWS SAM 模板规范- 用于定义您的函数并描述其环境、权限、配置和事件的语法,以简化上传和部署。

  • AWS SAM CLI- 允许您验证 SAM 模板语法、在本地调用函数、调试 Lambda 函数和部署包函数的命令。

您也可以使用 AWS CDK,这是一个软件开发框架,用于使用编程语言定义云基础架构并通过它进行配置 CloudFormation。CDK 提供了一种定义 AWS 资源的必要方式,而 AWS SAM 提供了一种声明方式。

通常,当您部署 Lambda 函数时,使用由其分配的 IAM 角色定义的权限调用该函数,并且能够访问面向互联网的终端节点。作为逻辑层的核心 AWS Lambda ,组件直接与数据层集成。如果您的数据层包含敏感的业务或用户信息,则务必确保该数据层被适当隔离(在私有子网中)。

如果您希望 Lambda 函数访问无法公开的资源,例如私有数据库实例,则可以将 Lambda 函数配置为连接到 AWS 账户中虚拟私有云 (VPC) 中的私有子网。当您将函数连接到 VPC 时,Lambda 会为函数的 VPC 配置中的每个子网创建一个弹性网络接口,弹性网络接口用于私密访问您的内部资源。

VPC 内部的 Lambda 架构模式

VPC 内部的 Lambda 架构模式

将 Lambda 与 VPC 结合使用意味着您的业务逻辑所依赖的数据库和其他存储媒体可能无法通过互联网访问。VPC 还确保通过互联网与您的数据进行交互的唯一方法是通过您定义的 APIs 和您编写的 Lambda 代码函数。