我正在使用ARM模板部署云服务。一旦部署到临时插槽,我就会激活它,从而触发VIP交换。
当我想回滚并切换升级和生产阶段时,我再次激活分段。
问题是它需要我知道暂存插槽中的部署标签是什么。
"resources" : [{
"apiVersion" : "2014-06-01",
"type" : "Microsoft.ClassicCompute/domainNames",
"name" : "[parameters('serviceDomainName')]",
"location" : "[variables('resourceLocation')]",
"resources" : [{
"apiVersion" : "2015-12-01",
"name" : "[parameters('deploymentLabel')]",
"type" : "active",
"dependsOn" : [
"[resourceId('Microsoft.ClassicCompute/domainNames', parameters('serviceDomainName'))]",
],
"properties" : {}
}
]
}
]
有没有办法在不知道部署标签的情况下强制进行交换?
文件谈到使用: https://management.azure.com/subscriptions/ {subscriptionId} / resourceGroups / {资源组} /providers/Microsoft.ClassicCompute/domainNames/ {则domainName} /交换
但我无法在模板中运行,因为所有操作始终都是type/name
,而且我只有类型。
答案 0 :(得分:-1)
如果您只有两个部署插槽并且遵守标准命名约定,那么这应该是可以实现的,因为您只需要在使用生产插槽切换时提供源插槽名称。
如果您有两个以上的部署位置和/或如果您没有遵守命名约定,那么您将无法生成一个硬编码的ARM模板来执行交换。当然需要注意的是,如果您确实知道您的插槽被调用了什么,您可以简单地对其进行参数化,为您提供一个通用插槽交换模板。