首页 > 解决方案 > 如何在没有参数的情况下运行“dotnet lambda deploy-serverless”命令?

问题描述

晚上好。问题是关于dotnet lambda deploy-serverless指挥的。此命令用于使用 AWS CloudFormation 将 .Net 应用程序部署到 AWS Lambda 服务。当我尝试在 Jenkins 管道中运行此命令时:

stage('Update AWS lambda') {
            steps {
                bat "cd MyFinance.Api"
                bat "dotnet lambda deploy-serverless"
            }
        } 

我收到有关缺少参数的错误:

C:\Program Files (x86)\Jenkins\workspace\MyFinanceApiPipeline>dotnet lambda deploy-serverless Amazon Lambda Tools for .NET Core applications (4.1.0) 项目主页: https ://github.com/aws/aws-extensions- for-dotnet-cli , https://github.com/aws/aws-lambda-dotnet 输入 CloudFormation 堆栈名称:(AWS 无服务器应用程序的 CloudFormation 堆栈名称)输入 S3 存储桶:(S3 存储桶以上传构建输出)输入CloudFormation 模板:(CloudFormation 模板的路径)输入 AWS 区域:(连接到 AWS 服务的区域,如果未设置,将从环境中检测到区域。)无法确定 AWS 区域。配置默认区域或使用 --region 选项。

但是,如果我在我的项目文件夹中通过 PowerShell 运行此命令,一切正常。Near是命令执行结果的截图。 在 PowerShell 中成功执行命令 那么,如何在没有参数的情况下在 Jenkins 管道中运行它(就像我通过 PowerShell 所做的那样)?先感谢您。

标签: .netamazon-web-servicesjenkinsaws-lambdaaws-cli

解决方案


当您不传递那些请求的参数时,就会发生这种情况。您可以将这些作为参数传递给命令

dotnet lambda deploy-serverless --stack-name replace-your-stack-name-here --s3-bucket replace-s3-bucket-name-here --region replace-with-region

在运行此命令之前,您必须浏览拥有“serverless.template”文件的文件夹。或者您可以选择使用参数-t将路径传递给模板文件


推荐阅读