首页 文章

Azure - 使用ARM模板交换 生产环境 和暂存插槽

提问于
浏览
4

我正在使用ARM模板来部署 Cloud 服务 . 部署到临时插槽后,我将其激活,从而触发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/ / resourceGroups / /providers/Microsoft.ClassicCompute/domainNames/ / swap

但是我无法让它在模板中工作,因为所有的动作总是 type/name ,而这里我只有类型 .

1 回答

  • -1

    如果您只有两个部署插槽并且遵守标准命名约定,那么这应该是可以实现的,因为您只需在使用Production插槽切换时提供源插槽名称 .

    如果您有两个以上的部署插槽和/或如果您没有遵守命名约定,那么您将无法生成一个硬编码的ARM模板来进行交换 . 当然需要注意的是,如果您确实知道您的插槽被调用了什么,您可以简单地对其进行参数化,为您提供一个通用插槽交换模板 .

相关问题