Конвейер сборки Azure DevOps CICD завершается с ошибкой: указанная команда или файл не найдены

#build #aws-lambda #azure-devops #azure-pipelines #aws-api-gateway

#сборка #aws-lambda #azure-devops #azure-конвейеры #aws-api-gateway

Вопрос:

У меня есть конвейер сборки CICD в Azure Devops для создания бессерверного приложения.NET Core AWS API Gateway. Конвейер использует размещенную Windows 2019. Завершающийся ошибкой шаг:

 steps:
- task: AmazonWebServices.aws-vsts-tools.LambdaNETCoreDeploy.LambdaNETCoreDeploy@1
  displayName: 'Build solution and generate CloudFormation template. '
  inputs:
    awsCredentials: 'AWS - Development (Infrastructure)'
    regionName: 'ap-southeast-2'
    command: deployServerless
    packageOnly: true
    packageOutputFile: '$(Build.ArtifactStagingDirectory)serverless-output.yaml'
    lambdaProjectPath: testapi/LCSApi.csproj
    s3Bucket: 'api-dev-xxxxxxxx-s3'
    s3Prefix: 'azure_devops_builds/lcs/'
    additionalArgs: '-template serverless.template '
  

Все, что я получаю из ошибки, это следующее:

 Beginning Serverless Deployment
Performing package-only build of serverless application, output template will be placed in D:a1aserverless-output.yaml
"C:Program Filesdotnetdotnet.exe" lambda package-ci -ot D:a1aserverless-output.yaml --region ap-southeast-2 --s3-bucket api-dev-xxxxxx-s3 --s3-prefix azure_devops_builds/lcs/ --disable-interactive true -template serverless.template
Could not execute because the specified command or file was not found.
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET Core program, but dotnet-lambda does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

##[error]Error: The process 'C:Program Filesdotnetdotnet.exe' failed with exit code 1
Finishing: Build solution and generate CloudFormation template.
  

Однако, если я повторно запущу конвейер сразу после этого сбоя, он будет работать нормально. Кроме того, не всегда происходит сбой с этой ошибкой. Примерно в 70-80% случаев конвейер работает нормально. Что это может быть и как я могу это исправить?

Комментарии:

1. Пожалуйста, установите переменной system.debug значение True, чтобы проверить, есть ли дополнительная информация в журнале. Кроме того, когда у вас возникла эта проблема? Сталкивались ли вы с такой проблемой раньше?

2. Какие-либо обновления по этой проблеме? Помогает ли вам предложение Кшиштофа Мадея?

3. ПРИВЕТ, Сиси, у меня уже была эта проблема раньше, она носит периодический характер. Сегодня я добавил предложение Кшиштофа и буду следить.

4. При любых обновлениях, пожалуйста, дайте нам знать. Если предложение Кшиштофа Мадея поможет вам, вы можете принять его как ответ , это может быть полезно для других участников сообщества, читающих эту тему.

5. Как продвигается ваша проблема?

Ответ №1:

Можете ли вы попробовать добавить это перед своим шагом:

 powershell: |
   dotnet tool install --global Amazon.Lambda.Tools --version 3.1.1
   dotnet tool update -g Amazon.Lambda.Tools