我在通过 Azure DevOps 和AzureSpringCloud@0任务部署 Azure Spring Cloud 时遇到了一个奇怪的问题。
我尝试使用此任务设置蓝/绿部署。我有舞台蓝色和舞台绿色。如果我的 Azure DevOps 任务部署为蓝色,Azure 门户中的一切似乎都正常,但如果我的任务部署为绿色,则根据 Azure 没有生产部署。
这是 Azure DevOps 任务的输出:
将应用程序 my-project 上的活动部署设置为蓝色
这是 Azure 门户中的警告:
此应用程序没有生产部署。您可以在部署面板中设置生产部署。
它看起来像这样:
使用这样的 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 管道,它会知道绿色当前正在生产中并切换为蓝色,但我不知道它从哪里获取此信息。
这是一个已知问题还是我做错了什么?