【问题标题】:Store and alter single variable on vercel serverless functions在 vercel 无服务器函数上存储和更改单个变量
【发布时间】:2022-01-02 06:21:06
【问题描述】:

对于一个客户,我正在构建一个使用 nextjs 呈现并部署在 vercel 上的静态网站。这个网站上的一切都是静态的,所以我不需要任何数据库。然而,这个客户想要使用 instagram API 在他们的两个页面上显示他们的照片库。这是自定义设计,所以我不能使用任何嵌入代码,但据我所知,我必须使用 Instagram 基本显示 API

对于手头的问题:我想知道是否有某种方法可以存储单个变量,而无需在 vercel 中为其创建整个数据库。我知道我可以使用环境变量,但问题是 instagram api 需要每 2 个月更改一次访问令牌。为了更新 instagram 的访问令牌,我打算编写一个大约每月运行一次的 CRON 作业来更新这个值。

我想知道是否有可能以某种方式将该单个值存储在已部署的站点上,而无需为该单个值创建数据库。例如,是否有可能从无服务器函数中更改环境变量?

对正确方向的任何帮助表示赞赏!

谢谢

【问题讨论】:

    标签: next.js environment-variables serverless vercel


    【解决方案1】:

    您转到 Vercel:设置-> 环境变量-> 添加您的变量。在此变量中,您可以存储您的 Instagram API variable 并在您使用的代码中 process.env.{variable}

    例子:

    1. 您在local filesnext.config.js.env.local)中将变量的name 定义为instagramAPI

      module.exports = {
         env:{
            instagramAPI : 'https://instagramapiexample.com'
         },
      }
      
    2. 您在 vercel settings 上定义 instagramAPI(与代码中的变量名称完全相同)

    3. 在您的代码(本地文件)中,您调用process.env.instagramAPI 变量来获取字符串的值。

    4. 您的代码按预期工作。

    !重要!如果你有一些secretspasswords 在你的process.env.variables 你更新保存在next.config.js 中。为此,您将 instagramAPI 保存到 .env.local(在第 1 点中描述)。更多info here

    【讨论】:

    • 谢谢!但我的问题是关于更改变量。我知道如何读取环境变量。我想知道是否有某种方法可以从无服务器函数中设置(更改)环境变量
    • 据我所知,没有办法从代码中设置它(对于 Vercel 部分)
    猜你喜欢
    • 2020-12-18
    • 1970-01-01
    • 2020-09-10
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 2021-05-30
    相关资源
    最近更新 更多