我已经在这方面工作了2天,对进展非常失望,任何关于我的理解/代码/方法可能有什么问题的指导都是非常感谢的!
我试图从使用node.js的秘密管理员那里获得版本值,下面的脚本在GCE上工作得很好,但是每当我在云函数上运行它时,它就会失败。
// My script on GCE, it works fine
const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
const secretManagerServiceClient = new SecretManagerServiceClient();
const name = 'projects/moonhome/secrets/moonFirstSecret/versions/latest';
testSecretManager = async () => {
const [version] = await secretManagerServiceClient.accessSecretVersion({ name });
const payload = version.payload.data.toString();
console.debug(`Payload: ${payload}`);
};
testSecretManager();// My index.js on Cloud Function
const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
const secretManagerServiceClient = new SecretManagerServiceClient();
const name = 'projects/moonhome/secrets/moonFirstSecret/versions/latest';
testSecretManager = async () => {
const [version] = await secretManagerServiceClient.accessSecretVersion({ name });
const payload = version.payload.data.toString();
console.debug(`Payload: ${payload}`);
};
exports.helloHttp = (req, res) => {
testSecretManager();
res.send("noooo1");
};// One of many versions of packaga.json I tried on Cloud function
{
"dependencies": {
"@google-cloud/secret-manager": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@google-cloud/secret-manager/-/secret-manager-3.1.0.tgz",
"integrity": "sha512-/9IOWEhKAz/r3kSyp16kjudELkEJSRhwFfzukKbzQehVRZ3RceNDzjn+Rti1TivODJHEEIBZVsQFsKp7cLfUgQ==",
"requires": {
"google-gax": "^2.1.0"
}
}
}
}以下是我的问题:
@google-cloud/secret-manager添加到node.js运行时。但是,在云函数文档中有一个例子,其中使用了escape-html,该列表中也没有使用它。我的问题是,在我的情况下,应该请求将秘密管理程序包添加到node.js运行时吗?testSecretManager,以处理http请求,并在浏览器的端点上测试它。这个简单的函数本身运行良好,但是每当我将与秘密管理器相关的任何内容插入到该函数中时,该函数要么失败,要么页面显示它为Error: could not handle the request。我的问题是,我必须用testSecretManager请求或任何其他事件处理函数来触发函数中的目标函数吗?package.json文件非常困惑,当我在GCE中使用秘密管理器时,package-lock.json有600+行,所以我尝试将这些行处理到云函数上的package.json,但并不是work.....my的问题是,当我只想要包时,应该包括在package.json中吗?发布于 2020-09-05 13:59:26
apt-get install)。NPM软件包被安装到节点(例如npm install)中。您不应该要求将秘密管理器添加到系统包中.testSecretManager函数是一个同步函数,所以在helloHttp中调用它时,需要使用await作为序言。然后,您需要将helloHttp标记为异步。如果不起作用,请复制和粘贴准确的错误消息和堆栈跟踪。package.json和package-lock.json是单独的文件,具有不同的语法。您不应该将数据从锁文件复制到包文件中。是您可以复制的一个例子:
“依赖项”:{“@google-云/秘密-管理器”:"^3.1.0“},https://stackoverflow.com/questions/63754510
复制相似问题