首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google秘密管理器与Firebase函数和Stripe (顶级)

使用Google秘密管理器与Firebase函数和Stripe (顶级)
EN

Stack Overflow用户
提问于 2022-05-30 09:23:47
回答 1查看 715关注 0票数 0

Gday,

很新的TS,只有一点点经验的后端一般,所以道歉,如果我完全错过了这个想法。

因此,我非常喜欢使用Google秘密管理器而不是为Firebase函数定制env配置的想法。

下面的所有操作都是在函数dir中的config.ts中完成的。

我需要初始化条纹。传统的教程说要做类似以下示例的事情:

代码语言:javascript
复制
import Stripe from 'stripe';
export const stripeSecret = functions.config().stripe.secret;

const stripe = new Stripe(stripeSecret, {apiVersion: '2020-08-27'});

我认为理想的做法是将其改为:

代码语言:javascript
复制
import Stripe from 'stripe'
import {SecretManagerServiceClient} from '@google-cloud/secret-manager';
export async function getSecret(name:string){
    const [version] = await secrets.accessSecretVersion({
        name: `projects/example/secrets/${name}/versions/latest`,
    });
    return version.payload?.data?.toString();
}

export const stripeSecret = await getSecret("Stripe-API")
const stripe = new Stripe(stripeSecret, {apiVersion: '2020-08-27'});

但是,这会导致一个问题,就是在顶层的异步/等待。

我在这里的选择是什么,最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-01 10:02:54

Google秘密管理器是一个有用的实用工具,下面是一些使用秘密管理器的最佳实践。

您可以尝试并使用以下方法来创建和使用秘密:

从本地项目目录的根目录运行

  1. ,运行以下命令:

firebase functions:secrets:set SECRET_NAME

  1. SECRET_NAME输入一个值。

CLI回传一条成功消息,并警告您必须部署函数才能使更改生效。

在部署

  1. 之前,请确保函数代码允许函数使用runWith参数:

访问秘密。

代码语言:javascript
复制
        exports.processPayment = functions
        // Make the secret available to this function
       .runWith({ secrets: ["SECRET_NAME"] })
       .onCall((data, context) => {
        const myBillingService = initializeBillingService(
        // reference the secret value
        process.env.SECRET_NAME);
        // Process the payment});

  1. 部署云功能:

firebase deploy --only functions

您也可以像任何其他环境变量一样访问它。相反,如果另一个未在runWith中指定秘密的函数试图访问该秘密,则它将收到一个未定义的值:

要查看完整的最佳实践列表,请访问下一个链接1,并了解更多关于管理秘密版本的信息,请查看下一个链接2。

1

2

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

https://stackoverflow.com/questions/72431999

复制
相关文章

相似问题

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