首页 > 解决方案 > 如何使用 Azure Functions 访问 Elasticsearch?

问题描述

我有一个需要使用 Azure Functions 应用程序访问的 Elasticsearch 集群。当前访问它的方法是通过 IP 白名单。我已经创建了 Azure Functions 消费计划,并注意到 IP 地址不断变化,经过进一步研究发现我需要将整个 Azure Cloud 列入白名单,这在我们的案例中不是一个安全的选项。因此,我已将 Azure Functions 升级到高级计划,因此 VNet 集成出现在应用程序设置中,允许我创建虚拟网络和静态出站 IP 地址。

现在它正在工作。

但是由于我使用的是高级计划和其他提到的服务,所以成本上升了。

我过去曾尝试使用 Azure 数据工厂,并且可以选择安装本地集成运行时,因此当 ADF 通过本地集成运行时访问 Elasticsearch 时,它可以正常工作。我可以在 Azure Functions 中使用类似的东西吗?就像数据网关一样,我可以安装在 Elasticsearch 上已列入白名单的本地服务器上,我需要做的就是通过它从 Azure Functions 连接?

我想我正在寻找的理想方案是能够在 Azure Functions 上使用消费计划。

亲切的问候,安德烈

标签: azureelasticsearchazure-functionsgatewayazure-function-app

解决方案


最后,为了结束这个,我使用了标准 AppServicePlan (S1)(费用为 74 美元|51 英镑/月或约 2.5 美元|1.7 英镑/天)。我必须创建一个静态出站 IP、一个 NAT 网关(大约需要另外花费 30 美元|23 英镑/月或 1 美元|0.77 英镑/天)和一个 VNET。该教程可以在这里找到:https ://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-nat-gateway

我考虑过的另一个降低成本的选择是使用混合连接,它将安装一种网关到本地服务器,Azure Functions 在到达 ES 端点之前首先连接到该服务器......这将消除对出站的需要IP、NAT 网关和 VNET(因此每月减少 30 美元),但仍需要至少一个 S1 ......所以没有基于消费的选项,我不知道是否有任何与此相关的费用。然而,我们没有选择这个选项,因为我们想消除任何本地依赖(例如,如果运行网关的服务器将关闭)。

总而言之,使用 S1,按照上面提到的教程,应该花费大约 $104|£74/月


推荐阅读