【发布时间】:2018-04-03 18:31:37
【问题描述】:
我正在开发一个 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 函数将被部署。我不确定这个过程发生了什么,因为两个部署都被认为是成功的。
这是我使用 MSDeploy 的 azure functions arm 模板
{
"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 *****
}
}
]
}
【问题讨论】:
-
那么您面临的问题是什么?
-
第一次部署不会部署天蓝色功能。我想尝试制作一个部署了 azure 功能的新资源。
-
那么您已经将代码上传到 blob 存储了吗?
-
是的。它在一个 zip 文件中,正如它所期望的那样。 uri 也很好,我已经对其进行了测试,并且能够下载我的函数 zip 文件。就像问题中所说的那样。对同一资源组的第二次部署将部署这些功能。只是第一次部署由于某种原因没有部署功能
-
@Thomas 我们能够找到解决此错误的方法,或者我想可以解决
标签: azure-functions msdeploy arm-template