基礎設施即程式碼 (IaC) - AWS Serverless Application Model

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

基礎設施即程式碼 (IaC)

透過基礎設施即程式碼 (IaC),您可以自動化 AWS 資源的部署和管理,包括無伺服器應用程式。IaC 可讓您使用程式碼定義基礎設施,讓您更輕鬆地版本化、共用和複寫部署。此方法可協助您:

  • 加速您的開發週期

  • 簡化組態管理

  • 改善部署的可靠性和一致性

無 AWS 伺服器應用程式的 IaC 工具

AWS 提供多種 IaC 工具,協助您建置、部署和管理雲端資源。本節說明 如何 AWS SAM 符合此生態系統,以及 如何與其他 AWS IaC 工具搭配使用。

AWS CloudFormation

使用 AWS CloudFormation,您可以使用 YAML 或 JSON 範本來建立和佈建整個 AWS 基礎設施。 會自動 AWS CloudFormation 處理資源建立、更新和刪除。當您部署 AWS SAM 應用程式時, 會 AWS CloudFormation 處理轉換後的範本,以建立和管理 資源。

AWS Serverless Application Model (AWS SAM)

AWS SAM 可協助您使用簡化的語法建置無伺服器應用程式,以定義無伺服器資源。您可以使用 AWS SAM 範本,使用簡潔的 YAML 語法佈建 Lambda 函數、APIs、資料庫和事件來源。 會在部署期間將這些範本 AWS SAM 轉換為 AWS CloudFormation 範本。

注意

雖然 AWS SAM 專精於無伺服器應用程式,但您可以在 AWS SAM 範本中使用任何 AWS CloudFormation 資源類型。這可讓您在需要時靈活地包含非伺服器資源。

AWS 雲端開發套件 (AWS CDK)

透過 AWS CDK,您可以使用熟悉的程式設計語言定義無伺服器基礎設施,例如 TypeScript、Python、Java、C#/。Net 或 Go。您可以使用迴圈和條件等程式設計建構來定義基礎設施,並 AWS CDK 產生用於部署的 AWS CloudFormation 範本。您可以使用 AWS SAMCLI 在本機測試和偵錯使用 建立的應用程式 AWS CDK。若要進一步了解,請參閱在本機測試 CDK 應用程式

比較無伺服器應用程式的 IaC 工具

為無伺服器應用程式選擇 IaC 工具時,請考慮團隊的偏好設定、專案需求和現有的工作流程。下表比較無伺服器開發的 AWS IaC 工具的主要特性:

工具

主要用途

最適合

使用 AWS SAM

何時選擇

AWS CloudFormation

管理複雜的 AWS 基礎設施

需要詳細控制 AWS 資源的應用程式

AWS SAM 範本在部署期間轉換為 AWS CloudFormation 範本

用於精細控制非伺服器資源

AWS SAM

無伺服器應用程式開發

使用 Lambda 建置無伺服器應用程式的團隊

原生功能

主要專注於具有 Lambda 函數、API Gateway APIs 和其他無伺服器資源的無伺服器架構時

AWS CDK

使用程式設計語言的基礎設施定義

團隊偏好類型語言和程式碼優先方法

產生 AWS SAM 範本並使用 AWS SAMCLI 進行測試

當您需要程式設計基礎設施定義或複雜的資源組態邏輯時

注意

雖然本指南著重於 AWS原生 IaC 工具,但 Terraform 是另一個常用的 IaC 解決方案,可用於定義無伺服器應用程式。 AWS SAMCLI 支援本機測試 Terraform 中定義的 Lambda 函數。如需詳細資訊,請參閱AWS SAMCLITerraform 支援

進一步了解