是否可以在 Amplify.yml 文件 (AWS Amplify) 中为每个分支设置环境变量?

Is it possible to set environment variables per branch in the Amplify.yml file (AWS Amplify)?

我目前正在使用 AWS Amplify 来管理我的前端。我一直在整个控制台中手动注入环境变量。

虽然我已经看到(至少在这种情况下),但正如 AWS docs 中提到的那样,环境变量得到了正确的保护。我想知道是否可以在每个分支的 amplify.yml 文件变量中设置不一定需要保护的变量。

像这样:

version: 0.1
env:
  variables:
    myvarOne:
      branch: master
        value: ad
      branch: dev
        value otherval
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
        - yarn lint
        - yarn test
    build:
      commands:
        - yarn build build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

到目前为止,您的问题似乎还没有理想的解决方案 但是,可以采取一些解决方法来使类似的东西工作

你不能有每个分支的环境变量,但你可以有每个分支的命令

因此,您可以根据需要为不同的分支定义不同的变量和运行适当的命令

version: 0.1
env:
  variables:
    myvarOne:
      value_master: val
      value_dev: otherval
frontend:
  phases:
    preBuild:
      commands:
        - if [ "${AWS_BRANCH}" = "master" ]; then export VALUE=${value_master}; fi
        - if [ "${AWS_BRANCH}" = "dev" ]; then export VALUE=${value_dev}; fi
        - yarn install
        - yarn lint
        - yarn test
    build:
      commands:
        - yarn build build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

我的答案可能已经很晚了,但截至撰写本文时,似乎有针对您的案例的现成解决方案。

根据几乎逐字逐句的文档,它要求您执行以下操作:

  1. 登录 AWS 管理控制台here
  2. 导航至应用程序设置 > 环境变量 > 管理变量。
  3. 管理变量部分的变量下,输入您的密钥。对于 ,输入您的值。
  4. 选择操作,然后选择添加变量覆盖。。您可以根据分支覆盖密钥的环境变量。
  5. 您现在拥有一组特定于您的分支的环境变量。

这个 GIF 更好地说明了步骤 4-5。

我没有足够的 Whosebug 信誉来添加图像,因此请参阅文档中的第 5 点,其中描述了一种为特定分支添加变量覆盖 的方法. https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html