

# AWS Lambda 函数
<a name="lambda-functions-chapter"></a>

**提示**  
加入无服务器专家的免费实践讲习会，了解如何按照最佳实践构建无服务器应用程序。在 AWS Experience 网站上[注册参加免费无服务器讲习会](https://aws-experience.com/amer/smb/events/series/Get-Hands-On-With-Serverless?trk=188abe3e-9f94-4e84-aefb-398d944ad567%26sc_channel%3del)。

AWS Lambda 是一种无需管理服务器即可运行代码的计算服务。您的代码以按使用量付费的定价方式运行，并自动纵向扩展和缩减。要开始使用，请参阅[创建第一个函数](getting-started.md)。有关[最佳实践](best-practices.md)、[编程语言](lambda-programming-languages.md)、[租户隔离](tenant-isolation.md)以及[开发和部署工具](tools-to-develop-deploy-manage.md)的信息，请参阅下面的相关主题。

您可以将 Lambda 用于：
+ **文件处理**：上传到 Amazon Simple Storage Service 时自动处理文件。有关详细信息，请参阅[文件处理示例](example-apps.md#examples-apps-file)。
+ **长时间运行的工作流：**使用[持久性 Lambda 函数](durable-functions.md)来构建可运行长达一年的有状态的多步骤工作流。非常适合订单处理、批准工作流、人机回环流程以及需要记住其进度的复杂数据管道。
+ **数据库操作和集成示例**：响应数据库更改并自动化数据工作流。有关详细信息，请参阅[数据库示例](example-apps.md#examples-apps-database)。
+ **计划和定期任务**：使用 EventBridge 定期运行自动化操作。有关详细信息，请参阅[计划任务示例](example-apps.md#examples-apps-scheduled)。
+ **流处理**：处理实时数据流以进行分析和监控。有关详细信息，请参阅 [Kinesis Data Streams](with-kinesis.md)。
+ **Web 应用程序**：构建可根据需求自动调整的可扩展 Web 应用。
+ **移动后端**：为移动和 Web 应用程序创建安全的 API 后端。
+ **IoT 后端**：处理 Web、移动、IoT 和第三方 API 请求。有关详细信息，请参阅 [IoT](services-iot.md)。

有关定价信息，请参阅 [AWS Lambda 定价](https://aws.amazon.com/lambda/pricing/)。

## 函数与持久性函数
<a name="whatis-function-types"></a>

[Lambda 函数](#lambda-functions-chapter)最多可运行 15 分钟，非常适合事件驱动型任务，例如处理 API 请求、处理文件上传或响应数据库更改。[持久性函数](durable-functions.md)扩展了此模型，适用于需要运行更长时间并能承受中断的工作负载。它们可以执行长达一年，并自动检查点其进度，以便在故障后可靠地恢复。当您需要多步骤工作流、人工审批环节或跨服务长时间协调时，请使用持久性函数。

## Lambda 的工作原理
<a name="how-lambda-works"></a>

使用 Lambda 时，您只负责您的代码。Lambda 在高可用性计算基础设施上运行代码，管理所有计算资源，其中包括服务器和操作系统维护、容量预置、自动扩缩和日志记录。

由于 Lambda 是一种无服务器、事件驱动的计算服务，它使用的编程方法不同于传统 Web 应用程序。以下模型说明了 Lambda 的工作原理：

1. 在 [Lambda 函数](concepts-basics.md#gettingstarted-concepts-function)中编写和组织代码，这些函数是您用于创建 Lambda 应用程序的基本构建块。

1. 您可以通过 [Lambda 权限](lambda-permissions.md)控制安全性和访问权限，使用[执行角色](lambda-intro-execution-role.md)来管理您的函数可以与哪些 AWS 服务交互，以及哪些资源策略可以与您的代码交互。

1. 事件源和 AWS 服务[触发](concepts-event-driven-architectures.md)您的 Lambda 函数，并以 JSON 格式传递事件数据，供您的函数处理（这包括事件源映射）。

1. Lambda 在打包您的运行时、层和扩展的执行环境中使用特定于语言的运行时（如 Node.js 和 Python）[运行您的代码](concepts-how-lambda-runs-code.md)。

**提示**  
要了解如何构建**无服务器解决方案**，请查看[无服务器开发人员指南](https://docs.aws.amazon.com/serverless/latest/devguide/)。

## 主要功能
<a name="features"></a>

**配置、控制和部署安全的应用程序：**
+ [环境变量](configuration-envvars.md)无需部署新代码即可修改应用程序行为。
+ [版本](configuration-versions.md)安全地测试新功能，同时保持稳定的生产环境。
+ [图层](chapter-layers.md)通过在多个函数之间共享通用组件来优化代码重用和维护。
+ [代码签名](configuration-codesigning.md)通过确保只有批准的代码才能进入生产系统来强制执行安全合规性。

**扩展并可靠地执行：**
+ [并发和扩展控制](lambda-concurrency.md)精确管理流量高峰期间的应用程序响应能力和资源利用率。
+ [SnapStart](snapstart.md) 显著缩短冷启动时间。Lambda SnapStart 可以提供低至次秒级的启动性能，通常无需更改函数代码。
+ [响应流式处理](configuration-response-streaming.md)通过逐步提供大量有效载荷进行实时处理来优化函数性能。
+ [容器映像](images-create.md)使用容器工作流打包具有复杂依赖项的函数。

**无缝连接和集成：**
+ [VPC 网络](configuration-vpc.md)保护敏感资源和内部服务。
+ [文件系统](configuration-filesystem.md)集成，可共享持久数据并管理跨函数调用的状态操作。
+ [函数 URL](urls-configuration.md) 无需额外服务即可创建面向公众的 API 和端点。
+ [扩展程序](lambda-extensions.md)通过监控、安全和操作工具增强了功能。

## 相关信息
<a name="what-is-lambda-moreinfo"></a>
+ 有关 Lambda 工作原理的信息，请参阅 [Lambda 的工作原理](concepts-basics.md)。
+ 要开始使用 Lambda，请参阅[创建第一个 Lambda 函数](getting-started.md)。
+ 有关示例应用程序的列表，请参阅[开始使用示例应用程序和模式](example-apps.md)。

## AWS Lambda 中的安全性
<a name="lambda-security"></a>

AWS的云安全性的优先级最高。作为 AWS 客户，您将从专为满足大多数安全敏感型企业的要求而打造的数据中心和网络架构中受益。

安全性是 AWS 和您的共同责任。[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)将其描述为云*的* 安全性和云*中* 的安全性：
+ **云的安全性** – AWS 负责保护在 AWS 云中运行 AWS 服务 的基础设施。AWS 还向您提供可安全使用的服务。作为 [AWS 合规性计划](https://aws.amazon.com/compliance/programs/)的一部分，第三方审核人员将定期测试和验证安全性的有效性。要了解适用于 AWS Lambda 的合规性计划，请参阅[按合规性计划提供的范围内 AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。
+ **云中的安全性**：您的责任由您使用的AWS服务决定。您还需要对其它因素负责，包括您的数据的敏感性、您公司的要求以及适用的法律法规。

此文档将帮助您了解如何在使用 Lambda 时应用责任共担模型。以下主题说明如何配置 Lambda 以实现您的安全性和合规性目标。您还将了解如何使用其他 AWS 服务以帮助您监控和保护 Lambda 资源。主题包括[合规性验证](security-compliance.md)、[数据保护](security-dataprotection.md)、[身份和访问管理](security-iam.md)、[接口 VPC 端点](security-public-endpoints.md)和[故障恢复能力](security-resilience.md)。

有关向 Lambda 应用程序应用安全原则的更多信息，请参阅 Serverless Land 中的 [Security](https://serverlessland.com/content/service/lambda/guides/aws-lambda-operator-guide/security-ops)。

**Topics**
+ [AWS Lambda 中的数据保护](security-dataprotection.md)
+ [使用 Lambda 的服务相关角色](using-service-linked-roles.md)
+ [适用于 AWS Lambda 的 Identity and Access Management](security-iam.md)
+ [为 Lambda 函数和层创建治理策略](governance-concepts.md)
+ [AWS Lambda 的合规性验证](security-compliance.md)
+ [AWS Lambda 中的故障恢复能力](security-resilience.md)
+ [中的基础设施安全性AWS Lambda](security-infrastructure.md)
+ [使用公共端点保护工作负载](security-public-endpoints.md)
+ [使用代码签名通过 Lambda 验证代码完整性](configuration-codesigning.md)