Azure DevOps - сине-зеленое развертывание Azure Spring Cloud не приводит к производственному развертыванию

У меня странная проблема с развертыванием Azure Spring Cloud через Azure задачу DevOps иAzureSpringCloud@0 .

Я пытаюсь настроить сине-зеленое развертывание с этой задачей. У меня сцена синий и зеленый цвет . Если моя задача Azure DevOps развертывается синим цветом, все кажется нормальным на портале Azure, но если моя задача развертывается зеленым цветом, в соответствии с Azure производственное развертывание не выполняется.

Это результат выполнения задачи Azure DevOps:

Установка активного развертывания в приложении my-project на синий

Это предупреждение на портале Azure:

У этого приложения нет производственного развертывания. Вы можете настроить производственное развертывание на панели Deployments.

А это выглядит так:

С помощью такой команды Azure CLI ...

список развертываний приложений az spring-cloud ...

... Я получаю JSON с обоими развертываниями, но оба неактивны.

      [
  {
    "id": "/.../deployments/blue",
    "name": "blue",
    "properties": {
      "active": false,
      "status": "Running"
    }
  },
  {
    "id": "/.../deployments/green",
    "name": "green",
    "properties": {
      "active": false,
      "status": "Running"
    }
  }
]

Вот как я настраиваю задачу в Azure DevOps:

      - task: AzureSpringCloud@0
  inputs:
    azureSubscription: 'My-Subscription'
    Action: 'Deploy'
    AzureSpringCloud: my-spring-cloud
    AppName: my-project
    UseStagingDeployment: true
    Package: $(Pipeline.Workspace)/my-java-app.jar
    RuntimeVersion: Java_8

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: 'My-Subscription'
    Action: 'Set Production'
    AzureSpringCloud: my-spring-cloud
    AppName: my-project
    UseStagingDeployment: true      

Если я перейду к URL-адресу своего приложения, приложение будет запущено, но я не уверен, на каком этапе. Если я снова запущу конвейер Azure DevOps, он узнает, что зеленый в настоящее время находится в производстве, и переключится на синий, но я не знаю, откуда он получает эту информацию.

Это известная проблема или я что-то делаю не так?

1 ответ

Что касается этой проблемы, я заметил, что у вас есть два промежуточных развертывания, а задача devops только пытается указать развертывание по аргументу.UseStagingDeployment: true. Я думаю, что задача не может указать правильное промежуточное развертывание, когда приложение имеет два промежуточных развертывания. Поэтому вам лучше явно указать развертываниеName. например

      - task: AzureSpringCloud@0
  inputs:
    azureSubscription: 'My-Subscription'
    Action: 'Set Production'
    AzureSpringCloud: my-spring-cloud
    AppName: my-project
    DeploymentName: "blue" 
Другие вопросы по тегам