2016-10-12 106 views
0

在Azure中,我基於(VM)模板創建了Elasticsearch和Kibana集羣。在我的單元測試中,我使用Elasticsearch NEST nuget包來訪問我的天藍色電子搜索。阿萍只是正常工作Azure Elasticsearch和NEST無法添加索引

 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. 哪個nuget版本應該與創建的VM一起使用。我想出了天藍色的環境運行ES 1,所以我應該使用nuget包 1.82
  2. 我應該如何在我的代碼中進行身份驗證?我發現SetBasicAuthentication,還是這似乎並沒有工作尤爲明顯
  3. 如何設置或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

The Elastic ARM template展開時使用內部負載均衡器或外部負載均衡器(由於以下原因也部署內部負載均衡器)。

Kibana通過內部負載平衡器與集羣進行通信,並查看您的Uri,它看起來像您將請求發送到Kibana端點。如果您需要通過REST API(直接或通過客戶端)訪問集羣,則還需要部署外部負載平衡器。

請注意,對於Kibana或外部負載均衡器公共IP地址,模板不會爲配置SSL/TLS,因此所有通信都是未加密的。這是你需要自己配置的東西。