本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
基礎設施即程式碼 (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 支援。
進一步了解
-
若要進一步了解 上的 DevOps 實務 AWS,請參閱 上的 DevOps 簡介 AWS
-
如需搭配不同 IaC 工具使用 Lambda 的資訊,請參閱搭配基礎設施做為程式碼使用 Lambda (IaC)