解决创建、删除或还原 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 资源管理器模板,请参阅 Azure/azure-quickstart-templates。
- 还可以更新现有 Functions 应用以指向新的安全存储帐户。 有关详细信息,请参阅将存储帐户限制在虚拟网络中。
跨不同的托管计划迁移 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 门户中的错误消息:
- 选择“资源组”>“部署” 。
- 共享失败的任务关联 ID。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。