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

如何将Google Application Credentials部署到Meteor Cloud?

针对Meteor Cloud部署调用Google Speech-to-text服务凭证问题的解决方案

方案1:运行时生成临时凭证文件(适配必须读取凭证文件的场景)

无需在构建流程中单独上传JSON文件,通过Meteor私有配置+临时写文件的方式即可实现:

  • 把本地Google服务账号JSON文件的全部内容转义为单行字符串,存入settings.json的private字段下,示例配置:
{
  "private": {
    "googleServiceAccountJson": "{\"type\":\"service_account\",\"project_id\":\"你的项目ID\",...}"
  }
}
  • 在服务端代码最开头(引入Google SDK前)加入如下逻辑,生产环境会自动生成临时凭证文件并注入环境变量:
import { Meteor } from 'meteor/meteor';
import fs from 'fs';
import path from 'path';

if (Meteor.isProduction) {
  const credentialContent = Meteor.settings.private.googleServiceAccountJson;
  const tmpCredentialPath = path.join('/tmp', 'google-service-account.json');
  fs.writeFileSync(tmpCredentialPath, credentialContent);
  process.env.GOOGLE_APPLICATION_CREDENTIALS = tmpCredentialPath;
}

// 后续再引入和初始化Google Speech-to-text客户端

Meteor Cloud运行环境允许读写/tmp临时目录,该方案完全兼容Google官方要求读取凭证文件的验证逻辑。

方案2:显式传入凭证初始化客户端(推荐方案)

Google Cloud官方SDK支持直接传入凭证对象初始化,无需依赖文件或环境变量,操作更简洁:

  • 直接把Google服务账号JSON的完整结构存入settings.json的private字段下:
{
  "private": {
    "googleServiceAccount": {
      "type": "service_account",
      "project_id": "你的项目ID",
      "private_key_id": "你的密钥ID",
      "private_key": "你的私钥内容",
      "client_email": "你的服务账号邮箱",
      // 剩余JSON字段原封不动填写即可
    }
  }
}
  • 初始化Speech-to-text客户端时直接传入凭证参数即可:
import { SpeechClient } from '@google-cloud/speech';

const speechClient = new SpeechClient({
  credentials: Meteor.settings.private.googleServiceAccount,
  projectId: Meteor.settings.private.googleServiceAccount.project_id
});

部署注意事项

执行部署命令时必须带上settings文件参数,配置才会同步到Meteor Cloud服务端:
meteor deploy 你的站点地址 --settings settings.json
settings.json中的private字段仅服务端可访问,不会泄露到客户端,无需担心凭证安全。

内容的提问来源于stack exchange,提问作者Brian Hogg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:03