我有一个在Azure(example.azurewebsites.net)上运行的网站(Web App),并且我想在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并获得了一个网关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 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")))

除了尝试example-elastic-search.cloudapp.net之外,我还尝试了虚拟机的名称(elasticsearchvm),VM的内部和公共(public)IP,云服务的IP和网关的IP。所有这些都带有http,https,端口和不带端口(9200)。没事。

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

最佳答案

我意识到这并不能直接回答您的问题,但是我认为这对于以后发现此问题的人很有用。在Azure上启动和运行Elasticsearch的最简单方法是使用Elastic's ARM template; I wrote a blog post about some of the features available within the template.

可以从门户UI或使用Azure CLI部署模板。前者对于入门和玩耍很有帮助,而后者对于将模板集成到您选择的自动化环境中很有用。当然,您可以克隆/ fork 存储库并根据您的要求对模板进行更改。

将Elasticsearch添加到现有的Web应用程序时,可以将部署的群集连接到同一位置的现有虚拟网络。您只需要指定

  • 网络名称
  • 子网名称
  • 包含网络
  • 的资源组的名称
  • 用于内部负载均衡器
  • 的可用IP地址

    您将在网络上为要部署的群集提供足够的可用IP地址。

    关于azure - 如何在Azure中使用NEST/elasticsearch?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30967713/

    10-15 22:18