Azure functions 将AzureFunctions部署到同一ARM模板中新创建的AppService时出现问题

Azure 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函

我正在开发一个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模板和MSDeploy

{
        "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我们找到了这个错误的解决方案,或者我猜是一个解决方法