.net - 我可以通过编程方式修改 ARR Affinition cookies 的值吗

标签 .net azure azure-web-app-service session-affinity

我的 Web 应用程序部署在具有多个实例的 Azure 应用服务上(横向扩展)。它有一个 API 来生成报告。我希望对此 API 的请求仅发送至特定实例。

因此,我正在考虑编写一段 Javascript 代码来修改 ARR Affinity cookies 的值,然后再向 API 发出请求,以便请求转到指定的实例 id。

我在 2017 年发现了一篇 SO 帖子,其中包含设置 cookie 的示例代码。

How to get access to azure app service instances directly

但我还发现了另一篇 SO 帖子,其中有人表示我们不应该干扰此 cookie 值。

Azures Arr Affinity response cookie

我也询问了 ChatGPT,它告诉我修改 cookie 是有效的。

enter image description here

但是它给我的所有资源 URL 都已过期并返回 404。

现在我找不到任何提到手动修改此 cookie 的可能性的 Azure 文档。

所以问题是我是否可以/应该在应用程序的前端或后端编写代码来修改 ARR Affinity cookie?

最佳答案

更改 ARRAffinity cookie 并不是最可靠的解决方案,因为 Azure 平台不保证应用服务实例及其 ID 始终保持不变。在平台升级期间或者如果 Azure 检测到某个实例运行状况不佳,单个实例可能会被重新启动,甚至被替换。在这种情况下,您的 API 请求可能会出现在任何实例上,并且很难自动选择新的“报告”实例。

以下一些选项可以帮助您实现您想要的目标,而不会干扰 ARRAffinity cookie:

  • 如果您的报告 API 是资源密集型的,并且您希望将其与主 Web 应用程序隔离,那么最好的办法是创建单独的应用程序服务计划并在其中创建应用程序服务。此应用服务将拥有自己的域名,因此您可以将所有报告 API 请求发送到专用应用服务。

  • 如果您想要使用相同的应用服务计划并在网络应用程序和报告 API 之间共享资源,还可以在同一应用服务计划中创建额外的应用服务。默认情况下,两个应用服务都将扩展到相同数量的实例,但您可以使用名为Per-App Scaling 的功能,并将应用服务的 numberOfWorkers 属性更改为所需的值实例计数。例如,报告 API 应用程序服务可以限制为一个实例,而主应用程序可以扩展到 3 个实例。欲了解更多信息,请参阅Per-App Scaling documentation .

关于.net - 我可以通过编程方式修改 ARR Affinition cookies 的值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75677013/

相关文章:

.net - 遗留 C++ 库的托管 C++ 包装器

sql-server - Azure SQL 数据库 : bacpac Import Error occurs on azure portal

azure - 在动态创建的 Web 应用服务中添加自定义域

Azure:获取网站的内部 IP 以创建访问限制

azure - SQL Azure DB 在 Web 应用程序备份期间引发错误 'login failed for user'

c# - 具有动态 maxCount 的 SemaphoreSlim

.net - 推荐的 WPF 日历

c# - 为什么向 void 返回方法添加返回类型会导致 MissingMethodException

Azure key 保管库创建错误 : VaultAlreadyExists - I can't find the existing vault

json - 使用 DataFlow 解析来自 API 的 JSON 响应