Azure functions 将AzureFunctions部署到同一ARM模板中新创建的AppService时出现问题
我正在开发一个ARM模板来部署azure功能。我的步骤如下 1) 将arm模板推送到blob存储并获取SAS uri 2) 将azure函数推送到blob存储并获取SAS uri 3) 运行powershell命令New AzureRmResourceGroup以创建我的新资源组 4) 运行powershell命令New-AzureRmResourceGroupDeployment以通过ARM模板部署我的应用程序 在我的Arm模板中,我使用MSDeploy的嵌套模板通过zip文件发送azure函数 第一次部署将创建我的所有资源,但不会部署我的Azure功能 如果我使用相同的arm模板通过相同的流程部署到新创建的资源和资源组,我的azure功能将被部署。我不确定这个过程会发生什么,因为两种部署都被认为是成功的。 这是我的azure功能arm模板和MSDeployAzure functions 将AzureFunctions部署到同一ARM模板中新创建的AppService时出现问题,azure-functions,msdeploy,arm-template,Azure Functions,Msdeploy,Arm Template,我正在开发一个ARM模板来部署azure功能。我的步骤如下 1) 将arm模板推送到blob存储并获取SAS uri 2) 将azure函数推送到blob存储并获取SAS uri 3) 运行powershell命令New AzureRmResourceGroup以创建我的新资源组 4) 运行powershell命令New-AzureRmResourceGroupDeployment以通过ARM模板部署我的应用程序 在我的Arm模板中,我使用MSDeploy的嵌套模板通过zip文件发送azure函
{
"type": "Microsoft.Web/sites",
"apiVersion": "2015-08-01",
"name": "[variables('functionsName')]",
"location": "[resourceGroup().location]",
"kind": "functionapp",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms',variables('hostPlanName'))]",
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageName'))]",
"[resourceId('Microsoft.Insights/components', variables('appInsightsName'))]"
],
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostPlanName'))]",
"name": "[variables('functionsName')]"
},
"resources": [
{
"name": "MSDeploy",
"type": "extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2015-08-01",
"dependsOn": [
"[concat('Microsoft.Web/sites/', variables('functionsName'))]"
],
"properties": {
"packageUri": "[concat(parameters('_artifactsLocation'), parameters('SampleFunctionAppPackageFolder'), '/', parameters('SampleFunctionAppPackageFileName'), parameters('_artifactsLocationSasToken'))]",
}
},
{
"apiVersion": "2016-03-01",
"name": "appsettings",
"type": "config",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('functionsName'))]",
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageName'))]",
"[concat('Microsoft.Web/sites/', variables('functionsName'), '/Extensions/MSDeploy')]"
],
"properties": {
**** App settings removed *****
}
}
]
}
事实证明,在不同的ARM模板中使用appSettings会导致azure功能在第一次运行时无法部署。将AppSettings移动到appFunction ARM模板中,例如
"type": "Microsoft.Web/sites",
"apiVersion": "2015-08-01",
"name": "[variables('functionsName')]",
"location": "[resourceGroup().location]",
"kind": "functionapp",
"identity": {
"type": "SystemAssigned"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms',variables('hostPlanName'))]"
],
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostPlanName'))]",
"name": "[variables('functionsName')]",
"siteConfig": {
"appSettings": [
{
"name": "key1",
"value": "value1"
}
]
}
}
}
我试图避免这里解释的僵局问题
但是我们看到了这些步骤导致的错误。我在部署时没有遇到这个死锁问题,但仍然有可能,因为我不知道死锁问题是否已通过MSDeploy修复。那么您面临的问题是什么?第一次部署不会部署azure功能。我想尝试创建一个部署了azure功能的新资源。那么您已经将代码上载到blob存储?是的。正如它所期望的那样,它在一个zip文件中。uri也很好,我已经测试过了,能够下载我的函数zip文件。就像问题里说的那样。第二次部署到同一资源组将部署这些功能。只是第一次部署并没有为某些应用程序部署功能reason@Thomas我们找到了这个错误的解决方案,或者我猜是一个解决方法