如何使用 Azure Functions 访问 Elasticsearch?

How to access Elasticsearch with Azure Functions?

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

现在可以使用了。

但由于我使用的是高级计划和其他提到的服务,费用增加了。

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

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

亲切的问候, 安德烈

为了结束这个,最后,我使用了标准 AppSevicePlan (S1)(费用为 74 美元|51 英镑/月或约 2.5 美元|1.7 英镑/天)。我不得不创建一个静态出站 IP、一个 NAT 网关(另外花费大约 30 美元|£23/月或 1 美元|£.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 英镑