AWS Amplify with Next.js如何在API中访问环境变量?

vktxenjb  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(111)

我有一个Amplify应用程序(仅限前端)为我的Next.js应用程序提供服务。在我的/API/文件夹中,我有一个文件,它创建了条带会话,将用户重定向到条带,以便支付。
为了创建stripe会话,我需要传递到stripe我的STRIPE_SECRET_KEY,但是,如果我这样调用它:
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)
API密钥在我部署应用程序中不可用。
我的问题是,在我的生产构建中使用此API密钥的最佳实践是什么?

vqlkdk9b

vqlkdk9b1#

首先,我在AWS控制台中添加了env变量(应用程序设置->环境变量)
然后,在应用程序的构建阶段,我添加了一些命令,将这些变量(仅在构建时可用)写入.env.production文件。NextJS将自动拾取.env.production文件。
最后我的amplify.yml看起来像这样

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - env | grep -e API_URL >> .env.production
        - env | grep -e API_KEY >> .env.production
        - npm run build
  artifacts:
    baseDirectory: .next
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*
      - '.next/cache/**/*'

字符串
在代码中,我像往常一样通过process.env.API_URL访问它们

相关问题