我有一个用于部署Azure Function应用程序的ARM模板(包括在下面)。我将其部署为:
az group deployment create --resource-group my-group --template-file my-function-app.json
这有效,然后我可以使用VS Code插件或Azure Functions Core工具成功部署我的功能。
但是,如果我随后重新部署ARM模板(例如,更新应用程序设置),则会丢失我的功能,需要再次重新部署它们。这是预期的行为吗?我在部署例如通过ARM模板的Web应用程序。为功能应用程序部署ARM模板以保留我已部署的功能时,我可以做些具体的事情吗?
my-function-app.json:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
...
},
"variables": {
...
},
"resources": [
{
"apiVersion": "2015-08-01",
"type": "Microsoft.Web/sites",
"name": "[variables('collectorFunctionAppName')]",
"location": "[parameters('location')]",
"kind": "functionapp",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]",
"siteConfig": {
"appSettings": [
{
...
}
]
}
}
}
],
"outputs": {}
}
答案 0 :(得分:3)
您是否将功能作为软件包进行部署?如果是这样,请确保您在模板中设置了此设置,因为在重新部署时将删除该设置:
{ “名称”:“ WEBSITE_RUN_FROM_PACKAGE”, “值”:“ 1” }
答案 1 :(得分:0)
您可以尝试使用“ --mode增量”参数,尽管该参数在未提供时应为默认值。
答案 2 :(得分:-1)
是的,应该是预期的行为。
ARM模板是声明性部署,这意味着您每次部署它都会用新的模板信息覆盖您拥有的所有内容。模板应始终包含您需要的所有内容。