

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

# 使用 .zip 封存檔建置和部署 C＃ Lambda 函數
<a name="csharp-package"></a>

.NET 部署套件 (.zip 封存檔) 包含函數的編譯組件，及其所有的組件相依項。該套件也包含 `proj.deps.json` 檔案。這會對 .NET 執行期發出訊號，告知函數的所有相依項和用於設定執行期的 `proj.runtimeconfig.json` 檔案。

若要部署個別 Lambda 函數，您可以使用 `Amazon.Lambda.Tools` .NET Lambda Global CLI。若使用 `dotnet lambda deploy-function` 命令，系統會自動建立 .zip 部署套件並部署至 Lambda。不過，我們建議您使用 AWS Serverless Application Model (AWS SAM) 或 AWS Cloud Development Kit (AWS CDK)，將 .NET 應用程式部署到 AWS。

無伺服器應用程式通常包含 Lambda 函數和其他受管 AWS 服務的組合，搭配使用以執行特定業務工作。AWS SAM 和 AWS CDK 簡化了透過其他 AWS 服務大規模建置和部署 Lambda 函數的作業。[AWS SAM 範本規範](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html)提供了簡單而清晰的語法，用於描述構成無伺服器應用程式的 Lambda 函數、API、許可、組態和其他 AWS 資源。您可以使用 [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html) 將雲端基礎架構定義為程式碼，協助您運用 .NET 等現代程式設計語言，在雲端建置可靠、可擴展且經濟實惠的應用程式。AWS CDK 和 AWS SAM 都是使用 .NET Lambda Global CLI 來封裝函數。

雖然可以[使用 .NET Core CLI](csharp-package-cli.md#csharp-layers)，以 C\$1 函數使用 [Lambda 層](chapter-layers.md)，但建議不要這麼做。使用層的 C\$1 函數會在 [初始化階段](lambda-runtime-environment.md#runtimes-lifecycle-ib) 中手動載入共用組件，這可能會增加冷啟動時間。相反，在編譯時納入所有共用程式碼，避免在執行時期載入組件對效能產生影響。

如需使用 AWS SAM、AWS CDK 和 .NET Lambda Global CLI 建置和部署 .NET Lambda 函數的相關說明，請參閱以下各節。

**Topics**
+ [使用 .NET Lambda Global CLI](csharp-package-cli.md)
+ [使用 AWS SAM 部署 C\$1 Lambda 函數](csharp-package-sam.md)
+ [使用 AWS CDK 部署 C\$1 Lambda 函數](csharp-package-cdk.md)
+ [部署 ASP.NET 應用程式](csharp-package-asp.md)