如何建置 C# .NET 的 Lambda 部署套件?

2 分的閱讀內容
0

我在 C# 中建立了一個 AWS Lambda 函數部署套件。但當我嘗試叫用該函數時,Lambda 傳回以下其中一個錯誤:「找不到模組」、「無法載入模組」或「找不到類別」。 如何對此問題進行疑難排解?

簡短描述

如果 C# Lambda 函數傳回下列任一錯誤,則函數的部署套件資料夾結構並未正確設定:

  • 找不到模組
  • 無法載入模組
  • 找不到類別

若要解決此問題,您必須建置資料夾結構正確的 C# Lambda 函數部署套件。共有兩種方法可以建置並部署資料夾結構正確的 C# Lambda 函數部署套件:

解決方法

使用 .NET Core CLI 和 Amazon.Lambda.Tools 延伸模組

1.    安裝預設的 Lambda .NET 範本,然後執行以下命令將 Amazon.Lambda.Tools 延伸模組新增到 .NET Core CLI

dotnet new -i 'Amazon.Lambda.Templates::*'

2.    使用您已安裝的範本之一建立新的 Lambda 函數,或將 Amazon.Lambda.Tools 延伸模組新增到現有的專案。

使用您已安裝的範本之一建立新的 Lambda 函數

從 Lambda 函數的專案根目錄中的 .NET Core CLI,執行以下命令:

**重要事項:**將 {function-name} 換成您的函數名稱。將 {aws-region} 換成您要您的函數所在的 AWS 區域。

dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}

將 Amazon.Lambda.Tools 延伸模組新增到現有的專案

從 Lambda 函數的專案根目錄中的 .NET Core CLI,執行以下命令:

dotnet tool install -g Amazon.Lambda.Tools

**注意:**Amazon.Lambda.Tools 延伸模組將提示您提供任何缺少的必要參數。

3.    執行以下命令,以下載部署套件的相依性:

**重要事項:**將 {your-function-directory} 換成您的函數目錄的名稱。

cd {your-function-directory}
dotnet restore

注意:如果出現不相容錯誤,請確定您使用相容於 Lambda 工具的 .NET Core 版本。若要下載舊版的 .NET Core,請參閱 .NET Download Archives 網站

4.    執行以下命令,以建置您的 Lambda 部署套件:

dotnet lambda deploy-function

**注意:**或者,您可以從頭開始建置 Lambda 部署套件,然後分開部署該套件。如需說明,請參閱使用 .NET Core CLI 部署 AWS Lambda 專案

5.    .NET Core CLI 會提示您輸入函數名稱,並指派 AWS 身分與存取管理 (IAM) 角色給函數。輸入函數的名稱,並指派 IAM 角色給函數。然後將建立您的函數。

使用 AWS Toolkit for Visual Studio

1.    下載並安裝 AWS Toolkit for Visual Studio

2.    建立並建置 AWS Lambda Project (.NET Core) 專案。如需說明,請參閱 AWS Lambda 開發人員指南中的使用 AWS Toolkit for Visual Studio 中的 AWS Lambda 範本AWS Toolkit for Visual Studio

**重要事項:**請確定函數處理常式的簽章採用以下格式:

ASSEMBLY::TYPE::METHOD

若要確認函數的格式正確,請檢閱函數 src/{function-name} 目錄下方的檔案。如需詳細資訊,請參閱 .NET Core CLIC# 中的 AWS Lambda 函數處理常式


AWS 官方
AWS 官方已更新 2 年前