我希望你能帮助我解决以下问题。
我们希望在一些子应用程序/虚拟应用程序上部署Azure Web App。然而,我们在互联网上研究的内容并不是很精确,但我怀疑这不能使用ARM完成。
我们感谢任何人提供信息,帮助我们实现目标,或者使用此技术是不可能的,或者它是Azure错误。
我们尝试将“IIS Web应用程序名称”设置为
1.“[parameters('appName')]/subapp1”
1.“/subapp1”
1.“subapp1”
1.“默认网站/子应用程序1”
我们使用扩展:
- MSDeploy,
- addOnPackages和
- ZipDeploy
结果总是相同的,文件仍保留在Web应用程序的根目录中。
这是我们正在使用的ARM模板:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"metadata": {
"description": "Location of resources"
},
"defaultValue": "[resourceGroup().location]"
},
"_artifactsLocation": {
"type": "string",
"metadata": {
"description": "The base URI where artifacts required by this template are located including a trailing '/'"
},
"defaultValue": "[deployment().properties.templateLink.uri]"
},
"_artifactsLocationSasToken": {
"type": "securestring",
"metadata": {
"description": "The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated. Use the defaultValue if the staging location is not secured."
},
"defaultValue": ""
},
"appName": {
"type": "string",
"metadata": {
"description": "App Name"
},
"defaultValue": "testapp123"
}
},
"variables": {
"existingPlanAppServiceName": "[concat('PlanAppService-',uniqueString(resourceGroup().id))]"
},
"resources": [
{
"apiVersion": "2022-03-01",
"name": "[variables('existingPlanAppServiceName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"kind": "",
"tags": {},
"dependsOn": [],
"properties": {
"name": "[variables('existingPlanAppServiceName')]",
"workerSize": "18",
"workerSizeId": "18",
"numberOfWorkers": "1",
"zoneRedundant": false
},
"sku": {
"Tier": "Premium0V3",
"Name": "P0V3"
}
},
{
"apiVersion": "2022-03-01",
"name": "[parameters('appName')]",
"type": "Microsoft.Web/sites",
"location": "[parameters('location')]",
"tags": {},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('existingPlanAppServiceName'))]"
],
"properties": {
"name": "[parameters('appName')]",
"siteConfig": {
"metadata": [
{
"name": "CURRENT_STACK",
"value": "dotnet"
}
],
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
},
{
"virtualPath": "/subapp1",
"physicalPath": "site\\wwwroot\\subapp1",
"preloadEnabled": true
}
],
"phpVersion": "OFF",
"netFrameworkVersion": "v4.0",
"alwaysOn": true,
"ftpsState": "Disabled",
"use32BitWorkerProcess": false,
"http20Enabled": true,
"websiteTimeZone": "SA Pacific Standard Time"
},
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('existingPlanAppServiceName'))]",
"clientAffinityEnabled": false,
"httpsOnly": true,
"publicNetworkAccess": "Enabled"
},
"resources": [
{
"type": "Microsoft.Web/sites/extensions",
"apiVersion": "2022-03-01",
"name": "[concat(parameters('appName'), '/MSDeploy')]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('appName'))]"
],
"properties": {
"packageUri": "[uri(concat(parameters('_artifactsLocation'),'filesApp.zip'),parameters('_artifactsLocationSasToken'))]",
"dbType": "None",
"connectionString": "",
"appOffline": true,
"setParameters": {
"IIS Web Application Name": "[concat(parameters('appName'),'/subapp1')]"
}
}
}
]
}
]
}
字符串
非常感谢您的帮助提前。
2条答案
按热度按时间daupos2t1#
根据您的要求,您的代码对我来说看起来很好。问题可能是由于部署资源时的
"IIS Web Application Name"
。您可以尝试直接在
siteconfig
下的Microsoft.Web/sites
资源中设置虚拟应用程序路径,而不是依赖于MSDeploy
扩展的"IIS Web Application Name"
参数。字符串
因此,在
"virtualApplications"
数组中显式定义虚拟应用程序可确保在部署后将文件部署到正确的位置。的数据
mcvgt66p2#
默认情况下,MSDeploy的功能是部署到单个应用程序,它不理解子应用程序的概念。为了部署到root以外的路径,您需要在站点扩展资源下添加
custom deployment script
属性。@Jahvani的回答,谢谢!