1

我在Azure上運行了一個網站(Web App)(example.azurewebsites.net),我想在我的Asp.Net MVC解決方案中使用NEST(http://nest.azurewebsites.net)。在本地它工作正常,但是當它發佈到Azure時,我無法獲得與elasticsearch的連接。因爲我沒有找到任何有用的教程,我混合在一起。如何在Azure中使用NEST/elasticsearch?

首先,我創建了一個虛擬網絡,就像這裏在步驟1中描述的那樣:我稱之爲VirtualNetwork並獲得了網關IP地址。它顯示我有1個客戶端已連接。

然後我創建了一個虛擬機,如下所述:http://code972.com/blog/2014/07/74-the-definitive-guide-for-elasticsearch-on-windows-azure 我已經有了虛擬網絡,所以我跳過了第一步。雲服務名爲example-elastic-search(example-elastic-search.cloudapp.net),我稱之爲虛擬機elasticsearchvm。我通過膩子連接,像所描述的配置elasticsearch,我工作正常。

Azure的最後一步是將Web應用程序連接到虛擬網絡。我這樣做:http://blogs.technet.com/b/canitpro/archive/2015/04/07/step-by-step-connect-an-azure-web-app-to-an-existing-virtual-network.aspx

最後我改變了我的代碼使用elasticsearchvm。

new ElasticClient(new ConnectionSettings(new Uri("http://example-elastic-search.cloudapp.net"))) 

相反example-elastic-search.cloudapp.net的我也試過虛擬機(elasticsearchvm),虛擬機的內部和公網IP的名字,雲服務的IP及的IP網關。所有這些與http,https,端口和沒有端口(9200)。沒有工作。

任何想法,我錯過了什麼?如果需要更多的信息,請隨時詢問:)

+0

我遇到了同樣的問題,即Azure網站無法連接到Azure虛擬網絡上的虛擬機。在花費數小時與Microsoft支持嘗試調試它們之後,他們建議刪除所有內容並重新開始。不要說你的情況是一樣的,只是有時候這種設置會以不可修復的方式破壞。 – Frans

+2

當然,我假設你已經在vm本身的防火牆上打開了適當的端口? – Frans

+0

我在VM中安裝了nmap,端口9200已經打開。我認爲在安裝elasticsearch時發生這種情況... – Michael

回答

0

我意識到這不是直接回答你的問題,但我認爲這對於未來發現這個問題的人來說是有用的。在Azure上啓動和運行Elasticsearch的最簡單方法是使用Elastic's ARM template; I wrote a blog post about some of the features available within the template.

可以從門戶網站UI或使用Azure CLI部署模板;前者適合入門和玩耍,後者可將模板集成到您選擇的自動化環境中。您當然可以克隆/分叉存儲庫並對模板進行更改以適應您的要求。

將Elasticsearch添加到現有Web應用程序時,可以將已部署的羣集連接到同一位置的現有虛擬網絡;你只需要指定

  • 網絡
  • 子網
  • 包含網絡
  • 可用的IP地址以用於內部負載平衡器的資源組的名稱的名稱的名稱

您需要在網絡上爲您正在部署的羣集提供足夠的可用IP地址。