Azure Elasticsearch和NEST无法添加索引

时间:2016-10-12 10:31:50

标签: azure elasticsearch

在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标头" 我尝试了很多东西,试图阅读尽可能多的例子,但没有成功。我想知道的事情

  1. 应该与创建的VM一起使用哪个nuget版本。我发现天蓝色的环境运行ES 1所以我应该使用nuget包     1.82
  2. 我应该如何在我的代码中进行身份验证?我已经找到了SetBasicAuthentication,但这似乎并没有发挥作用
  3. 如何设置或使用kbn-xsrf
  4. 顺便说一句,我的索引创建单元测试看起来像

            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);
    

1 个答案:

答案 0 :(得分:0)

The Elastic ARM template使用内部负载均衡器或外部负载均衡器(由于以下原因也部署内部负载均衡器)进行部署。

Kibana通过内部负载均衡器与群集通信并查看您的Uri,看起来您正在向Kibana端点发送请求。如果您需要通过REST API(直接或通过客户端)访问集群,您还需要部署外部负载均衡器。

请注意,对于Kibana或外部负载均衡器公共IP地址,模板为它们配置SSL / TLS,因此所有通信都是未加密的。这是你需要自己配置的东西。