如何修复控制台消息:Cookie "ARRAffinity" 将很快被拒绝?

How do I fix console message: Cookie "ARRAffinity" will be soon rejected?

我在 Azure Web server/portal 上有一个静态网站,其中包含我们公司的文档。最近,我一直在更改我们设置 cookie 的代码,以确保它们符合浏览器 SameSite 要求,如下所述: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite

我已经能够修复所有创建 cookie 的脚本,但在今天测试它们时,我发现我的 FireFox 控制台中仍然显示这条 cookie 消息:

Cookie “ARRAffinity” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite

此消息仅在我清除站点缓存并加载页面时出现。一旦我第二次重新加载该页面或之后加载任何其他页面,我就不再看到该消息。

我相信这个 ARRAffinity cookie 在技术上来自 Azure 的 Application Insights (AI)——或 Azure 网络服务器上的某些东西。它根本没有出现在我们的 javascript 文件中。我们使用 AI 进行分析。这是大约两年前我们从 Azure 获得的代码片段。它被注入到我们网站上每个 .htm 页面的 header:

var appInsights=window.appInsights||function(a){
        function b(a){c[a]=function(){var b=arguments;c.queue.push(function(){c[a].apply(c,b)})}}var c={config:a},d=document,e=window;setTimeout(function(){var b=d.createElement("script");b.src=a.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js",d.getElementsByTagName("script")[0].parentNode.appendChild(b)});try{c.cookie=d.cookie}catch(a){}c.queue=[];for(var f=["Event","Exception","Metric","PageView","Trace","Dependency"];f.length;)b("track"+f.pop());if(b("setAuthenticatedUserContext"),b("clearAuthenticatedUserContext"),b("startTrackEvent"),b("stopTrackEvent"),b("startTrackPage"),b("stopTrackPage"),b("flush"),!a.disableExceptionTracking){f="onerror",b("_"+f);var g=e[f];e[f]=function(a,b,d,e,h){var i=g&&g(a,b,d,e,h);return!0!==i&&c["_"+f](a,b,d,e,h),i}}return c
    }({
        instrumentationKey:"<The Key>"
    });

    window.appInsights=appInsights,appInsights.queue&&0===appInsights.queue.length&&appInsights.trackPageView(); 

(请注意,上面代码片段中的 <The Key> 实际上是 Azure 在我们设置和配置 AI 资源时提供给我们的唯一 multi-character 字符串。出于隐私考虑,我在此处将其删除。)

此后我重新访问了我获得该代码的网站,但该代码段已更改为更新的内容: https://docs.microsoft.com/en-us/azure/azure-monitor/app/javascript#snippet-based-setup

我不确定是否需要做任何事情来解决这个问题。

ARRAffinity cookie 是否来自 Microsoft 创建的某些 server-side 脚本? 我需要做些什么来解决这个控制台消息吗?如果是,是什么?

ARRAffinity cookie 由 Azure 自动创建。您可以通过转至 配置 --> 常规设置 将其关闭,然后单击 关闭如下所示的应用服务。

由于您的网站是静态网站,我认为这不是问题。事实上,重新开始将所有云原生应用程序的 ARR Affinity 关闭。

关闭 ARR Affinity 后,所有应用服务实例(在负载平衡环境中)都将得到有效使用。

如果打开 ARR 亲和力,给定会话的所有请求都将发送到同一服务器,而不管其上的负载如何。

默认情况下,设置为启用以支持需要会话粘性的旧版应用程序。