Compartir a través de

AZFD0013:配置的运行时与已部署的函数应用项目中找到的辅助角色运行时元数据不匹配

当函数应用具有指定语言堆栈的 FUNCTIONS_WORKER_RUNTIME 设置,但将其他堆栈的有效负载部署到该堆栈时,将发生此事件。

事件 ID AZFD0013
严重性 警告或错误

事件描述

应用程序设置 FUNCTIONS_WORKER_RUNTIME 指示函数应用的运行语言或语言堆栈,例如 python。 有关有效值的详细信息,请参阅 FUNCTIONS_WORKER_RUNTIME 参考。 已部署的应用程序必须与提供的值相对应。 如果不匹配,则表示值 FUNCTIONS_WORKER_RUNTIME 不正确,或者将意外的有效负载部署到了应用程序。

对于以前使用不一致和未定义行为来在处于不匹配状态时继续运行的应用,可能会发生此事件。 按照本文中的说明解决这些应用程序的事件。 这样,这些应用就可利用性能增强功能,并确保它们能够继续按预期运行。

正在从进程内模型迁移到独立辅助角色的 .NET 应用可能会在该进程期间暂时遇到此事件。 将 FUNCTIONS_WORKER_RUNTIME 更新为 dotnet-isolated,但应用程序仍在使用进程内模型有效负载时,可能会在迁移完成之前出现此事件。 有关使用部署槽防止在生产环境中出现此事件的说明,请参阅迁移指南。

如何解析事件

事件消息指示 FUNCTIONS_WORKER_RUNTIME 的当前值,以及在应用有效负载中检测到的运行时元数据。 必须部署相应类型的应用程序有效负载或将设置更新为预期值来对齐这些值。

对于大多数应用程序,正确的解决方法是更新 FUNCTIONS_WORKER_RUNTIME 的值。 为此,在 Azure 中的函数应用中,将 FUNCTIONS_WORKER_RUNTIME 应用程序设置设置为应用程序有效负载的预期值。 预期值不一定与检测到的运行时元数据相同,但在许多情况下相同。 根据下表来确定要使用的正确值:

检测到的有效负载 预期的 FUNCTIONS_WORKER_RUNTIME
CSharp dotnet
custom custom
dotnet dotnet
dotnet-isolated dotnet-isolated
java java
node node
powershell powershell
python python
任何多栈有效负载1 dotnet

1 多栈有效负载是堆栈值的逗号分隔列表。 逻辑应用标准仅支持多栈有效负载。

在 Azure Functions Core Tools 中本地运行时,还应将 FUNCTIONS_WORKER_RUNTIME 添加到 local.settings.json 文件中。

有关遵循迁移指南的应用,请参阅该指南以获取相关说明。 将 .NET 应用程序迁移到隔离的辅助角色模型涉及在部署更新的应用程序有效负载之前先将 FUNCTIONS_WORKER_RUNTIME 设置为 dotnet-isolated,并且此事件可能在这些步骤之间暂时出现。

何时抑制此事件

不应抑制此事件。