GCP 机密管理器抛出:"path"参数必须是字符串类型



我正在使用Node.js 8.x中的GCP Secrets Manager(我知道,它很古老,但它是Cloud Functions上最新的GA Node运行时(。然而,当我运行他们的示例时,它不断从以下行抛出gRPC错误:

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object

我正在尝试测试的代码行:

const secretClient = new SecretManagerServiceClient();

如果我在Node 8.x或Node 10.x上运行,并且如果我使用机密库(3.0.0(的最新版本或Node 8.x(1.2.1(的旧版本,我会得到同样的错误

出现此错误的原因似乎是库运行的是浏览器,而不是节点模式,这迫使它避免"回退"模式,试图错误地查找gRPC路径。这个决定是因为window在作用域中,欺骗了isBrowser逻辑。

根本原因

根本原因是使用jest进行测试,默认情况下以jsDom模式运行,插入类似window的全局变量。

修复

将以下内容添加到jest.config.json文件中。

testEnvironment: 'node',

最新更新