

# Lambda 的开发工具
<a name="tools-to-develop-deploy-manage"></a>

您可以使用各种工具来提高整个开发生命周期的工作效率和易用性。本节介绍可帮助众多 Lambda 客户设计、开发和管理其应用程序的工具。从 IDE 中的本地开发到部署和管理复杂的无服务器应用程序，这些工具可帮助您简化工作流、提高代码质量并加速基于 Lambda 的强大解决方案的开发。
+ **本地开发** — 在您首选的开发环境中更快地编写和测试 Lambda 函数。Amazon Toolkit for VS Code 支持本地函数开发、调试和测试，并可直接部署到 Lambda。
+ **基础设施即代码（IaC）**：从本地测试到生产，一致地部署和管理无服务器应用程序。Amazon SAM、Amazon CDK 和 Amazon CloudFormation 让您可以通过代码定义和管理无服务器基础设施，实现一致且版本控制的部署。
+ **GitHub Actions** — 直接从代码存储库自动化 Lambda 部署。GitHub Actions 允许您设置工作流，以便在您推送代码或配置更改时自动部署 Lambda 函数，从而简化 CI/CD 管道。
+ **Powertools for Amazon Lambda** — 使用较少的自定义代码构建生产就绪型无服务器应用程序。Powertools for Amazon Lambda（也称为 Powertools for Amazon）是一个开源开发人员工具包，可简化跨 Python、TypeScript、Java 和 .NET 实现无服务器最佳实践，例如可观测性、参数检索和幂等性。
+ **工作流和事件**：将 Lambda 函数与 Amazon 服务、API 和外部系统进行协调。Lambda 提供两个编排选项：[Lambda 持久性函数](durable-functions.md)（用于在 Lambda 中使用标准编程语言进行以应用程序为中心的编排）和 [Amazon Step Functions](with-step-functions.md)（用于跨多个服务使用视觉对象设计进行以工作流为中心的编排）。Amazon EventBridge 为事件驱动型架构提供事件管理功能。有关选择编排方法的帮助，请参阅[持久性函数或 Step Functions](durable-step-functions.md)。

## 本地开发工具
<a name="local-development-tools"></a>

在本地开发环境中，您可以离线工作并利用高级 IDE 功能，同时快速迭代 Lambda 函数。这些工具有助于您调试复杂的函数，并在网络连接受限的环境中进行开发。此外还支持团队协作以及与版本控制系统集成。

有关在本地开发 Lambda 函数的更多信息，请参阅[使用 VS Code 在本地开发 Lambda 函数](foundation-iac-local-development.md)。本页介绍了如何将 Lambda 函数开发从 Amazon 控制台移至 Visual Studio Code，后者提供了一个功能丰富的开发环境，支持调试和代码完成等功能。要进行过渡，您需要设置 Amazon Toolkit for Visual Studio Code 和凭证，然后就可以使用 VS Code 中的高级功能，同时保持直接部署到 Amazon 的能力。

Lambda 的本地开发提供了以下几项关键功能：
+ 使用 Visual Studio Code 与 Lambda 控制台集成
+ 配置 Lambda 本地开发环境
+ 本地调试和测试函数
+ 应用本地功能管理的最佳实践

有关更多信息，请参阅 [使用 VS Code 在本地开发 Lambda 函数](foundation-iac-local-development.md)。

## 基础设施即代码（IaC）工具
<a name="iac-tools"></a>

借助基础设施即代码（IaC）工具，您可以使用代码定义和管理无服务器架构。这种方法有助于保持跨环境的一致性，使您能够控制基础设施版本，并促进 DevOps 实践。IaC 特别适合自动化部署，确保环境一致性和管理多区域部署。

Lambda 的重要IaC 工具和概念包括模板创建、部署管理和无服务器基础设施最佳实践：
+ Lambda 开发的核心 IaC 原则
+ Amazon CloudFormation、Amazon SAM 和 Amazon CDK 能力
+ 工具选择标准和比较
+ Lambda IaC 实现的最佳实践

无论您是独立处理小项目，还是作为大型团队的一员管理企业级无服务器应用程序，这些开发和部署工具都有助于您更有效地编写、部署和管理 Lambda 函数。

有关更多信息，请参阅 [将 Lambda 与基础设施即代码（IaC）结合使用](foundation-iac.md)。

## GitHub Actions 工具
<a name="github-actions-tools"></a>

GitHub Actions 直接从代码存储库为 Lambda 函数提供自动部署功能。通过在存储库中创建工作流文件，您可以在推送代码或配置更改时自动部署 Lambda 函数，从而简化持续集成和持续部署 (CI/CD) 管道。“部署 Lambda 函数”操作提供了一个声明式 YAML 接口，可简化部署过程，通过 OpenID Connect (OIDC) 处理 Amazon 凭证，并支持各种部署方案，包括代码更新、配置更改和试运行验证。这种集成使团队能够在利用现有 GitHub 工作流的同时保持一致且自动化的部署流程。

有关更多信息，请参阅 [使用 GitHub Action 部署 Lambda 函数](deploying-github-actions.md)。

## Powertools for Amazon Lambda
<a name="development-powertools"></a>

Powertools for Amazon 是一个开源开发人员工具包，可帮助您以最少的自定义代码实现无服务器最佳实践。它适用于 Python、TypeScript/Node.js、Java 和 .NET，提供实用程序函数、装饰器和中间件，可简化常见 Lambda 开发任务。该工具包包括内置可观测性功能，如结构化日志记录、跟踪和指标收集，例如用于参数检索、密钥管理和幂等性模式的实用程序。这些工具与 Amazon 架构完善的最佳实践相一致，可帮助开发人员更高效地构建生产就绪型无服务器应用程序。通过减少样板代码并标准化常用模式，Powertools for Amazon 使团队能够专注于业务逻辑，同时在其应用程序中保持一致地实施无服务器最佳实践。

有关更多信息，请参阅 [Powertools for Amazon Lambda](powertools-for-lambda.md)。

## 工作流程和事件管理工具
<a name="workflow-event-management-tools"></a>

Lambda 应用程序可用于编排复杂的工作流程以及处理各种事件。Amazon 提供专门的工具来帮助您管理无服务器开发的这些方面。了解用于工作流程编排的 Amazon Step Functions 以及用于事件管理的 Amazon EventBridge，以及如何将其与 Lambda 函数集成。通过提供强大的状态管理和事件驱动的基础设施，这些工具可显著增强无服务器应用程序的可扩展性和可靠性。通过利用这些服务，您可以构建更复杂、更具弹性的基于 Lambda 的解决方案，处理复杂的业务流程并对各种系统和应用程序事件做出反应。

有关更多信息，请参阅 [管理 Lambda 工作流程和事件](workflow-event-management.md)。