首页 > 解决方案 > 如何在谷歌云函数中使用 JSON 配置文件

问题描述

我正在尝试设置谷歌云功能以使用云存储 SDK。该云存储 SDK 需要一个 JSON 格式的配置文件,该文件在您使用帐户注册应用程序时生成。我正在使用 Node.js 10

如何将 JSON 对象导入谷歌云函数?

到目前为止,我已经尝试在谷歌云控制台中使用环境变量。我将 json 对象复制到值空间中,但它不起作用。我尝试将项目作为带有普通 json 文件的 zip 文件上传,并使用 fs 模块读取 json 对象,但这不起作用。

这是我需要使用的 JSON 对象。(显然键已更改为随机值

{
    "randomAppSettings": {
      "clientID": "jk321hgg5h1l5j234gjl23",
      "clientSecret": "akhfusafkhdsjghlsakdfkdj",
      "appAuth": {
        "publicKeyID": "243532kj5kh",
        "privateKey": "23k4j32hvj4hh",
        "passphrase": "jk321g5hg12l534kj521"
      }
    },
    "enterpriseID": "4235614785",
    "webhooks": {
      "primaryKey": "3jh24gkj34`j2hkhj23g1hk5gk2jhkjhk",
      "secondaryKey": "125gk4j5h325432bkjhkjhekjh642"
    }
  }

正如您所看到的,它不是一个简单的键/值对,我不知道这是否与它有关。

这是读取实际代码中使用的信息的方法(使用正常的 fs 尝试)

let configFile = fs.readFileSync("baconConfig.json");
const randAppConfig = JSON.parse(configFile); //variable for security and configuration management

预期结果是使用 JSON.parse 方法读取文件,但是日志输出的错误集中在尝试读取 json 配置。

请问有什么帮助吗?

标签: node.jsjsongoogle-cloud-functions

解决方案


最佳实践之一是将文件放在存储桶中,以允许函数服务帐户(默认或特定身份)读取此存储桶并在运行时加载文件。主要原因之一是您不必提交安全文件,只需保留对存储桶的引用。


推荐阅读