我将Azure网站配置为使用多个(2)实例:
我有一个应该在实例之间传递消息(即Cache Evict)的服务总线。我需要测试这种机制。
在传统(内部部署)系统中,我会将浏览器指向实例1(即http://myserver1.example.com),执行操作,然后将浏览器指向另一个实例(http://myserver2.example.com)进行测试。
但是,在Azure中,我看不到某种方法来命中特定的实例。可能吗?或者是否有另一种方法来运行此测试场景(对实例1采取行动,确保实例2的行为正确)?
答案 0 :(得分:3)
不幸的是,没有正式的方法可以做到这一点。但是,您可以通过在请求中设置名为ARRAffinity
的Cookie来实现此目的。
尝试从任何客户端(Chrome,Firefox,curl,httpie等)访问您的网站,并检查您要回复的响应标头。
例如在curl
中你会做
curl -I <siteName>.azurewebsites.net
你会得到这个
HTTP/1.1 200 OK
Content-Length: 2
Content-Type: text/html
Last-Modified: Wed, 17 Sep 2014 16:57:26 GMT
Accept-Ranges: bytes
ETag: "2ba0757598d2cf1:0"
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=<very long hash>; Path=/;Domain=<siteName>.azurewebsites.net
Date: Fri, 28 Nov 2014 03:13:07 GMT
你感兴趣的是ARRAFinity
如果你发送了几个请求,你会发现哈希会在代表你的2个实例的2个值之间不断变化。
在您的请求的Cookie
标题中设置将保证它转到其中一个实例而不是另一个实例。
curl --cookie ARRAfinity=<one of the hashes you got> <siteName>.azurewebsites.net