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"