gpt4 book ai didi

azure-functions - 将 Azure Functions 部署到同一 ARM 模板中新创建的应用服务

转载 作者:行者123 更新时间:2023-12-02 01:02:32 24 4
gpt4 key购买 nike

我正在使用 ARM 模板来部署 azure 函数。我的步骤如下

1) 将 arm 模板推送到 blob 存储并获取 SAS uri2) 将 azure 函数推送到 blob 存储并获取 SAS uri3) 运行 powershell 命令 New-AzureRmResourceGroup 创建我的新资源组4) 运行 powershell 命令 New-AzureRmResourceGroupDeployment 通过 ARM 模板部署我的应用程序。

在我的 Arm 模板中,我使用 MSDeploy 的嵌套模板通过 zip 文件发送我的 azure 函数。

第一次部署将创建我的所有资源,但不会部署我的 Azure 功能。

如果我使用相同的 arm 模板通过相同的过程部署到我新创建的资源和资源组,我的 azure 函数将被部署。我不确定这个过程发生了什么,因为这两个部署都被认为是成功的。

这是我的带有 MSDeploy 的 azure 函数 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 *****
}
}
]
}

最佳答案

事实证明,将您的 appSettings 置于不同的 ARM 模板中会导致出现首次运行时未部署 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"
}
]
}
}
}

我试图避免这里解释的死锁问题 https://blogs.msdn.microsoft.com/hosamshobak/2016/05/26/arm-template-msdeploy-race-condition-issue/

但是由于这些步骤,我们看到了这个错误。我在部署时没有遇到过这个死锁问题,但它仍然有可能出现,因为我不知道死锁问题是否已通过 MSDeploy 解决。

关于azure-functions - 将 Azure Functions 部署到同一 ARM 模板中新创建的应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com