Azure Functions ARM模板部署删除功能

eoi*_*lan 8 azure azure-resource-manager azure-devops azure-functions

我有一个用于部署Azure Function应用程序的ARM模板(包括在下面)。我用以下方法部署它:

az group deployment create --resource-group my-group --template-file my-function-app.json
Run Code Online (Sandbox Code Playgroud)

这可行,然后我可以使用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": {}
}
Run Code Online (Sandbox Code Playgroud)

cur*_*der 7

您是否正在以包形式部署功能?如果是这样,请确保在模板中设置此设置,因为在重新部署时将删除该设置:

{“名称”:“ WEBSITE_RUN_FROM_PACKAGE”,“值”:“ 1”}

  • 我最近遇到了这个问题,它让我困惑为什么我的两个新应用服务(其中一个是 Azure Function)在模板重新部署时丢失了代码。这不是我所期望的行为。这就是答案。 (2认同)

小智 0

您可以尝试“--mode增量”参数,尽管在未提供时这应该是默认值。

  • 那永远不会有帮助:) (3认同)