首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化代码时使用

初始化代码时使用
EN

Stack Overflow用户
提问于 2022-01-28 22:02:16
回答 1查看 609关注 0票数 1

我有这样的代码来获取秘密:

代码语言:javascript
复制
import {SecretManagerServiceClient} from "@google-cloud/secret-manager";

const client = new SecretManagerServiceClient();

async function getSecret(secret: String, version = "latest") {
    const projectID = process.env.GOOGLE_CLOUD_PROJECT;
    const [vs] = await client.accessSecretVersion({
        name: `projects/${projectID}/secrets/${secret}/versions/${version}`
    });
    const secretValue = JSON.parse(vs.payload.data.toString());
    return secretValue;
}

export {getSecret};

我想用process.env.SENTRY_DNS替换await getSecrets("SENTRY_DNS"),但不能调用async函数之外的承诺(await)。

代码语言:javascript
复制
Sentry.init({
    dsn: process.env.SENTRY_DNS,
    environment: Config.isBeta ? "Beta" : "Main"
});

function sentryCreateError(message, contexts) {
    Sentry.captureMessage(message, {
        level: "error", // one of 'info', 'warning', or 'error'
        contexts
    });
}

谷歌秘密的最佳实践是什么?我应该在"config“文件中加载一次秘密,然后从那里调用值吗?如果是这样的话,我不知道怎么做,你有一个例子吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-29 09:42:23

撇开代码示例(反正我不使用JS ),我会考虑几个不同的问题,这些问题的答案可能会影响设计。例如:

执行此代码的

  1. ?-计算引擎、应用程序引擎、云运行、k8s、云函数等等。根据答案-存储秘密的方法可能有所不同。

例如,假设这将是一个云函数。下一个问题-

  1. 您喜欢将秘密值存储在特定的环境变量中,还是存储在秘密管理器中?第一个选项速度更快,但安全性较低--例如,在控制台中访问云函数详细信息的每个人都可能看到这些环境变量值。

  1. 在初始化时将秘密值加载到内存中?还是每次召唤?第一个选项更快,但如果修改了秘密值,则可能会导致一些问题(当一些实例终止时,旧值逐渐被新值替换,新实例为initialized).

)。

第二种选择可能需要进一步讨论。可以异步获取这些值。在什么情况下可能有用?我认为-只在代码有其他事情要做的情况下,而等待秘密值,这些值需要(可能)做云函数的主要工作。我们能刮多少钱?-可能几毫秒的秘密管理器API调用。有什么缺点吗?-代码复杂性,就像某些人将来要维护代码一样。性能增益仍然超重吗?-在这种情况下,我们可能可以返回到上面列表中的第2项,并考虑在环境变量中存储秘密。

第一个选择呢?同样--如果性能是优先级--返回到上面的第2项,否则--代码简单性和可维护性是优先级吗?我们这里不需要任何异步工作吗?这个问题的答案可能取决于你公司/团队的技能、知识和财务预算,而不是取决于技术偏好。

  1. 关于"config“文件来存储秘密值..。虽然在云函数执行期间可以将数据存储在伪"/tmp“目录中(实际上存储在云函数的内存中),但我们不应该期望在云函数调用之间保留数据。因此,我们回到环境变量(请参阅上面的第2项),或者回到具有API访问权限的其他远程地方。我不知道是否有许多其他服务比秘密管理器具有更好的延迟,后者可以用作存储秘密的缓存。假设我们找到了这样的服务。现在,我们再次得到了性能与复杂性/可维护性困境.

一些结论性意见。我的背景、经验、预算、要求--可能与你的情况完全不同。我的假设(即代码是用于云功能的)-也可能是完全错误的。因此,我建议用一些批评来考虑我的写作,并使用只与你的具体情况相关的想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70900771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档