AzureFunctionsWebHost:hostId 应该是插槽粘性的吗?

问题描述 投票:0回答:3

我有一个名称超过 32 个字符的 Azure Functions 应用程序。该应用程序有一个生产槽和一个暂存槽。因此,它们的默认主机 ID 将导致冲突,如HostID 截断可能导致冲突中所述。

因此,我想在我的两个插槽上设置

AzureFunctionsWebHost:hostId
(或
AzureFunctionsWebHost__hostId
)具有唯一值,以避免这种冲突。该配置值是否应该是插槽粘性的?

azure azure-functions
3个回答
0
投票

Azure-function-host文档中所述,我们可以为您的应用程序设置显式指定主机 ID,如下所示:

  • AzureFunctionsWebHost__hostId
    (Windows 和 Linux)
  • AzureFunctionsWebHost:hostId
    (仅限 Windows)

如果有任何其他限制可以通过 HostIdValidator

满足

来自文档:生成 ID 的一种简单方法是获取 GUID,删除破折号并将其设为小写,例如1835D7B5-5C98-4790-815D-072CC94C6F71 => 1835d7b55c984790815d072cc94c6f71

您分享的 GIT 讨论涵盖了大部分信息。


0
投票

HostID 截断可能会导致冲突 GitHub#2015

主机 ID 值对于您正在运行的所有应用程序/插槽应该是唯一的

实际上,只有当它们共享相同的存储帐户时才是如此。根据我的理解,这意味着当您在函数的所有插槽中为超过 32 个字符的应用程序名称使用相同的存储(这 32 个前导字符具有相同的值)时,您必须定义一个插槽粘性

hostId
.


0
投票

这需要设置并粘贴到部署槽中。这已记录在here

您可以使用 AzureFunctionsWebHost__hostid 设置在应用程序设置中显式设置函数应用的特定主机 ID。有关详细信息,请参阅 AzureFunctionsWebHost__hostid。

当槽位之间发生冲突时,必须为每个槽位(包括生产槽位)设置特定的主机ID。您还必须将这些设置标记为部署设置,以便它们不会被交换。要了解如何创建应用程序设置,请参阅使用应用程序设置。

© www.soinside.com 2019 - 2024. All rights reserved.