

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 Lambda 搭配基礎設施即程式碼 (IaC)
<a name="foundation-iac"></a>

Lambda 函數很少單獨執行。相反，它們通常是具有其他資源 (例如資料庫、佇列和儲存體) 的無伺服器應用程式的一部分。使用 [基礎設施即程式碼 (IaC)](https://aws.amazon.com/what-is/iac/)，您可以自動化部署程序，以快速且重複地部署並更新涉及許多不同 AWS 資源的整個無伺服器應用程式。這種方法可加快您的開發週期，使組態管理更加輕鬆，並確保您的資源每次都以相同的方式部署。

## 用於 Lambda 的 IaC 工具
<a name="foundation-iac-tools"></a>

**CloudFormation**  
CloudFormation 是來自 AWS 的基礎 IaC 服務。可以使用 [YAML 或 JSON 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)來建模和佈建整個 AWS 基礎設施，包括 Lambda 函數。CloudFormation 可處理建立、更新和刪除 AWS 資源的複雜性。

**AWS Serverless Application Model (AWS SAM)**  
AWS SAM 是在 CloudFormation 上建置的開放原始碼架構。它提供可定義無伺服器應用程式的簡化語法。使用 [AWS SAM 範本](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html)，只需幾行 YAML 即可快速佈建 Lambda 函數、API、資料庫和事件來源。

**AWS Cloud Development Kit (AWS CDK)**  
CDK 是 IaC 的程式碼優先方法。可以使用 TypeScript、JavaScript、Python、Java、C\#、.Net 或 Go 來定義基於 Lambda 的架構。選擇您偏好的語言，並使用程式設計元素，例如參數、條件、迴圈、合成和繼承，來定義基礎設施的所需結果。然後，CDK 會產生基礎 CloudFormation 範本以進行部署。如需搭配使用 Lambda 與 CDK 的範例，請參閱 [使用 部署 Lambda 函數 AWS CDK](lambda-cdk-tutorial.md)。

![顯示 AWS SAM 和 AWS CDK 如何使用 CloudFormation 來部署 AWS 資源和程式碼的圖表](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/IaC_tools.png)


AWS 還提供了一種稱為 AWS Infrastructure Composer、使用簡單的圖形介面開發 IaC 範本的服務。使用 Infrastructure Composer，您可以透過在視覺化畫布中拖曳、分組和連線 AWS 服務來設計應用程式架構。然後，Infrastructure Composer 會從您的設計中建立 AWS SAM 範本或 CloudFormation 範本，供您用來部署應用程式。

在下面的 [在 AWS SAM 與 Infrastructure Composer 中使用 Lambda 函式](foundation-iac-getting-started.md) 章節中，您可以使用 Infrastructure Composer，根據現有的 Lambda 函數為無伺服器應用程式開發範本。