GCP Secret Manager 抛出:“路径”参数必须是字符串类型
Posted
技术标签:
【中文标题】GCP Secret Manager 抛出:“路径”参数必须是字符串类型【英文标题】:GCP Secret Manager throws: "path" argument must be of type string 【发布时间】:2020-08-02 05:23:51 【问题描述】:我正在使用 Node.js 8.x 中的 GCP Secrets Manager(我知道,它很古老,但它是 Cloud Functions 上最新的 GA Node 运行时)。但是,当我运行他们的示例时,它不断从this line 抛出 gRPC 错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
我正在尝试测试的代码行:
const secretClient = new SecretManagerServiceClient();
如果我在节点 8.x 或节点 10.x 上运行,并且如果我使用最新版本的机密库 (3.0.0
) 或节点 8.x 的旧版本 ( 1.2.1
)
【问题讨论】:
【参考方案1】:出现这个错误是因为库运行的是 browser 而不是 Node 模式,这迫使它避免“回退”模式,试图错误地查找 gRPC 路径.该决定是因为window
在范围内,欺骗了isBrowser
logic。
根本原因
根本原因是jest
被用于测试,由default runs in jsDom
mode,插入像window
这样的全局变量。
修复
将以下内容添加到您的 jest.config.json
文件中。
testEnvironment: 'node',
【讨论】:
以上是关于GCP Secret Manager 抛出:“路径”参数必须是字符串类型的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker-nontso Permission Denied 中从 Python 访问 GCP Secret Manager 中的机密
Google Secret Manager:不要通过 Spring Boot 从中获得价值
如何使用 Spring Boot 将来自 Google Secret Manager 的秘密作为环境变量注入 Kubernetes Pod?