在 Firebase Cloud Function 中使用 Secret Manager 的正确方法是什么?
What is the Correct Way to Use Secret Manager in Firebase Cloud Function?
我开始使用 SECRET_NAME 添加 Secret Manager,其中包含使用 Node.js 的 Cloud Function 中的特定密码。我两种方法都试过了。首先,使用控制台添加 Secret Manager,然后通过 Firebase CLI 直接添加 Secret Manager。不幸的是,这两种方式都在 Secret 的 Cloud Function 变量中给出了一个空的 Secret 值,如下图所示。
我使用参数 runWith({secret: ["SECRET_NAME"]}) 如下代码所示。
exports.Auth = functions.runWith(secret).https.onCall(async (data, context) => {
const response = 129132;
return Promise.resolve(response);
});
const secret = {
timeoutSeconds: 120,
memory: "1GB",
secret: ["SECRET_NAME"],
minInstances: 0,
};
我遵循了 Firebase Cloud Function (https://firebase.google.com/docs/functions/config-env) 中编写的文档。
我花了将近一个星期的时间来找出我哪里错了,但一无所获。我还在 Google Cloud Console 中的当前 SECRET_NAME 添加了一个角色“Secret Manager Secret Accessor”,但它没有给出任何结果。如本计算器中所写 post
我的问题是我应该在 Google Cloud Platform 的 Cloud Function Console 中手动添加 SECRET_NAME 吗?如果是这样,那么上面写的文档有什么用呢? Firebase 是不是想把我们引向无路可走?
对不起大家。
显然,我写的代码是错误的:
const secret = {
timeoutSeconds: 120,
memory: "1GB",
secrets: ["SECRET_NAME"], //Must use secrets not secret
minInstances: 0,
};
谢谢你,@MichaelBleigh。
问题现已解决。
我开始使用 SECRET_NAME 添加 Secret Manager,其中包含使用 Node.js 的 Cloud Function 中的特定密码。我两种方法都试过了。首先,使用控制台添加 Secret Manager,然后通过 Firebase CLI 直接添加 Secret Manager。不幸的是,这两种方式都在 Secret 的 Cloud Function 变量中给出了一个空的 Secret 值,如下图所示。
我使用参数 runWith({secret: ["SECRET_NAME"]}) 如下代码所示。
exports.Auth = functions.runWith(secret).https.onCall(async (data, context) => {
const response = 129132;
return Promise.resolve(response);
});
const secret = {
timeoutSeconds: 120,
memory: "1GB",
secret: ["SECRET_NAME"],
minInstances: 0,
};
我遵循了 Firebase Cloud Function (https://firebase.google.com/docs/functions/config-env) 中编写的文档。
我花了将近一个星期的时间来找出我哪里错了,但一无所获。我还在 Google Cloud Console 中的当前 SECRET_NAME 添加了一个角色“Secret Manager Secret Accessor”,但它没有给出任何结果。如本计算器中所写 post
我的问题是我应该在 Google Cloud Platform 的 Cloud Function Console 中手动添加 SECRET_NAME 吗?如果是这样,那么上面写的文档有什么用呢? Firebase 是不是想把我们引向无路可走?
对不起大家。
显然,我写的代码是错误的:
const secret = {
timeoutSeconds: 120,
memory: "1GB",
secrets: ["SECRET_NAME"], //Must use secrets not secret
minInstances: 0,
};
谢谢你,@MichaelBleigh。
问题现已解决。