You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Firestore云函数中使用Elasticsearch时出现“No Living Connections”错误

问题根源

你使用的elasticsearch@16.7.3是Elasticsearch的旧版Legacy客户端,它并不支持cloud.id这个配置参数——这就是为什么客户端会默认尝试连接本地http://localhost:9200,完全忽略了你配置的云ID和认证信息。


解决方案步骤

1. 替换为新版官方客户端

卸载旧的legacy包,安装Elastic官方维护的新版客户端@elastic/elasticsearch:

npm uninstall elasticsearch
npm install @elastic/elasticsearch

注意:请确保客户端版本与你的云Elasticsearch集群版本主版本号一致(比如云集群是8.x,就安装8.x的客户端;如果是7.x就安装7.x版本)。例如安装8.x版本:

npm install @elastic/elasticsearch@8

2. 修正云函数代码

更新Client初始化逻辑,新版客户端的配置方式与旧版不同,正确适配cloud.id:

const firebaseFunctions = functions.region("australia-southeast1").firestore;

// 导入新版客户端
const { Client } = require("@elastic/elasticsearch");
// 加载Firebase环境变量
const config = functions.config();

const client = new Client({
  cloud: {
    id: config.elasticsearch.id,
  },
  auth: {
    username: config.elasticsearch.username,
    password: config.elasticsearch.password,
  },
});

exports.onBookingCreated = firebaseFunctions
    .document("bookings/{bookingId}")
    .onCreate(async (snap, context) => {
      const bookingData = snap.data();
      try {
        const response = await client.index({
          index: "all_bookings",
          id: context.params.bookingId,
          document: bookingData,
        });
        console.log("索引成功:", response);
        return response;
      } catch (err) {
        console.error("索引失败:", err.toString());
        // 抛出错误让Firebase Functions标记执行失败,便于排查
        throw new Error(`Elasticsearch索引失败: ${err.message}`);
      }
    });

3. 确认环境变量正确配置

确保你已经通过Firebase CLI将Elasticsearch的配置参数部署到云函数的环境变量中:

# 设置环境变量,替换为你的实际值
firebase functions:config:set elasticsearch.id="你的云ID" elasticsearch.username="你的用户名" elasticsearch.password="你的密码"

设置完成后,重新部署云函数生效:

firebase deploy --only functions

4. 额外检查点

  • 确认云Elasticsearch集群的访问控制设置允许Firebase Functions所在区域(australia-southeast1)的IP访问,可暂时设置为允许所有IP用于测试。
  • 检查云Elasticsearch集群状态是否正常,确保all_bookings索引已存在,或客户端拥有自动创建索引的权限。

内容的提问来源于stack exchange,提问作者Danish Ajaib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:25:33