如何在不带参数的情况下运行“dotnet lambda deploy-serverless”命令?

T. *_*yts 6 .net amazon-web-services jenkins aws-cli aws-lambda

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

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

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

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-clihttps://github.com/aws/aws-lambda-dotnet 输入 CloudFormation 堆栈名称:(AWS 无服务器应用程序的 CloudFormation 堆栈名称) 输入 S3 存储桶:(用于上传构建输出的 S3 存储桶) Enter CloudFormation 模板:(CloudFormation 模板的路径)输入 AWS 区域:(连接 AWS 服务的区域,如果未设置区域将从环境中检测。)无法确定 AWS 区域。配置默认区域或使用 --region 选项。

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

Kas*_*ake 4

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

dotnet lambda deploy-serverless --stack-name replace-your-stack-name-here --s3-bucket replace-s3-bucket-name-here --region replace-with-region
Run Code Online (Sandbox Code Playgroud)

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