如何在Azure中使用NEST / elasticsearch?

时间:2015-06-21 18:08:25

标签: azure elasticsearch azure-web-sites nest azure-cloud-services

我在Azure上运行了一个网站(Web App)(example.azurewebsites.net),我想在我的Asp.Net MVC解决方案中使用NEST(http://nest.azurewebsites.net)。本地它工作正常,但在将其发布到Azure时,我无法连接到elasticsearch。因为我没有找到任何有用的教程,所以我将三个混合在一起。

首先,我创建了一个虚拟网络,如步骤1中所述:http://www.kerrb.com/ecAzureVms101/day4-creating-point-to-site-vpn-to-azure-virtual-machines 我称之为VirtualNetwork并获得了一个Gateway-IP-Adress。它向我显示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。我通过putty连接,配置了像描述的elasticsearch,我工作正常。

Azure的最后一步是将Web App与虚拟网络连接。我是这样做的: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")))

我还尝试了虚拟机的名称(elasticsearchvm),虚拟机的内部和公共IP,云服务的IP以及网关的IP,而不是example-elastic-search.cloudapp.net。所有这些都使用http,https,端口和没有端口(9200)。没有任何效果。

任何想法,我错过了什么?如果需要更多信息,请随时询问:)

1 个答案:

答案 0 :(得分: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地址。