【发布时间】:2021-02-26 08:48:11
【问题描述】:
早上好。 我正在尝试使用 CLI 对我的 C# lambda 项目的 AWS lambda 进行自动部署。 使用 dotnet 3.1,我将执行以下操作。
dotnet lambda deploy-serverless --configuration debug --stack-name custom-webhook-dev --s3-bucket custom-deployment-dev --template serverless.dev.template --region us-east-1 --s3-prefix custom-salesforce-integration-
这将负责我的部署到我的开发环境,而我的生产部署将类似但将 dev 替换为 prod 和 debug 以进行发布。
但是在 5.0 中我遇到了以下问题:
Amazon Lambda Tools for .NET Core applications (3.2.3)
Project Home: https://github.com/aws/aws-extensions-for-dotnet-cli, https://github.com/aws/aws-lambda-dotnet
Processing CloudFormation resource AspNetCoreFunction
Initiate packaging of . for resource AspNetCoreFunction
Unknown error executing command: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary2.FindEntry(TKey key) at System.Collections.Generic.Dictionary2.TryGetValue(TKey key, TValue& value)
at Amazon.Lambda.Tools.LambdaUtilities.DetermineTargetFrameworkFromLambdaRuntime(String lambdaRuntime, String projectLocation) in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Lambda.Tools\LambdaUtilities.cs:line 38
at Amazon.Lambda.Tools.TemplateProcessor.TemplateProcessorManager.PackageDotnetProjectAsync(IUpdateResourceField field, String location) in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Lambda.Tools\TemplateProcessor\TemplateProcessorManager.cs:line 223
at Amazon.Lambda.Tools.TemplateProcessor.TemplateProcessorManager.ProcessUpdatableResourceAsync(String templateDirectory, IUpdateResourceField field) in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Lambda.Tools\TemplateProcessor\TemplateProcessorManager.cs:line 167
at Amazon.Lambda.Tools.TemplateProcessor.TemplateProcessorManager.TransformTemplateAsync(String templateDirectory, String templateBody) in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Lambda.Tools\TemplateProcessor\TemplateProcessorManager.cs:line 95
at Amazon.Lambda.Tools.Commands.DeployServerlessCommand.PerformActionAsync() in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Lambda.Tools\Commands\DeployServerlessCommand.cs:line 167
at Amazon.Common.DotNetCli.Tools.Commands.BaseCommand1.ExecuteAsync() in C:\codebuild\tmp\output\src109826539\src\src\Amazon.Common.DotNetCli.Tools\Commands\BaseCommand.cs:line 44
DetermineTargetFrameworkFromLambdaRuntime 似乎缺少键
这应该是什么值?我要做的只是自动部署到我的项目的 lambda,理想情况下,我希望一个文件部署到 dev,一个文件部署到生产。
它缺少的一件事是 3.1 中的“运行时”设置。 我应该在这个文件或命令行上添加它吗?如果是,它应该是什么值?
3.1 模板上的值为 "Runtime": "dotnetcore3.1", 提前谢谢你。
【问题讨论】:
-
您确定 AWS lambda 已经支持 .NET 5?
标签: c# amazon-web-services aws-lambda aws-cli dotnet-cli