azure 我可以通过编程方式修改ARR Affinition Cookie的值吗

m1m5dgzv  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(130)

我的Web应用程序部署在具有多个示例(横向扩展)的Azure App Service上。它具有用于生成报表的API。我希望对此API的请求仅转到特定示例。
所以我在考虑写一个Javascript代码来修改ARR Affinity cookie的值,然后再向API发送请求,这样请求就可以转到指定的示例ID。
我在2017年发现了一个SO帖子,其中有一个设置Cookie的示例代码。
How to get access to azure app service instances directly
但我也发现另一个如此职位与某人说,我们不应该干涉这个cookie的价值。
Azures Arr Affinity response cookie
我还问了ChatGPT,它告诉我修改cookie是有效的。

但是它给我的所有资源URL都过期了,返回404。
现在我找不到任何Azure文档提到手动修改此Cookie的可能性。
所以问题是我是否可以/应该在我的应用程序前端或后端编写代码来修改ARR Affinity Cookie?

eqzww0vc

eqzww0vc1#

更改ARRAffinity Cookie不是最可靠的解决方案,因为Azure平台不保证应用服务示例及其ID始终保持不变。在平台升级期间或Azure检测到某个示例不正常时,可能会重新启动甚至替换个别示例。在这种情况下,你的API请求可能会在任何示例上结束,并且很难选择新的“自动报告”示例。
这里有一些选项,可以帮助实现你想要的,而不干扰ARRAffinity Cookie:

  • 如果您的报表API占用大量资源,并且您希望将其与主Web应用程序隔离,则最佳做法是创建单独的应用程序服务计划并在其中创建应用程序服务。此应用程序服务将具有自己的域名,以便您可以将所有报表API请求发送到专用应用程序服务。
  • 如果要使用相同的应用程序服务计划并在Web应用程序和报表API之间共享资源,还可以在相同的应用程序服务计划中创建其他应用程序服务。默认情况下,两个应用程序服务将扩展到相同数量的示例,但您可以使用名为Per-App Scaling的功能。并将应用程序服务的numberOfWorkers属性更改为所需的示例数。例如,报表API应用程序服务可以限制为一个示例,而主应用程序可以扩展为3个示例。有关详细信息,请参阅按应用程序扩展文档。

相关问题