在Azure中,我已经基于(VM)模板创建了一个Elasticsearch和Kibana集群。在我的单元测试中,我使用Elasticsearch NEST nuget包来访问我的azure Electricsearch。一个Ping工作正常
var node = new Uri("http://x:5601");
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);
var response = client.Ping(new PingRequest());
Assert.IsTrue(response.IsValid);
但是当我尝试添加索引时,我总是得到错误"请求必须包含kbn-xsrf标头" 我尝试了很多东西,试图阅读尽可能多的例子,但没有成功。我想知道的事情
顺便说一句,我的索引创建单元测试看起来像
var node = new Uri("http://x:5601");
var settings = new ConnectionSettings(node);
settings.SetBasicAuthentication("x", "x");
var client = new ElasticClient(settings);
var response = client.CreateIndex("hotelindex");
Assert.IsTrue(response.IsValid);
答案 0 :(得分:0)
The Elastic ARM template使用内部负载均衡器或外部负载均衡器(由于以下原因也部署内部负载均衡器)进行部署。
Kibana通过内部负载均衡器与群集通信并查看您的Uri
,看起来您正在向Kibana端点发送请求。如果您需要通过REST API(直接或通过客户端)访问集群,您还需要部署外部负载均衡器。
请注意,对于Kibana或外部负载均衡器公共IP地址,模板不为它们配置SSL / TLS,因此所有通信都是未加密的。这是你需要自己配置的东西。