我有时会希望我的站点具有hostNameSslStates属性。我一直试图找出如何在没有单独部署具有hostNameSslState的站点和没有hostNameSslState的站点的情况下进行此操作。
这就是我今天要添加站点的方式,然后添加插槽,配置,证书,角色等,因此总的ARM文件要大得多。
{
"name": "[parameters('appServiceName')]",
"type": "Microsoft.Web/sites",
"apiVersion": "2018-11-01",
"location": "[parameters('location')]",
"tags": {
"displayName": "AppService"
},
"identity": {
"type": "SystemAssigned"
},
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": "[variables('siteConfig')]",
"hostNameSslStates": [
{
"name": "[parameters('websiteCustomDomainName')]",
"sslState": "SniEnabled",
"thumbprint": "[reference(resourceId('Microsoft.Web/certificates', variables('certificateName'))).Thumbprint]",
"toUpdate": true
}
]
}
}
问题是某些应用程序服务没有自定义域,并且不需要hostNameSslStates属性,并且我无法在模板中找到解决方案。我可以使用一个名为“ hostNameSslState”的变量,但无法调节该属性。如果我可以将hostNameSslStates指定为单独的资源,则可以解决我的问题,但我无法弄清楚。
您可以这样做:
"hostNameSslStates": "[if(something, variables('sslStuff'), json('[]'))]"
然后在您的变量中定义sslStuff
:
"sslStuff": [
{
"name": "[parameters('websiteCustomDomainName')]",
"sslState": "SniEnabled",
"thumbprint": "[reference(resourceId('Microsoft.Web/certificates', variables('certificateName'))).Thumbprint]",
"toUpdate": true
}
}