解决创建、删除或还原 Azure 函数应用时出现的问题

本文列出了创建、删除或还原 Azure 函数应用时可能出现的一些常见问题,以及解决问题的步骤。

创建函数应用

Azure 函数应用使用 Azure 应用服务基础结构。 可以使用以下方法创建 Azure 函数应用:

你也可以在通过 Visual Studio 或 Visual Studio Code 部署函数项目时创建应用。

Azure Functions 使用的Azure 存储帐户的注意事项

创建函数应用时,可创建或链接到支持 blob、队列和表存储的常规用途 Azure 存储帐户。 Azure Functions 依赖于 Azure 存储来执行管理触发器和记录函数执行等操作。 有关详细信息,请参阅 Azure Functions 的存储注意事项

  • 确保你有权创建存储帐户和其他资源。 不能有基于角色的访问控制 (RBAC)、策略或范围违规。
  • 将托管标识用于 Azure 存储帐户连接字符串(仅适用于 AzureWebJobsStorage)。 有关详细信息,请参阅使用标识连接到主机存储(预览版)

保护 Azure Functions 使用的Azure 存储帐户

可以创建 Azure 函数应用和受专用终结点保护的新存储帐户。 在支持虚拟网络集成的计划中托管函数应用。

跨不同的托管计划迁移 Azure 函数应用

在 Windows 中,可以使用 Azure CLI 命令在消耗计划和高级计划之间迁移函数应用,反之亦然。 有关详细信息,请参阅规划迁移

  • 不支持直接在专用(应用服务)计划与消耗/高级计划之间来回迁移,因为事件驱动的缩放功能和无服务器功能的使用因托管计划而异。

注意

Linux 不支持迁移托管计划。

查看托管计划(消耗、高级、专用)产品/服务,如虚拟网络连接、超时、计费等。 有关详细信息,请参阅 Azure Functions 托管选项

解决错误“此区域包含订阅的 0 个实例配额。 请尝试选择其他区域或 SKU。”

如果在特定区域中一直遇到资源创建问题,请尝试在业务允许的情况下在地理配对区域中创建资源。 例如,“美国西部 2”和“美国中西部”是配对区域 。 东亚(香港特别行政区)东南亚(新加坡) 也是配对区域。

有关详细信息,请参阅:

解决错误“此资源组中不允许定价层”或“SkuNotAllowedForResourceGroup”

建议在新资源组中创建计划。 不同的 SKU 需要唯一的计算机。 在资源组中创建应用时,该应用会映射并分配到资源池。 如果在该资源组中创建另一计划并且映射的池缺少所需的资源,则会出现错误。

有关详细信息,请参阅 在现有资源组中创建函数应用。

创建函数应用内容文件共享失败,并显示:“远程服务器返回错误:(403) 禁止”

对于消耗计划或弹性高级计划中的函数应用,在存储帐户上创建文件共享,并使用应用设置WEBSITE_CONTENT_SHARE进行引用。 由于存储帐户具有防火墙、专用终结点或其他虚拟网络安全限制(例如网络安全组(NSG)规则,因此可能会出现此错误。

要解决该错误,请提前在安全存储帐户上创建一个文件共享并将其配置为 WEBSITE_CONTENT_SHARE。 有关详细信息,请参阅将存储帐户限制在虚拟网络中

用于创建的替代工具

可以使用 Azure CLI、PowerShell 和 Az.Functions等替代工具。 请确保使用最新版本的工具。 如果使用其中一个工具(如Azure 门户)时出现问题,请尝试使用其他工具(例如 Azure CLI)。

为 Windows 和 Linux 设置函数运行时版本

对于 Windows 应用,请在Azure 门户(设置>配置>函数运行时设置>运行时版本)中设置运行时版本,或创建应用程序设置FUNCTIONS_EXTENSION_VERSION并将其设置为主要运行时版本,例如,~4设置为目标 V4。 有关详细信息,请参阅如何面向 Azure Functions 运行时版本。 通过将 FUNCTIONS_EXTENSION_VERSION 设置为次要版本,将版本固定为基于主机版本的次要版本。 另请参阅 Azure Functions 主机版本

对于 Linux 应用,请参阅 Linux 上的手动版本更新

排查 HTTP 429 错误

限制发生在两个级别:Azure 资源管理器和资源提供程序(Microsoft.Web)。 该级别取决于订阅类型和托管计划。 有关详细信息,请参阅:

注意

如果问题不常出现,请在一段时间后等待并重试,以查看问题是否得到解决。 如果问题频繁出现,可以购买其他订阅或更新托管计划以解决此错误。

删除或还原函数应用

从 Visual Studio 发布代码并使用WEBSITE_RUN_FROM_PACKAGE后,Azure 门户将函数设置为只读,以防止在门户中编辑预编译的资产。 若要删除函数应用中的函数,请从代码中删除不需要的函数,在配置文件设置中启用 “在目标 位置删除其他文件”选项,然后重新部署代码。

不支持还原托管在消耗计划或弹性高级计划的 Azure 函数应用。 如果你有函数应用内容或可以访问存储帐户,请更新应用设置或创建新的函数应用,并使用该内容。 如果不对内容存储使用Azure 文件存储,可以在专用应用服务计划上还原 Azure 函数应用。

有关详细信息,请参阅:还原(取消删除)已删除的 Web 应用

请确保有足够的权限删除 Azure 函数应用。 不能有基于角色的访问控制 (RBAC)、策略或范围违规。

在联系Microsoft支持人员之前收集数据

如果函数应用创建或删除失败,在创建支持票证时收集和共享以下数据:

  • Azure 门户:重现问题并捕获浏览器跟踪

  • Azure CLI 或 Azure PowerShell:共享报告错误和详细日志记录的命令。

  • 对于 Azure 资源管理器部署失败,请查找Azure 门户中的错误消息:

    1. 选择“资源组”>“部署” 。
    2. 共享失败的任务关联 ID。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区